Атрибут index
Атрибут index класса flatiter возвращает текущий индекс итератора при обходе массива.
Индекс представляет собой целое число, указывающее на позицию элемента в уплощённом (одномерном) представлении массива.
При создании итератора индекс равен 0. После каждого шага итерации индекс увеличивается на единицу.
Синтаксис
iterator.index
Атрибут доступен только для чтения. Изменить его значение напрямую нельзя.
Пример
Получим текущий индекс итератора при обходе двумерного массива:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
flat = arr.flat
print(flat.index)
next(flat)
print(flat.index)
next(flat)
print(flat.index)
Результат выполнения кода:
0
1
2
Пример
Используем атрибут index внутри цикла для отслеживания номера элемента:
import numpy as np
arr = np.array([[10, 20, 30], [40, 50, 60]])
flat = arr.flat
for value in flat:
print(f"Index: {flat.index}, Value: {value}")
Результат выполнения кода:
Index: 0, Value: 10
Index: 1, Value: 20
Index: 2, Value: 30
Index: 3, Value: 40
Index: 4, Value: 50
Index: 5, Value: 60
Пример
Проверим, что атрибут index доступен только для чтения:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
flat = arr.flat
try:
flat.index = 10
except AttributeError as e:
print(e)
Результат выполнения кода:
"can't set attribute"