2013-05-01 14 views
6

mam pewne dane jako numpy tablicy 2D listy-savetxt dwie kolumny w Pythonie, 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.]]) 

I chcę, aby zapisać je w pliku txt tak, że wyglądają jak

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

Can ktoś może mi pomóc w jaki sposób mogę to zrobić za pomocą numpy savetxt

+1

Jakiego błędu dostałeś? –

+0

Czy możesz dołączyć wiersz, w którym faktycznie używasz 'savetxt'? – mgilson

Odpowiedz

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

daje

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 stosy tablice poziomo. Od R i phase są zarówno 2-wymiarowy, np.hstack([R, phase]) daje

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

Podjęcie tej tablicy 2D do np.savetxt daje pożądanego rezultatu.

+0

@ unutbu - cóż, odpowiedź, którą podałeś, działa dla jednego zestawu wartości R2 i fazy. Ale mam 8 zestawów wartości R2 i fazowych. I muszę użyć załącznika, aby mieć je na liście. Więc kiedy próbuję je zapisać za pomocą twojego kodu - mówi - wymiary tablicy muszą zgadzać się z wyjątkiem d_0 – user2095624

+0

Zbierz wszystkie wartości 'R2' i' phase' w dwuwymiarowej tablicy. Następnie wywołaj 'np.savetxt' * raz * dla całej tablicy 2D. – unutbu

+0

tablica ([[0,62367947] [0,95427859] [0,97984112] [0,7025228] [0,86436385] [0,71010739] [0,98748138] [0,75198057]]) tablica ([ [-1, 1., -1.], [-1., 1., 1.], [1., 1., 1.], [1., -1., 1.] , [-1., -1., -1.], [1., 1., -1.], [1., -1., -1.], [-1., - 1., 1.]]) Zrobiłem je 2D tablice. Nadal mam ten sam komunikat o błędzie. pls mają wygląd. – user2095624