📅  最后修改于: 2023-12-03 14:48:13.746000             🧑  作者: Mango
unravel_index
是numpy库中的一个函数,其作用是根据数组下标的线性索引值计算其在多维数组中的坐标。
numpy.unravel_index(indices, shape, order='C')
参数说明:
indices
:表示数组下标的线性索引值或其组成的序列。如果有多个线性索引值,则传入一个元组或列表。shape
:表示多维数组的形状。order
:表示线性索引值的顺序,可选参数,可以是'C'或'F',默认为'C'。函数返回值:若 indices
含有多个线性索引值,则返回多个序列,表示这些线型索引值对应的多维数组下标的坐标。
import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
indices = [8, 2, 5]
result = np.unravel_index(indices, arr.shape)
print(result)
输出结果为:
(array([2, 0, 1]), array([2, 2, 1]))
解释:arr
为一个 3x3 的二维数组。数字 8、2、5 的线性索引分别为 8,2+1x3,5+1x3。其中,1x3
表示前一维的总元素个数。通过 np.unravel_index(indices, arr.shape)
函数可以计算出数字 8、2、5 在二维数组的哪些位置,返回值为二维元组。
unravel_index
函数可以用来将多维数组中的线性索引值转换为数组下标的坐标,以方便进行相关计算。此外,该函数还可以用于扁平化索引(flattened indices)与多维索引(multi-dimensional indices)之间的转换。