我有一系列复杂的特征向量,我想以下列格式存储:
(eigvector 1的真实部分,eigvector1的部分,eigvector 2的实部,图像eigvector 2的部分,......)
然后前两列分别对应第一个特征向量的实部和虚部,依此类推。
通过做:
np.savetxt('Eigenvectors.dat',myeigenvectors)
我得到以下格式:
(-6.200989494250344625e-02+0.000000000000000000e+00j)
对于每个不适合用其他语言(如c ++)阅读的元素。
答案 0 :(得分:1)
与Adam的答案类似,但代码更清晰,无论是numpy数组还是标准python列表:
complex_split = [(v.real,v.imag) for v in clist]
如果您担心这段代码的运行时间,那么使用clist.real
和clist.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...