📅  最后修改于: 2023-12-03 15:03:19.619000             🧑  作者: Mango
numpy.unravel_index(indices, shape, order='C')
函数返回沿给定形状的数组的展平索引的坐标。
返回坐标元组或坐标数组,其形状与索引数组indices的形状相同。
import numpy as np
# 定义一个3x3的数组
arr = np.arange(9).reshape((3, 3))
print("原始数组:\n", arr)
# 返回展开索引4的坐标
coord = np.unravel_index(4, arr.shape)
print("元素4的坐标是:", coord)
# 将randint函数返回的一维数组转换为坐标数组
idx = np.random.randint(0, 9, size=(3,))
coord_array = np.unravel_index(indices=idx, shape=arr.shape)
print("随机三个元素的坐标是:", coord_array)
输出结果:
原始数组:
[[0 1 2]
[3 4 5]
[6 7 8]]
元素4的坐标是: (1, 0)
随机三个元素的坐标是: (array([2, 1, 0]), array([0, 1, 1]))
在上述示例中,我们首先定义了一个3x3的数组arr
,并用np.arange()
函数初始化其元素为0-8。然后,使用np.unravel_index()
函数展开其索引为4的元素,返回了元素坐标(1, 0)。最后,我们将三个随机选取的整数元素的索引放到一个一维数组中,并使用np.unravel_index()
函数将其转换为一个包含三个元组的数组,表示对应元素在arr
中的坐标。
注意:np.unravel_index()
函数在对于大数组时是比较耗费计算资源的,因此,它不应该经常使用在循环或其他需要高效率运算的场合。