Numpy从文本文件读取复数
我用numpy保存了一个包含复数的矩阵。输出文件看起来是这样的:
(1.100412357301083777e-02+1.471303433818593742e-02j) (1.511426586599529109e-02+-2.516143258497194335e-03j)
(1.084202636262432407e-02+1.438252996657629623e-02j) (1.447620213198375083e-02+4.471111098343749646e-03j)
现在,我尝试用numpy读取这个文件,代码是 data = np.loadtxt('PsiPfree1.out', delimiter='\t', dtype=np.complex128)
,但是我遇到了以下错误:
items = [conv(val) for (conv, val) in zip(converters, vals)]
ValueError: complex() arg is a malformed string`
有没有什么办法可以解决这个问题呢?
补充:我现在也尝试了不加括号,让矩阵看起来是这样的:
1.100412357301083777e-02+1.471303433818593742e-02j 1.511426586599529109e-02+-2.516143258497194335e-03j
1.084202636262432407e-02+1.438252996657629623e-02j 1.447620213198375083e-02+4.471111098343749646e-03j
结果还是遇到了同样的问题。
1 个回答
1
问题是,我使用的numpy的savetxt函数 np.savetxt('PsiPges.out',PsiPges , delimiter='\t')
导出数据矩阵时,对于所有负的虚部,它写成了 +-
(见上面发布的矩阵)。如果把这个替换成只有 -
,那么loadtxt函数就能正常工作了。