【发布时间】:2016-12-06 17:39:40
【问题描述】:
我有一个需要包含实值和复值的列表。但是,当我不使用 numpy.zeros(dtype=complex) 初始化数组时,出现以下错误:
n[2] = 3.7095 + 0.007j
TypeError: 无法将复数转换为浮点数
但是,当我将 dtype 设置为复杂时,当我使用实数时会收到以下警告(这不会破坏我的代码,但会导致大量不必要的红色警告消息使我的控制台混乱:
ComplexWarning:将复数转换为实数会丢弃虚数 部分
如何禁用警告消息,或以其他方式设置它以使值可以是虚构的或复杂的?
【问题讨论】:
-
将实数与复数 dtype 数组一起使用不应给您带来 ComplexWarning。如果您收到这样的警告,则说明您还有其他未向我们展示的错误。
-
该警告来自于执行以下操作:
numpy.array([2+3j]).astype(numpy.int)。我想你把你的两个案子弄混了。为什么不对所有事情都使用复数呢,2+0j和2一样“真实”。如果您只需要某物的真实部分,请执行numpy.array([2+3j]).real。
标签: python list numpy complex-numbers