我是 python 的新手,创建了一个进行聚类分析的小函数。 快速总结是我必须多次比较两个数组,直到它不再改变。为此,我使用了一个 while 循环,只要它们不相等就循环,但我发现我从 != 和不是 == 得到了两个不同的结果。 MWE:
import numpy as np
a = np.array([1,1,1])
b = np.array([1,2,1])
print((a != b).all())
print(not (a == b))
最佳答案
not (a == b)
将引发 ValueError
,因为具有多个元素的数组的真值不明确。
在 numpy 中反转 bool 数组的方法是使用 ~
运算符:
>>> a != b
array([False, True, False], dtype=bool)
>>> ~ (a == b)
array([False, True, False], dtype=bool)
>>> (~ (a == b)).all() == (a != b).all()
True
关于python - 不是运算符,在 Python 中似乎是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34559958/