2010-05-17 3 views

Antwort

18
>>> import numpy 
>>> mat = numpy.matrix("1 2 3; 4 5 6; 7 8 9") 
>>> mat.dump("my_matrix.dat") 
>>> mat2 = numpy.load("my_matrix.dat") 
+0

Hoppla! viel besser! – joaquin

5

können Sie Ihre Matrix Beize:

>> import numpy 
>> import pickle 
>> b=numpy.matrix('1 2; 3 4') 
>> f=open('test','w') 
>> pickle.dump(b, f) 
>> f.close() 

>> f2 = open('test', 'r') 
>> s = pickle.load(f2) 
>> f2.close() 
>> s 

    matrix([[1, 2], 
      [3, 4]]) 

Tamas Antwort als diese viel besser ist: numpy Matrizes Objekte eine direkte Methode, um sie zu beizen haben.

Beachten Sie in jedem Fall, dass die Pickel-Bibliothek ein allgemeines Werkzeug zum Speichern von Python-Objekten einschließlich Klassen ist.

+1

Auch die numpy integrierten Methoden sind viel, viel schneller als mit Pickle (oder sogar cPickle). Das habe ich vor einiger Zeit persönlich herausgefunden. Der Geschwindigkeitsunterschied war sehr beträchtlich für das, was ich tat. –

+0

@Justin: Interessant. Sind sie kompatible Bibliotheksbeize und numpige Gurke? – joaquin

+0

Ich weiß es nicht genau. Ich denke, dass der Grund dafür ist, dass die numpy Methoden verwendet werden, um die Arrays effizienter zu speichern, wo die meiste Geschwindigkeit herkommt. Ich sage das, weil meiner Erfahrung nach die Größen der entsprechenden Dateien für Pickles und Numpys Methoden viel kleiner sind. Es mag andere Gründe geben, aber das reicht mir. –