2013-05-01 101 views
6

我有一些數據作爲numpy的二維數組列表 -savetxt兩列在python,numpy的

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的做save​​txt

+1

你得到什麼錯誤? – 2013-05-01 12:11:37

+0

你能包括你實際使用'savetxt'的行嗎? – mgilson 2013-05-01 12:13:50

回答

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都是2維的,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.  ]]) 

傳遞此二維數組來np.savetxt給你所期望的結果。

+0

@ unutbu - 好的,你給出的答案是針對一組R2和相位值。但我有8組R2和相位值。我必須使用append將它們放在一個列表中。那麼當我嘗試使用你的代碼保存它們時 - 它說 - 除了d_0之外,數組維度必須一致 – user2095624 2013-05-01 12:40:43

+0

將所有「R2」和「相位」值收集到二維數組中。然後對整個二維數組調用'np.savetxt' *一次*。 – unutbu 2013-05-01 13:04:28

+0

陣列([[0.62367947], [0.95427859], [0.97984112], [0.7025228], [0.86436385], [0.71010739], [0.98748138], [0.75198057]]) 陣列([ [-1。,1.,-1。], [-1。,1.,1], [1.,1.1], [1.,-1,1.] , [-1。,-1。,-1。], [1.,1.,-1。], [1.,-1。,-1。], [-1。 1.,1.]]) 我製作了2D陣列。我仍然得到了同樣的錯誤消息。請看看。 – user2095624 2013-05-01 13:28:04