Numpy.where 函数没有在数组中找到值...有人知道为什么吗?

Numpy.where function not finding values within array... Anyone know why?

我一直在尝试使用 python 的 numpy.where 函数来确定特定值的位置,但由于某种原因它错误地确定了 False 该值的实际位置成立。从而返回一个空数组。见下文:

>>>lbpoly=numpy.array([ 5.45  5.5   5.55  5.6   5.65  5.7   5.75  5.8   5.85  5.9   5.95  6.
6.05  6.1   6.15  6.2   6.25  6.3   6.35  6.4   6.45  6.5   6.55  6.6
6.65  6.7   6.75  6.8   6.85  6.9   6.95  7.  ])

>>>cpah=numpy.where(lbpoly==6.2)

>>>print cpah

>>>(array([], dtype=int32),)

有人知道为什么会这样吗?我尝试了许多不同的变体,甚至使用 <> 逻辑。但这会产生 2 个值的索引。

比较浮点数意义不大;特别是,有很多内容是您无法通过观察浮点数的打印表示来了解的。 (查看更多here。)

尝试这样的事情:

import numpy as np

lbpoly= np.array([4.0, 6.2])

>>> np.where(np.isclose(lbpoly, 6.2))
(array([1]),)