2010-05-17 4 views

Répondre

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

Ooops! beaucoup mieux! – joaquin

5

vous pouvez Pickle votre matrice:

>> 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 réponse est beaucoup mieux que cela: numpy objets ont une méthode matrices de directe pour les décaper.

Dans tous les cas, tenez compte du fait que la bibliothèque de pickle est un outil général pour enregistrer des objets python, y compris des classes.

+1

En outre, les méthodes intégrées numpy sont beaucoup, beaucoup plus rapides que d'utiliser pickle (ou même cPickle). Je l'ai trouvé personnellement il y a quelque temps. La différence de vitesse était très importante pour ce que je faisais. –

+0

@Justin: Intéressant. Sont-ils compatibles pickle de bibliothèque et pickle numpy? – joaquin

+0

Je ne sais pas avec certitude. Je pense que la raison en est que les méthodes numpy sont faites pour stocker plus efficacement les tableaux, d'où vient la plus grande partie de la vitesse. Je dis cela parce que, d'après mon expérience, les tailles des fichiers respectifs pour les méthodes de pickle et de numpy sont beaucoup plus petites pour ce dernier. Il pourrait y avoir d'autres raisons, mais cela me suffit. –