當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。