2016-02-13 102 views
2

我有一個「距離」numpy數組。我想找到一個元素的索引。我用numpy.where條件,但它沒有返回索引。相反,它只是返回具有空數組的元素的類型,如下所示:在numpy數組中搜索元素的索引

(array([], dtype=int64),) 

我該如何獲取元素的索引?請幫忙。謝謝。

這是我的代碼:

distances = distances_query_training(features_train, features_test[2]) 

print min(distances) 

print type(distances) 

pos = np.where(distances == 0.03471681) 

print pos 

而下面是輸出:

0.0347168063061 
(array([], dtype=int64),) 

回答

1

待辦事項你需要所有的緊密元素還是隻有最匹配的元素? 我通常做這樣的事情來獲得最接近的索引值

def nearest_arg(array, value): 
    idx = (np.abs(array - value)).argmin() 
    return idx 
+0

我需要最匹配的一個。 而你的功能工作得很好。 感謝您的幫助。 :-) –

2

不要使用等於浮動值,使用isclose()

import numpy as np 

np.random.seed(1) 
a = np.random.rand(1000) 

np.where(np.isclose(a, 0.3, atol=1e-4))