python - numpy中 'invalid value encountered in less_equal'的原因可能是什么

标签 python arrays numpy runtime

我遇到了 RuntimeWarning

 RuntimeWarning: invalid value encountered in less_equal

由我的这行代码生成:

center_dists[j] <= center_dists[i]

center_dists[j]center_dists[i] 都是 numpy 数组

这个警告的原因可能是什么?

最佳答案

这很可能是由于所涉及的输入中某处的 np.nan 而发生的。它的一个例子如下所示 -

In [1]: A = np.array([4, 2, 1])

In [2]: B = np.array([2, 2, np.nan])

In [3]: A<=B
RuntimeWarning: invalid value encountered in less_equal
Out[3]: array([False,  True, False], dtype=bool)

对于所有涉及 np.nan 的比较,它会输出 False。让我们确认一下 broadcasted比较。这是一个示例 -

In [1]: A = np.array([4, 2, 1])

In [2]: B = np.array([2, 2, np.nan])

In [3]: A[:,None] <= B
RuntimeWarning: invalid value encountered in less_equal
Out[3]: 
array([[False, False, False],
       [ True,  True, False],
       [ True,  True, False]], dtype=bool)

请注意输出中的第三列,它对应于涉及 B 中的第三个元素 np.nan 的比较,并导致所有 False 值(value)观。

关于python - numpy中 'invalid value encountered in less_equal'的原因可能是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955158/

相关文章:

Java,用提供的数字填充数组

javascript - 如何用高阶函数解决这个问题?

python - GAE 模块和 Google 端点

python - 如何将 SSL 证书添加到 Dash 应用程序

python - Matplotlib:在另一个轴面板上方绘制一条线

arrays - 在swift中找到后修改数组元素不起作用

python - 将numpy uint8输入tensorflow float32占位符

python - 根据python中另一个列表的最大值对数组的列索引进行分组

python - 如何使用 np.newaxis?

python - 如何在AWS CDK中创建监听器规则?