Numpy从文本文件中读取复数

时间:2014-04-16 22:25:18

标签: python 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 个答案:

答案 0 :(得分:1)

问题是,我使用的numpy savetxt函数np.savetxt('PsiPges.out',PsiPges , delimiter='\t')导出了数据矩阵,但是对于所有负虚部,它都会写+-(参见上面发布的矩阵)。如果仅由-替换,则loadtxt函数可以正常工作。