numpy.ravel_multi_index#

numpy.ravel_multi_index(multi_index, dims, mode='raise', порядок='C')#

Преобразует кортеж индексных массивов в массив плоских индексов, применяя граничные режимы к мульти-индексу.

Параметры:
multi_indexкортеж из array_like

Кортеж целочисленных массивов, по одному массиву для каждого измерения.

dimsкортеж целых чисел

Форма массива, в который индексы из multi_index apply.

mode{‘raise’, ‘wrap’, ‘clip’}, опционально

Определяет, как обрабатываются индексы вне диапазона. Можно указать либо один режим, либо кортеж режимов, по одному режиму на индекс.

  • 'raise' – вызвать ошибку (по умолчанию)

  • ‘wrap’ – циклический перенос

  • ‘clip’ – обрезать до диапазона

В режиме 'clip' отрицательный индекс, который обычно зацикливается, будет обрезаться до 0.

порядок{'C', 'F'}, опционально

Определяет, следует ли рассматривать мультииндекс как индексацию в порядке row-major (C-стиль) или column-major (Fortran-стиль).

Возвращает:
raveled_indicesndarray

Массив индексов в уплощённую версию массива размерностей dims.

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

unravel_index

Примеры

>>> import numpy as np
>>> arr = np.array([[3,6,6],[4,5,1]])
>>> np.ravel_multi_index(arr, (7,6))
array([22, 41, 37])
>>> np.ravel_multi_index(arr, (7,6), order='F')
array([31, 41, 13])
>>> np.ravel_multi_index(arr, (4,6), mode='clip')
array([22, 23, 19])
>>> np.ravel_multi_index(arr, (4,4), mode=('clip','wrap'))
array([12, 13, 13])
>>> np.ravel_multi_index((3,1,4,1), (6,7,8,9))
1621