📜  unravel_index numpy (1)

📅  最后修改于: 2023-12-03 14:48:13.746000             🧑  作者: Mango

numpy的unravel_index函数

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)之间的转换。