numpy.unravel_index(indices, shape, order='C')
将平面索引或平面索引数组转换为坐标数组的元组
参数
indices : array_like
一种整数数组,其元素是维度形状数组的平展形式的索引。
shape : tuple of ints
展开索引的数组的形状。
order : {‘C’, ‘F’}, optional
确定索引是按行主索引©还是按列主索引(F)顺序显示。
Returns:
unraveled_coords : tuple of ndarray
元组中的每个数组都具有与索引数组相同的形状。
Examples
>>> np.unravel_index([22, 41, 37], (7,6))
(array([3, 6, 6]), array([4, 5, 1]))
>>> np.unravel_index([31, 41, 13], (7,6), order='F')
(array([3, 6, 6]), array([4, 5, 1]))
>>> np.unravel_index(1621, (6,7,8,9))
(3, 1, 4, 1)
解释:
给定一个矩阵,shape=(6,7,8),即3维的矩阵,求第n个元素的下标是什么?矩阵各维的下标从0开始
如果indices参数是一个标量,那么返回的是一个向量,维数=矩阵的维数,向量的值其实就是在矩阵中对应的下标。如6789的矩阵,1621/(789)=3,(1621-3789)/(89)=1,(1621-3789-189)/9=4,(1621-3789-189-49)=1。所以返回的向量为array(3,1,4,1)
如果indices参数是一个向量的,那么通过该向量中值求出对应的下标。下标的个数就是矩阵的维数,每一维下标组成一个向量,所以返回的向量的个数=矩阵维数。如76的矩阵,第22个元素是 36+4,所以对应的下标是(3,4),那么返回的值是 array([3]),array([4])
原文链接:https://blog.csdn.net/dn_mug/article/details/70256109