2013-05-01 10 views
6

ho alcuni dati come NumPy matrice 2D list-savetxt due colonne in pitone, 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.]]) 

e voglio salvarli in un file txt in modo che assomigliano

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

Can qualcuno mi aiuti come posso farlo utilizzando NumPy savetxt

+1

Che errore ottieni? –

+0

Puoi includere la riga in cui effettivamente usi 'savetxt'? – mgilson

risposta

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'])  

produce

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 pile array orizzontalmente. Dal momento che R e phase sono entrambi a 2 dimensioni, np.hstack([R, phase]) cede

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.  ]]) 

Passando questa matrice 2D per np.savetxt ti dà il risultato desiderato.

+0

@ unutbu - beh, la risposta che hai dato funziona per un set di R2 e valore di fase. Ma ho 8 serie di R2 e valori di fase. E devo usare l'append per averli in una lista. Quindi, quando sto cercando di salvarli usando il tuo codice - dice - le dimensioni dell'array devono essere d'accordo eccetto per d_0 – user2095624

+0

Raccogli tutti i tuoi valori di 'R2' e' phase' in una matrice bidimensionale. Quindi chiama 'np.savetxt' * una volta * per l'intero array 2D. – unutbu

+0

array ([[,62,367947 millions], [,95,427859 millions], [,97,984112 millions], [,7025,228 mila], [,86,436385 millions], [,71,010739 millions], [,98,748138 millions], [,75,198057 millions]]) 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.]]) Ho creato array 2D. Ho ancora lo stesso errore msg. i pls danno un'occhiata – user2095624

Problemi correlati