Метод remove_axis
Метод remove_axis класса nditer удаляет указанную ось из итератора, уменьшая размерность обхода. Метод вызывается после создания итератора, но до начала итерации. В качестве параметра передаётся индекс оси, которую необходимо удалить. Возвращает новое количество осей итератора.
Синтаксис
nditer.remove_axis(axis)
Пример
Создадим двумерный массив и итератор. Удалим первую ось (строки) и выполним итерацию по оставшимся элементам:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
it = np.nditer(arr, flags=['multi_index'])
print("До удаления:", it.ndim)
it.remove_axis(0)
print("После удаления:", it.ndim)
for x in it:
print(x)
Результат выполнения кода:
До удаления: 2
После удаления: 1
1
2
3
4
5
6
Пример
Удалим вторую ось (столбцы) трёхмерного массива и проверим изменение формы итерации:
import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
it = np.nditer(arr, flags=['multi_index'])
print("Исходная размерность:", it.ndim)
print("Исходная форма:", it.shape)
it.remove_axis(1)
print("Размерность после удаления:", it.ndim)
print("Форма после удаления:", it.shape)
Результат выполнения кода:
Исходная размерность: 3
Исходная форма: (2, 2, 2)
Размерность после удаления: 2
Форма после удаления: (2, 2)
Пример
Используем метод remove_axis вместе с флагом external_loop для упрощения обработки данных:
import numpy as np
arr = np.array([[10, 20, 30], [40, 50, 60]])
it = np.nditer(arr, flags=['external_loop'], order='C')
it.remove_axis(0)
for x in it:
print(x)
Результат выполнения кода:
[10 20 30 40 50 60]
Смотрите также
-
класс
nditer,
который представляет многомерный итератор для массивов -
метод
enable_external_loop,
который включает режим внешнего цикла для итератора -
метод
reset,
который сбрасывает итератор в начальное состояние -
метод
iternext,
который переводит итератор на следующий элемент