将复杂值类型存储在.dat文件中(python)

时间:2015-01-29 05:52:52

标签: python

我有一系列复杂的特征向量,我想以下列格式存储:

(eigvector 1的真实部分,eigvector1的部分,eigvector 2的实部,图像eigvector 2的部分,......)

然后前两列分别对应第一个特征向量的实部和虚部,依此类推。

通过做: np.savetxt('Eigenvectors.dat',myeigenvectors)我得到以下格式:

(-6.200989494250344625e-02+0.000000000000000000e+00j)

对于每个不适合用其他语言(如c ++)阅读的元素。

2 个答案:

答案 0 :(得分:1)

与Adam的答案类似,但代码更清晰,无论是numpy数组还是标准python列表:

complex_split = [(v.real,v.imag) for v in clist]

如果您担心这段代码的运行时间,那么使用clist.realclist.imag然后使用zip可能会有好处,但我不确定相对运行时间。

答案 1 :(得分:0)

如果这些是一个复杂的numpy数组:

real = carray.real
image = carray.imag

如果它们存储在复杂值列表中:

real = [v.real for v in clist]
image = [v.imag for v in clist]

然后输出组合列表:

complex_split = zip(real, image)

这应该产生一个列表的逐项真实和想象部分,如:

( (r1, i1), (r2, i2) ) etc...