Spec-Zone.ru › NumPy 1.18

numpy.lib.Arrayterator

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

Итератор с буферизацией для больших массивов.

Arrayterator создаёт буферизованный итератор для чтения больших массивов небольшими смежными блоками. Класс полезен для объектов, хранящихся в файловой системе. Он позволяет итерироваться по объекту без чтения всего в память; вместо этого считываются и итерируются небольшие блоки.

Arrayterator может быть использован с любым объектом, поддерживающим многомерные срезы. Это включает NumPy массивы, но также и переменные из Scientific.IO.NetCDF или pynetcdf, например.

Параметры
vararray_like

Объект для итерирования.

buf_sizeint, optional

Размер буфера. Если buf_size указан, максимальное количество данных, которое будет считано в память, составляет buf_size элементов. По умолчанию равно None, что будет читать как можно больше элементов в память.

См. также

ndenumerate

Итератор многомерных массивов.

flatiter

Итератор плоского массива.

memmap

Создать сопоставление в памяти с массивом, хранящимся в двоичном файле на диске.

Примечания

Алгоритм работает путём определения «рабочего измерения», по которому будут извлекаться блоки. Учитывая массив размерностей (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, и он будет возвращать массивы размером два. Поскольку 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

Форма массива, по которому производится итерирование.

flat

1-мерный плоский итератор для объектов Arrayterator.

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.lib.Arrayterator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API