numpy.unravel_index()函數的用法


numpy.unravel_index()函數的作用是獲取一個/組int類型的索引值在一個多維數組中的位置。

語法:

numpy.unravel_index(indices, dims)

 

 舉個簡單的例子

求一個多維數組的最大元素的索引

A = np.random.randint(1,100,size=(2,3,5))
# 聲明一個size=(3,3,3,2)的數組
print(A)
array([[[98, 29, 32, 73, 90],
        [36, 52, 24,  2, 37],
        [66, 80, 23, 29, 98]],

       [[17, 32, 58, 99, 74],
        [53,  3, 20, 48, 28],
        [53,  7, 74, 34, 68]]])

ind_max = np.argmax(A)
print(ind_max)
18
# 此時得到的索引是將A數組flattern(展成一維數組)后的索引,如何得到對應的原數組的索引呢? ind_max_src = np.unravel_index(ind_max, A.shape) print(ind_max_src) (1, 0, 3)
# 函數numpy.unravel_index(indices, dims)返回的索引值從0開始計數。 print(A[ind_max_src])
99

 

如果np.unravel_index(indices, dims)的第一個參數是一個int型的數組

則返回該數組中每個元素(即flattern索引值)對應的原數組的索引。

idx = np.unravel_index((0,29),A.shape) 
# 注意索引下標從0開始
print(idx) # (array([0, 1], dtype=int64), array([0, 2], dtype=int64), array([0, 4], dtype=int64)) print(idx[0]) print(idx[1]) print(idx[2]) [0 1] [0 2] [0 4] first_idx = (idx[0][0],idx[1][0],idx[2][0]) print(first_idx) print(A[first_idx]) (0, 0, 0) 98

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM