python - 不是运算符,在 Python 中似乎是错误的?

标签 python not-operator

我是 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/

相关文章:

python - 在 Django : How to serialize dict object to json?

python - Tkinter 文本小部件中的文本事件

c# - : if(! 值) 或 if(flag == 值) 哪个更清晰?

language-agnostic - 我应该使用 `!IsGood` 还是 `IsGood == false` ?

Python创建条形图比较2组数据

python - 删除 matplotlib 中图像之间的间距

python - 将雅虎财经日期设置为数据框索引

MySQL not 和 not equal 运算符失败,是什么原因导致的?

c++ - 数组索引中的感叹号有什么作用?