原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.lib.Arrayterator.html
校对:(虚位以待)
numpy.lib.
Arrayterator
(var, buf_size=None)[source]大数组的缓冲迭代器。
Arrayterator
创建一个缓冲迭代器,用于在小连续块中读取大数组。该类对存储在文件系统中的对象很有用。它允许对象上的迭代,而不用读取内存中的所有内容;相反,小块被读取和迭代。
Arrayterator
可用于支持多维切片的任何对象。这包括NumPy数组,但也包括来自Scientific.IO.NetCDF或pynetcdf的变量。
参数: | var:array_like
buf_size:int,可选
|
---|
也可以看看
ndenumerate
flatiter
memmap
笔记
该算法通过首先找到“运行维度”来工作,沿着该运行维度将提取块。给定尺寸为(d1, d2, ..., dn) t0 >,例如如果buf_size小于
另一方面,如果d1
,则将使用第一个维度。d1 buf_size d1 * d2
将使用第二个维度,以此类推。沿此维提取块,并且当返回最后一个块时,过程从下一维继续,直到已读取所有元素。
例子
>>> a = np.arange(3 * 4 * 5 * 6).reshape(3, 4, 5, 6)
>>> a_itor = np.lib.Arrayterator(a, 2)
>>> a_itor.shape
(3, 4, 5, 6)
现在我们可以迭代a_itor
,它将返回大小为2的数组。由于buf_size小于任何维度,因此第一个维度将首先迭代:
>>> for subarr in a_itor:
... if not subarr.all():
... print(subarr, subarr.shape)
...
[[[[0 1]]]] (1, 1, 1, 2)
属性
shape |
要迭代的数组的形状。 |
flat |
Arrayterator对象的1-D平面迭代器。 |
var | |
buf_size | |
开始 | |
停止 | |
步 |