2010-08-05 17 views
6

Wiem, jak używać numpy.savetxt, aby napisać tablicę do pliku. Jak mogę napisać wiele tablic do tego samego pliku?Napisz wiele numpy tablic do pliku

Zasadniczo chcę zrobić matematyki do kolumny liczb, a następnie zastąpić starą kolumnę zmodyfikowanymi liczbami. Czytałem najprostszy sposób, aby to zrobić, całkowicie napisać nowy plik, umieścić zmodyfikowane numery, a po prostu "skopiować i wkleić" inne numery w pliku.

Każda pomoc jest doceniana.

Dzięki!

Odpowiedz

4

Jeśli chcesz zapisać wiele tablic do pliku do późniejszego wykorzystania, zajrzyj do numpy.savez.

Jednak z Twojego opisu wynika, że ​​chcesz coś zrobić z określoną kolumną rozdzielanego pliku tekstowego.

W takim przypadku wystarczy załadować całe urządzenie i operować tylko na kolumnie, której potrzebujesz.

E.g.

import numpy as np 

data = np.loadtxt('test.txt') 

# Multiply the 4th column by 5 
data[:,3] *= 5 

# Do something more complicated to the 2nd column 
data[:,1] = np.cos(data[:,1]) 

# Save the array back to the file 
np.savetxt('test.txt', data) 
3

Odpowiadanie na bardzo stary wpis na własny użytek. Użyłem poniższych do napisania dwóch tablic 1D o takim samym rozmiarze jak CSV.

import numpy as np 

x = [1, 2, 3] 
y = [4, 5, 6] 
zipped = zip(x, y) 
# >>> [(1, 4), (2, 5), (3, 6)] 

# Save the array back to the file 
np.savetxt('z.csv', zipped, fmt='%i,%i') 
+0

To wydaje się dobre, ale nie działa na Python 3. Tutaj obiekt 'IndexError' jest wyrzucane przez NumPy. –

1
import numpy 


list1 = [1, 2, 3, 4] 

list2 = [0.45, 0.98, 0.89, 0.21] 

dat = numpy.array([list1, list2]) 

dat = dat.T 

numpy.savetxt('data.txt', dat, delimiter = ',') 
+5

Witamy w StackOverflow i dzięki za pomoc. Wyjaśnij swoją odpowiedź tylko na kod. – Yunnosch