2

http://docs.python.org/2/c-api/buffer.html

诠释

内存表示为多维数组的维数。如果为 0,则步幅和子偏移量必须为 NULL。

这在现实世界中的用途是什么?它是否用于分散聚集矢量缓冲区?

4

1 回答 1

3

使用ndimandshape主要用于多维固定形状数组。例如,如果您想从头开始构建NumPy之类的东西,您可以围绕缓冲区 API 构建它。还有一些变体可以使 NumPy、PIL 和包装典型 C 和 Fortran 数组处理库的模块变得简单。

如果您进一步阅读,接下来的两个值都表示“查看复杂数组以获取更多信息”。如果您单击该链接,它会为您提供一个执行 NumPy 之类的示例,并描述它的工作原理。

另请参阅PEP 3118了解一些基本原理。

不是(主要)用于锯齿形阵列,例如分散/聚集使用。虽然您可以为此使用 PIL 样式的子偏移量,但通常只使用缓冲区列表或数组更简单(当然,除非您尝试与 PIL 交互)。

(旧式缓冲区 API确实支持专门为类似分散/聚集的使用而设计的模式,但它在 Python 3.x 中被删除,并且在 3.x API 被反向移植后在 2.6+ 中被弃用,主要是因为没有人使用过它。)

于 2013-11-27T02:03:59.040 回答