本文简要介绍 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 对象的一维平面迭代器。
属性:
相关用法
- Python numpy lib.NumpyVersion用法及代码示例
- Python numpy linalg.svd用法及代码示例
- Python numpy linalg.pinv用法及代码示例
- Python numpy linalg.eigh用法及代码示例
- Python numpy linalg.tensorinv用法及代码示例
- Python numpy linalg.LinAlgError用法及代码示例
- Python numpy linalg.matrix_rank用法及代码示例
- Python numpy linalg.solve用法及代码示例
- Python numpy linalg.det用法及代码示例
- Python numpy linspace用法及代码示例
- Python numpy linalg.cond用法及代码示例
- Python numpy linalg.inv用法及代码示例
- Python numpy linalg.eig用法及代码示例
- Python numpy linalg.lstsq用法及代码示例
- Python numpy linalg.norm用法及代码示例
- Python numpy linalg.slogdet用法及代码示例
- Python numpy linalg.multi_dot用法及代码示例
- Python numpy linalg.tensorsolve用法及代码示例
- Python numpy linalg.qr用法及代码示例
- Python numpy linalg.matrix_power用法及代码示例
- Python numpy linalg.cholesky用法及代码示例
- Python numpy linalg.eigvals用法及代码示例
- Python numpy linalg.eigvalsh用法及代码示例
- Python numpy legendre.legint用法及代码示例
- Python numpy laguerre.lagone用法及代码示例
注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.lib.Arrayterator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。