我有一个"距离" numpy数组。我想找到一个元素的索引。我使用numpy.where
条件,但它没有返回索引。相反,它只返回带有空数组的元素类型,如下所示:
(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),)
答案 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))
答案 1 :(得分:1)
您需要所有关闭元素还是最匹配的元素? 我通常做这样的事情来获得值
的最接近的索引def nearest_arg(array, value):
idx = (np.abs(array - value)).argmin()
return idx