Python Numpy.where函数在数组中找不到值。。。有人知道为什么吗?
我一直在尝试使用python的Python Numpy.where函数在数组中找不到值。。。有人知道为什么吗?,python,arrays,numpy,where,Python,Arrays,Numpy,Where,我一直在尝试使用python的numpy.where函数来确定特定值的位置,但由于某些原因,它错误地确定了实际找到值的位置。从而返回一个空数组。见下文: >>>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
numpy.where
函数来确定特定值的位置,但由于某些原因,它错误地确定了实际找到值的位置。从而返回一个空数组。见下文:
>>>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),)
有人知道为什么会这样吗?我尝试了许多不同的变体,甚至使用了
逻辑。但是这会产生两个值的索引。比较浮点数没有什么意义;特别是,通过观察浮点数的打印表示形式,您无法了解很多内容。(请参阅更多。)
试着这样做:
import numpy as np
lbpoly= np.array([4.0, 6.2])
>>> np.where(np.isclose(lbpoly, 6.2))
(array([1]),)
你的
lbpoly
是一个numpy数组吗?看起来像一个列表。一个列表显示有逗号,numpy数组没有(通常)。@dede是的,它是一个数组。在我匆忙中,我错误地把它放在这里,看起来像一个列表。