使用.any()的臭虫?

时间:2019-10-24 18:29:48

标签: numpy

使用NumPy出现以下错误:

>>> distance = 0.9014179933248182
>>> min_distance = np.array([0.71341723, 0.07322284])
>>> distance < min_distance
array([False, False])

这是正确的,但是当我尝试时:

>>> distance < min_distance.any()
True

这显然是错误的,因为'min_distance'中没有任何数字小于'distance'

这是怎么回事?我正在Google Colab的“ 1.17.3”版本上使用NumPy。

2 个答案:

答案 0 :(得分:2)

虽然有一些小错误,但事实并非如此。请注意,min_distance.any()返回一个布尔结果。因此,在此表达式中:

distance < min_distance.any()

您正在将浮点数与布尔值进行比较,不幸的是,由于错误喜剧,布尔值会起作用:

  • boolint的子类
  • True等于1
  • 浮点数与整数相当。

例如

>>> 0.9 < True
True
>>> 1.1 < True
False

您想要的是什么

>>> (distance < min_distance).any()
False

答案 1 :(得分:2)

尝试(distance < min_distance).any()