如何计算出“复杂警告:将复杂值转换为实数会丢弃虚部”?

时间:2019-06-12 16:21:30

标签: python numpy

我想使用具有复杂条目的矩阵来构造新的矩阵,但这会给我警告

  

“ ComplexWarning:将复数值转换为实数会丢弃虚部”。

因此,新矩阵的条目都是实数。如何使所有条目保持其虚构部分?

这是包含我原始代码的图片

This is the image containing my original code

2 个答案:

答案 0 :(得分:0)

您可以尝试使用numpy使用数组构造函数从Matrix_1创建新矩阵。这样,您可以指定将dtype与复数一起使用。这样的事情应该可以解决问题:

mat_ = np.array(matrix_1[:,ll,ll,:],dtype = "complex_")

一些我用来确定的测试:

import numpy as np

abc = np.array([[1+1j,2+2j,3+3j],[4+4j,5+5j,6+6j],[7+7j,8+8j,9+9j]],dtype = "complex_") # initial
print(abc)
abc2 = np.array(abc[1:,:1],dtype = "complex_") # post transformation
print(abc2)

答案 1 :(得分:0)

我知道我在哪里发出此警告。

当我构造一个新的空矩阵时,我需要添加dtype =“ complex _”。

例如

mat__ = np.zeros((k*nboxes,k*nboxes),dtype = 'complex_')

如果我们只是写

mat__ = np.zeros((k*nboxes,k*nboxes))

并对其进行一些操作,例如使用复杂矩阵形成新矩阵,然后新矩阵将舍弃虚部。