我有两个带有浮点值的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.where
和numpy.allclose
的组合但无法使其正常工作。当然,我可以通过一个循环来实现它,但这看起来很单调乏味。
答案 0 :(得分:7)
您所寻找的是np.isclose
:
np.where(np.isclose(x, y))
答案 1 :(得分:3)
您可以随时使用依赖的内容:
np.where( np.abs(x-y) < epsilon )