Quelqu'un peut-il me donner un exemple de la manière de sauvegarder une matrice 2-D dans un fichier et de le recharger pour une utilisation ultérieure? P>
3 Réponses :
Vous pouvez corner 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]])
De plus, les méthodes intégrées engendrées sont beaucoup plus rapides que d'utiliser le cornichon (ou même CPICKLE). J'ai trouvé cela personnellement il y a quelque temps. La différence de vitesse était très substantielle pour ce que je faisais.
@Justin: intéressant. Sont-ils un cornichon de bibliothèque compatible et un cornichon numpopique?
Je ne sais pas avec certitude. Je pense que la raison est que les méthodes numpues sont apportées à stocker plus efficacement les tableaux, ce qui est de la majeure partie de la vitesse. Je dis cela parce que, dans mon expérience, les tailles des fichiers respectifs des méthodes de cornichon et de numpopie sont beaucoup plus petites pour ce dernier. Il pourrait y avoir d'autres raisons, mais cela me suffit.
Selon l'aide numpue sur ndarray.dump code>, ils doivent être compatibles.
Merci je vais expérimenter avec ça
>>> 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")
Vous pouvez évidemment essayer numpy.save () code> et numpy.load () code> être assez efficace et rapide comme suit: import numpy as np
def save_matrices(A,B,C, file_name):
with open(file_name, 'wb') as f:
np.save(f, A)
np.save(f, B)
np.save(f, C)
def load_matrices(file_name):
with open(file_name, 'rb') as f:
A = np.load(f)
B = np.load(f)
C = np.load(f)
return (A,B,C)
if __name__ == "__main__":
# generate random matrices in [0,1):
a, b = 0, 1
A = (b - a) * np.random.random_sample((3, 3)) + a
B = (b - a) * np.random.random_sample((3, 3)) + a
C = (b - a) * np.random.random_sample((3, 3)) + a
my_file = 'test.npy'
save_matrices(A,B,C, my_file)
loaded_A, loaded_B, loaded_C = load_matrices(my_file)
Duplicaté possible: Stackoverflow.com/Questtions/1706665/... < / a>.