【发布时间】:2019-06-30 13:25:45
【问题描述】:
在 Python 中将 nan 插入复杂的 numpy 数组会产生一些(对我而言)意想不到的行为:
a = np.array([5+6*1j])
print a
array([5.+6.j])
a[0] = np.nan
print a
array([nan+0.j])
我希望 Python 编写 nan+nanj. 用于分析,这通常可能无关紧要,因为任何具有实部和/或虚部的复数的 np.isnan 都是 True。但是,我不知道这种行为,并且在绘制数组的实部和虚部时,它给我的印象是我有关于虚部的信息(但没有)。一种解决方法是写a[0] = np.nan + np.nan*1j。有人可以向我解释这种行为的原因吗?
【问题讨论】:
-
相关链接:NaN 与复数的令人惊讶的行为 #12919 (github.com/numpy/numpy/issues/12919)
-
我完全同意下面的两个答案,但我认为零虚部是一种不良的副作用,特别是因为正如上面链接中所建议的那样,Python 应该会引发某种警告。
标签: python numpy nan complex-numbers