numpy.unravel_index 说明

官网的api说明如下:
numpy. unravel_index ( indices dims order='C' )
Converts a flat index or array of flat indices into a tuple of coordinate arrays.
Parameters:indices : array_like
An integer array whose elements are indices into the flattened version of an array of dimensions dims. Before version 1.6.0, this function accepted just one index value.
dims : tuple of ints
The shape of the array to use for unraveling indices.
order : {‘C’, ‘F’}, optional
Determines whether the indices should be viewed as indexing in row-major (C-style) or column-major (Fortran-style) order.
New in version 1.6.0.
Returns:unraveled_coords : tuple of ndarray
Each array in the tuple has the same shape as the indices array.
See also
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)


例子:
Consider a (6,7,8) shape array, what is the index (x,y,z) of the 100th element ?
>>> print np.unravel_index( 100 ,( 6 , 7 , 8 ))
( 1 , 5 , 4 )

解释:
给定一个矩阵,shape=(6,7,8),即3维的矩阵,求第n个元素的下标是什么? 矩阵各维的下标从0开始


如果indices参数是一个标量,那么返回的是一个向量,维数=矩阵的维数,向量的值其实就是在矩阵中对应的下标。如6*7*8*9的矩阵,1621/(7*8*9)=3,(1621-3*7*8*9)/(8*9)=1,(1621-3*7*8*9-1*8*9)/9=4,(1621-3*7*8*9-1*8*9-4*9)=1。所以返回的向量为array(3,1,4,1)

如果indices参数是一个向量的,那么通过该向量中值求出对应的下标。下标的个数就是矩阵的维数,每一维下标组成一个向量,所以返回的向量的个数=矩阵维数。如7*6的矩阵,第22个元素是 3*6+4,所以对应的下标是(3,4),那么返回的值是 array([3]),array([4])
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值