savetxt在python中的两列,numpy

时间:2013-05-01 12:09:42

标签: python numpy

我有一些数据为numpy 2D array list-

array([[ 0.62367947],
       [ 0.95427859],
       [ 0.97984112],
       [ 0.7025228 ],
       [ 0.86436385],
       [ 0.71010739],
       [ 0.98748138],
       [ 0.75198057]])

array([[-1.,  1., -1.],    
       [-1.,  1.,  1.],
       [ 1.,  1.,  1.],
       [ 1., -1.,  1.],
       [-1., -1., -1.],
       [ 1.,  1., -1.],
       [ 1., -1., -1.],
       [-1., -1.,  1.]])

我想将它们保存在txt文件中,以便它们看起来像

0.62367947    -1 1 -1    
0.95427859    -1 1 1    
0.97984112     1 1 1

有人可以使用numpy savetxt帮助我如何做到这一点

1 个答案:

答案 0 :(得分:5)

import numpy as np
R = np.array([[0.62367947],
              [0.95427859],
              [0.97984112],
              [0.7025228],
              [0.86436385],
              [0.71010739],
              [0.98748138],
              [0.75198057]])

phase = np.array([[-1., 1., -1.],
                  [-1., 1., 1.],
                  [1., 1., 1.],
                  [1., -1., 1.],
                  [-1., -1., -1.],
                  [1., 1., -1.],
                  [1., -1., -1.],
                  [-1., -1., 1.]])

np.savetxt('R2.txt', np.hstack([R, phase]), fmt=['%0.8f','%g','%g','%g'])    

产量

0.62367947 -1 1 -1
0.95427859 -1 1 1
0.97984112 1 1 1
0.70252280 1 -1 1
0.86436385 -1 -1 -1
0.71010739 1 1 -1
0.98748138 1 -1 -1
0.75198057 -1 -1 1

np.hstack水平堆叠数组。由于Rphase都是二维的,np.hstack([R, phase])会产生

In [137]: np.hstack([R,phase])
Out[137]: 
array([[ 0.62367947, -1.        ,  1.        , -1.        ],
       [ 0.95427859, -1.        ,  1.        ,  1.        ],
       [ 0.97984112,  1.        ,  1.        ,  1.        ],
       [ 0.7025228 ,  1.        , -1.        ,  1.        ],
       [ 0.86436385, -1.        , -1.        , -1.        ],
       [ 0.71010739,  1.        ,  1.        , -1.        ],
       [ 0.98748138,  1.        , -1.        , -1.        ],
       [ 0.75198057, -1.        , -1.        ,  1.        ]])

将此2D数组传递给np.savetxt可获得所需的结果。