2010-08-05 2 views
6

Ich kann numpy.savetxt verwenden, um ein Array in eine Datei zu schreiben. Wie kann ich mehrere Arrays in dieselbe Datei schreiben?Schreiben Sie mehrere numpy Arrays in die Datei

Im Wesentlichen möchte ich Mathe zu einer Spalte von Zahlen machen, und dann ersetzen Sie die alte Spalte mit den geänderten Zahlen. Ich lese den einfachsten Weg, dies zu tun, ist, eine neue Datei vollständig zu schreiben, die modifizierten Zahlen einzugeben und einfach die anderen Zahlen in die Datei zu kopieren und einzufügen.

Jede Hilfe wird geschätzt.

Danke!

Antwort

4

Wenn Sie mehrere Arrays zur späteren Verwendung in eine Datei schreiben möchten, suchen Sie unter numpy.savez nach.

Aus Ihrer Beschreibung klingt es jedoch so, als ob Sie etwas mit einer bestimmten Spalte einer Textdatei mit Trennzeichen machen möchten.

In diesem Fall, laden Sie einfach das gesamte Ding in und arbeiten Sie nur auf die Spalte, die Sie benötigen.

z.

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

Ich beantworte einen sehr alten Beitrag für meinen eigenen Gebrauch. Ich habe Folgendes verwendet, um zwei 1D-Arrays der gleichen Größe wie CSV zu schreiben.

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

Dies scheint nett, aber 3. Hier auf Python nicht funktioniert, wird ein 'IndexError' von NumPy geworfen. –

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

Willkommen bei StackOverflow und vielen Dank für Ihre Hilfe. Bitte erläutern Sie Ihre Nur-Code-Antwort. – Yunnosch