numpy.ravel_multi_index

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.ravel_multi_index.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

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

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

参数:

multi_index:array_like的元组

整数数组的元组,每个维的一个数组。

dims:ints的tuple

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

mode:{'raise','wrap','clip'},可选

指定如何处理超越索引。可以指定一个模式或一个模式的元组,每个索引一个模式。

  • 'raise' - 引发错误(默认)
  • 'wrap' - wrap around
  • 'clip' - 剪辑到范围

在“剪辑”模式中,通常包装的负索引将剪切为0。

order:{'C','F'},可选

确定多索引是否应被视为行主(C风格)或列主(Fortran风格)顺序中的索引。

返回:

raveled_indices:ndarray

数组的平面化版本的维度dims的数组。

也可以看看

unravel_index

笔记

版本1.6.0中的新功能。

例子

>>> 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