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-м месте

Смотрите также

mgrid, ogrid, meshgrid

Примечания

Выходная форма в плотном случае получается путём добавления количества измерений перед кортежем измерений, т.е. если измерения является кортежем (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]])