我使用 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
这会导致同样的问题。
最佳答案
问题是,我使用的 numpy savetxt 函数 np.savetxt('PsiPges.out',PsiPges , delimiter='\t')
导出数据矩阵,但对于所有负虚数它编写的部分 +-
(参见上面发布的矩阵)。如果仅将其替换为 -
,则 loadtxt 函数可以正常工作。
关于python - Numpy 从文本文件中读取复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121271/