Атрибут iterationneedsapi
Атрибут iterationneedsapi класса nditer является логическим флагом, который показывает,
требуется ли для выполнения итерации использование специального API-интерфейса.
Этот атрибут используется в основном во внутренней реализации NumPy и помогает определить,
нужно ли вызывать методы iternext или другие API-функции для продвижения итератора.
Атрибут доступен только для чтения и возвращает значение True, если итератор требует использования
API-интерфейса для корректной работы, и False в противном случае.
Обычно это значение равно False для стандартных итераций, но может стать True при использовании
некоторых расширенных возможностей итератора.
Синтаксис
nditer.iterationneedsapi
Пример
Давайте создадим итератор для одномерного массива и проверим значение атрибута iterationneedsapi:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
it = np.nditer(arr)
print(it.iterationneedsapi)
Результат выполнения кода:
False
Пример
Проверим значение атрибута для итератора с изменяемыми операндами:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
out_arr = np.zeros(5, dtype=int)
it = np.nditer([arr, out_arr], op_flags=[['readonly'], ['writeonly']])
print(it.iterationneedsapi)
Результат выполнения кода:
False
Пример
Для многомерных массивов атрибут также возвращает False для стандартных итераторов:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
it = np.nditer(arr)
print(it.iterationneedsapi)
Результат выполнения кода:
False
Смотрите также
-
класс
nditer,
который предоставляет эффективный способ итерации по массивам -
метод
iternext,
который переводит итератор на следующий элемент -
метод
reset,
который сбрасывает итератор в начальное состояние -
метод
remove_axis,
который удаляет ось из итератора