Numpy从文本文件读取复数

3 投票
1 回答
2580 浏览
提问于 2025-04-18 03:03

我用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函数就能正常工作了。

撰写回答