gpt4 book ai didi

Python nan 与复杂数组

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:44 27 4
gpt4 key购买 nike

在 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 都是真的。然而,我不知道这种行为,并且在绘制数组的实部和虚部时,它给我的印象是我有关于虚部的信息(但是没有)。解决方法是编写 a[0] = np.nan + np.nan*1j。有人可以向我解释这种行为的原因吗?

最佳答案

这里的问题是,当您创建具有复杂值的数组时:

a = np.array([5+6*1j])

您已经创建了一个 dtype 复杂数组:

a.dtype
# dtype('complex128')

因此,通过添加一个仅包含实部的值,它将被转换为复数值,因此您将插入一个复数分量等于0j的数字,因此:

np.complex(np.nan)
# (nan+0j)

这解释了这种行为:

a[0] = np.array([np.nan])
print(a)
# [nan+0.j]

关于Python nan 与复杂数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54556223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com