2010-05-17 16 views
7

¿Alguien me puede dar un ejemplo de cómo guardar una matriz de 2 d en un archivo y volver a cargarla para usarla más?Guardar y cargar una matriz Numpy en python

+0

Posible duplicado: http://stackoverflow.com/questions/1706665/loading-and-saving-numpy-matrix. – mtrw

Respuesta

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! ¡mucho mejor! – joaquin

5

puede PIckle su matriz:

>> 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 respuesta es mucho mejor que esto: numpy matrices de objetos tienen un método directo para el decapado de ellos.

En cualquier caso, tenga en cuenta que la biblioteca de pickle es una herramienta general para guardar objetos python, incluidas las clases.

+1

Además, los métodos incorporados numpy son mucho, mucho más rápidos que usar pickle (o incluso cPickle). Descubrí esto personalmente hace algún tiempo. La diferencia de velocidad fue muy sustancial para lo que estaba haciendo. –

+0

@Justin: Interesante. ¿Son compatibles pickle biblioteca y numpy pickle? – joaquin

+0

No estoy seguro. Creo que la razón es que los métodos numpy están hechos para almacenar de manera más eficiente las matrices, que es de donde proviene la mayor parte de la velocidad. Digo esto porque, en mi experiencia, los tamaños de los archivos respectivos para los métodos de pickle y numpy son mucho más pequeños para este último. Puede haber otras razones, pero eso es suficiente para mí. –

Cuestiones relacionadas