我遇到了 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/