2016-08-15 65 views
2

我想索引像函數:np.searchsorted([1,2,3,4,5], 3)返回2,但萬一二維:np.searchsorted([[1,2],[3,4],[5,6]], [5,6])應該返回2.我該怎麼做?使用搜索排序的二維數組

+0

你真的做了'sorted'位置'search'?或者這是某種「發現」?你在搜索數組中的項目嗎?或放置新的? – hpaulj

+0

只要在第一列上搜索'searchs'。如果您擔心關係,請計算解決問題的列的某些功能。 'searchsorted'只有在數組的排序定義良好時纔有意義。它不能替代列表索引或查找。 – hpaulj

+0

對於多個值,你可以看看這裏:['找到numpy數組中的幾個值的行索引](http://stackoverflow.com/questions/38674027/find-the-row-indexes-of-幾個值-IN-A-numpy的陣列)。 – Divakar

回答

1

documentation for searchsorted表示它只適用於一維陣列。

你可以在使用內置的methds列表索引位置:

>>> a = [[1,2],[3,4],[5,6]] 
>>> a.index([5,6]) 
2 

>>> a = [[1,2],[5,6],[3,4]] 
>>> print(a.index([5,6])) 
>>> a.sort() 
>>> print(a.index([5,6])) 
1 
2 
+0

感謝您的幫助! –

3
a = np.array([[1,2],[3,4],[5,6]]) 
b = np.array([5,6]) 
np.where(np.all(a==b,axis=1)) 
+0

感謝您的幫助! –