Numpy检查两个数组的元素大致相等

时间:2018-03-09 10:17:45

标签: python numpy

我有两个带有浮点值的numpy数组,我试图找到数字大致相等的索引(浮点比较)。

类似于:

x = np.random.rand(3)
y = np.random.rand(3)

x[2] = y[2]

# Do the comparison and it should return 2 as the index

我试过像

这样的东西
np.where(np.allclose(x, y))

但是,这会返回一个空数组。如果我这样做:

np.where(x == y)  # This is fine.

我尝试使用numpy.wherenumpy.allclose的组合但无法使其正常工作。当然,我可以通过一个循环来实现它,但这看起来很单调乏味。

2 个答案:

答案 0 :(得分:7)

您所寻找的是np.isclose

np.where(np.isclose(x, y))

答案 1 :(得分:3)

您可以随时使用依赖的内容:

np.where( np.abs(x-y) < epsilon )