我有一個numpy
矩陣,其中我在每行的第一個元素中存儲某種類型的鍵(或者以另一種方式,所有鍵都在第一列中)。使用行的第一個元素找到行號
[[123,0,1,1,2],
[12,1,2,3,4],
[1,0,2,5,4],
[90,1,1,4,3]]
我想通過鍵獲取行號搜索。我發現我們可以使用numpy.where
,但不清楚如何使用它來獲取行號。我想要類似
>>numpy.func(myMatrix,90)
3
任何幫助,將不勝感激。
我有一個numpy
矩陣,其中我在每行的第一個元素中存儲某種類型的鍵(或者以另一種方式,所有鍵都在第一列中)。使用行的第一個元素找到行號
[[123,0,1,1,2],
[12,1,2,3,4],
[1,0,2,5,4],
[90,1,1,4,3]]
我想通過鍵獲取行號搜索。我發現我們可以使用numpy.where
,但不清楚如何使用它來獲取行號。我想要類似
>>numpy.func(myMatrix,90)
3
任何幫助,將不勝感激。
將第一列與中的90
進行比較。它會返回其相等與90
項目的索引數組:
In [3]: A = np.array([[123,0,1,1,2],
[12,1,2,3,4],
[1,0,2,5,4],
[90,1,1,4,3]])
In [6]: np.where(A[:,0]==90)[0]
Out[6]: array([3])
按照online doc,numpy.where
如果你給它只是一個布爾陣列將返回座標表(每個維度中的一個列表)的元素是True
。 因此,我們可以通過抓取數組的第一列,將它與要查找的元素進行比較,然後在該布爾數組上調用np.where來獲取所需的信息。看起來像這樣:
row,column=np.where(myMatrix[;,0]==90)
#Note that column will just be 0 here
如果你有一個鍵和一些數據,你應該使用字典,而不是一個列表。按鍵查找項目是快速的,通過列表搜索slowwwww。 –
_行號(名詞,指行的位置,矩陣的_'line'_)和_raw_(形容詞,表示_wild,brute_或_unedited,unprocessed_)號碼是不同的。後者可能甚至不是一個有效的術語。我想你在這裏討論的是_row_數字。 – ForceBru
爲什麼不使用熊貓DataFrame?您的密鑰列將作爲索引,並且您可以通過多種方式選擇,分組和數據子集。 – pbreach