簡體   English   中英

在Python中訪問特定值的索引

[英]Accessing index of particular values in Python

我有一個坐標矩陣(numpy數組)

arr = [[a,b,c],
       [d,e,f],
       ......]]

其中每個元組都是唯一的,但a,b,c,d,e,f不是。

我想知道如何獲取索引

arr == [d,e,f]

我正在使用

np.where(arr==[d,e,f])

但它會返回一堆亂七八糟的值,而其他各個元素都是正確的。

例如,

vals = arr==[d,e,f]

回報

vals = [[False,False,False],
        [True,True,True],
         ...............]]

但是做

 np.where(vals==[True,True,True])

返回僅包含一個或兩個true以及三個true的其他元素。 我只想要一個包含所有三個真實的元組。

您可以通過在第一個軸上使用numpy.all獲取具有所有True的行的索引:

>>> arr1 = np.array(['d', 'e', 'f'])
>>> arr2 = np.array([['a' , 'b', 'c'],
       ['d', 'e', 'f'],
       ['g', 'h', 'i']])
>>> np.all(arr2==arr1, axis=1)
array([False,  True, False], dtype=bool)
# Now get the indices using `numpy.where`
>>> np.where(np.all(arr2==arr1, axis=1))[0]
array([1])
>>> arr2[_]
array([['d', 'e', 'f']], 
      dtype='|S1')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM