numpy.indices#
-
numpy.индексы(измерения, dtype=
'int'> , sparse=False)[источник]# Вернуть массив, представляющий индексы сетки.
Вычислить массив, в котором подмассивы содержат значения индексов 0, 1, … изменяющиеся только вдоль соответствующей оси.
- Параметры:
- измеренияпоследовательность целых чисел
Форма сетки.
- dtypedtype, опционально
Тип данных результата.
- разреженныйлогический, необязательный
Возвращает разреженное представление сетки вместо плотного представления. По умолчанию False.
- Возвращает:
- сеткаодин ndarray или кортеж ndarrays
- Если sparse равно False:
Возвращает один массив индексов сетки,
grid.shape = (len(dimensions),) + tuple(dimensions).- Если sparse равно True:
Возвращает кортеж массивов, с
grid[i].shape = (1, ..., 1, dimensions[i], 1, ..., 1)с размерами[i] на i-м месте
Примечания
Выходная форма в плотном случае получается путём добавления количества измерений перед кортежем измерений, т.е. если измерения является кортежем
(r0, ..., rN-1)длиныN, выходная форма —(N, r0, ..., rN-1).Подмассивы
grid[k]содержит N-мерный массив индексов вдольk-thось. Явно:grid[k, i0, i1, ..., iN-1] = ik
Примеры
>>> import numpy as np >>> grid = np.indices((2, 3)) >>> grid.shape (2, 2, 3) >>> grid[0] # row indices array([[0, 0, 0], [1, 1, 1]]) >>> grid[1] # column indices array([[0, 1, 2], [0, 1, 2]])
Индексы можно использовать в качестве индекса для массива.
>>> x = np.arange(20).reshape(5, 4) >>> row, col = np.indices((2, 3)) >>> x[row, col] array([[0, 1, 2], [4, 5, 6]])
Обратите внимание, что в приведённом выше примере было бы проще извлечь требуемые элементы напрямую с помощью
x[:2, :3].Если sparse установлен в true, сетка будет возвращена в разреженном представлении.
>>> i, j = np.indices((2, 3), sparse=True) >>> i.shape (2, 1) >>> j.shape (1, 3) >>> i # row indices array([[0], [1]]) >>> j # column indices array([[0, 1, 2]])