numpy.ravel_multi_index#

numpy.ravel_multi_index(multi_index, dims, mode='raise', order='C')#

将索引数组的元组转换为平面索引数组,并将边界模式应用于多重索引.

参数:
multi_indexarray_like 元组

整数数组的元组,每个维度一个数组.

dims整数元组

应用来自 multi_index 的索引的数组的形状.

mode{‘raise’, ‘wrap’, ‘clip’}, optional

指定如何处理越界索引.可以指定一种模式,也可以指定模式元组,每个索引一种模式.

  • ‘raise’ – 引发错误(默认)

  • ‘wrap’ – 环绕

  • ‘clip’ – 裁剪到范围

在"clip"模式下,通常会环绕的负索引将剪裁为 0.

order{‘C’, ‘F’},可选

确定多重索引应被视为按行优先(C 风格)还是按列优先(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