Seite 1 von 1

Matrix in Datei schreiben

Verfasst: Montag 6. Juli 2009, 15:42
von redbomberle
Hi zusammen.

ich habe mir eine Matrix erstellt, indem ich aus mehreren Dateien (double-, bzw. float-) Werte eingelesen habe:

Code: Alles auswählen

#dataOne ist 1dim Array
#data ist Matrix
data.append(dataOne) 
Am ende habe ich dann z.B. eine 3dim Matrix.
Schön :)
nur wie kann ich mir die jetzt in eine Datei schreiben?

Code: Alles auswählen

def writeoutFile(data):
    print("test")
    fobj = open("C:/DATA/TestDaten/HA25022009_0065/ausgabe.txt", "w")
    for i in range(len(data)): 
        for j in range(len(data[i])):
            fobj.write (data[i][j]) 
        fobj.write("\n")
    fobj.close()
Das klappt bei mir nicht und ich kann leider in wirklich keinem Tutorial finden, wie ich eine Matrix in eine Datei schreibe. Da finden sich immer nur dieselben einfachen Beispiele für das Schreiben eines Arrays.

Verfasst: Montag 6. Juli 2009, 17:33
von HerrHagen
Wenn du einfach (beinah beliebige) Python-Objekt abspeichern willst, ohne das andere (nicht Python-Programme) darauf zugreifen müssen, bietet sich picklean.

Code: Alles auswählen

import cPickle as pickle

data = [[1,2,3], [4,5,6]]

f = open("test.pkl", "wb")
pickle.dump(data, f)
f.close()
Wenn du mit Matrizen rechnen willst interesiert dich vielleicht noch numpy

MFG HerrHagen

Verfasst: Montag 6. Juli 2009, 18:17
von redbomberle
und wie ist es wenn ich die Datenwerte in ein File schreiben möchte
z.b.: als *.csv Datei, damit ich diese z.B. in Java einlesen kann?

Verfasst: Montag 6. Juli 2009, 19:05
von BlackJack
@redbomberle: Dann solltest Du mal einen Blick in das `csv`-Modul werfen.

Verfasst: Montag 6. Juli 2009, 20:03
von CM
Oder

Code: Alles auswählen

from numpy import *
data = arange(9).reshape((3,3))
savetxt('data1.csv', data)
savetxt('data2.csv', data, delimiter=',', fmt='%d')
# etc. etc.
HTH
Christian

Verfasst: Montag 6. Juli 2009, 21:47
von cofi
Oh Gott, ich seh Sterne :twisted:

Verfasst: Dienstag 7. Juli 2009, 16:53
von CM
Ja, ja - war halt schnell dahingeschrieben. Asche auf mein Haupt ...