我想使用具有复杂条目的矩阵来构造一个新矩阵,但它给了我警告
“ComplexWarning:将复数转换为实数会丢弃虚部”。
结果,新矩阵的条目都是实数。如何让所有条目都保留其虚部?
这是包含我的原始代码的图像

Xia*_*shu 10
我知道我在哪里发出这个警告。
当我构造一个新的空矩阵时,我需要添加 dtype = "complex_"。
例如,
mat__ = np.zeros((k*nboxes,k*nboxes),dtype = 'complex_')
Run Code Online (Sandbox Code Playgroud)
如果我们只写
mat__ = np.zeros((k*nboxes,k*nboxes))
Run Code Online (Sandbox Code Playgroud)
并对其进行一些操作,例如使用复矩阵形成新矩阵,然后新矩阵将丢弃虚部。
您可以尝试使用 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)
Run Code Online (Sandbox Code Playgroud)