我想使用具有复杂条目的矩阵来构造新的矩阵,但这会给我警告
“ ComplexWarning:将复数值转换为实数会丢弃虚部”。
因此,新矩阵的条目都是实数。如何使所有条目保持其虚构部分?
这是包含我原始代码的图片
答案 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))
并对其进行一些操作,例如使用复杂矩阵形成新矩阵,然后新矩阵将舍弃虚部。