我在我的Jupyter笔记本中遇到了一些我无法解释的错误。我有以下代码。
import numpy as np
c = 100
c_conj = np.conjugate(c)
print(c == c_conj)
print(c**5 == c_conj**5)
导致输出
True
False
JupyterLite(在线JupyterNotebook软件)也得到了相同的结果,或者,如果我在其他平台(例如GoogleCollab)上运行相同的代码,也会得到输出
True
True
这是用户错误吗?有什么方法可以解释吗?
1条答案
按热度按时间lymnna711#
numpy.conjugate(100)
返回一个numpy.int_
示例,而不是一个普通的Pythonint
。numpy.int_
对应于Clong
。在比较结果为False
的平台上,Clong
为32位,c_conj**5
计算溢出。