在numpy数组中搜索元素的索引

时间:2016-02-13 03:03:37

标签: arrays python-2.7 numpy indexing minimum

我有一个"距离" 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),)

2 个答案:

答案 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