我一直在尝试使用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个值的指数。
答案 0 :(得分:7)
比较浮点数没什么意义;特别是,通过观察浮点数的打印表示,您无法学到很多东西。 (查看更多here。)
尝试这样的事情:
import numpy as np
lbpoly= np.array([4.0, 6.2])
>>> np.where(np.isclose(lbpoly, 6.2))
(array([1]),)