当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy lib.Arrayterator用法及代码示例


本文简要介绍 python 语言中 numpy.lib.Arrayterator 的用法。

用法:

class  numpy.lib.Arrayterator(var, buf_size=None)

大数组的缓冲迭代器。

Arrayterator创建一个缓冲迭代器,用于读取小的连续块中的大数组。该类对于存储在文件系统中的对象很有用。它允许对对象进行迭代没有读取内存中的所有内容;相反,小块被读取和迭代。

Arrayterator 可与任何支持多维切片的对象一起使用。这包括 NumPy 数组,还包括来自 Scientific.IO.NetCDF 或 pynetcdf 的变量。

参数

var array_like

要迭代的对象。

buf_size 整数,可选

缓冲区大小。如果提供了buf_size,则将读入内存的最大数据量为buf_size 个元素。默认为无,它将尽可能多的元素读入内存。

注意

该算法的工作原理是首先找到一个“running dimension”,沿着该“running dimension” 将提取块。给定一个维度数组(d1, d2, ..., dn),例如如果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)

属性

var
buf_size
start
stop
step
shape

要迭代的数组的形状。

numpy.lib.Arrayterator.flat

Arrayterator 对象的一维平面迭代器。

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.lib.Arrayterator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。