Saving and loading a Numpy Matrix in python Saving and loading a Numpy Matrix in python numpy numpy

Saving and loading a Numpy Matrix in python


>>> 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")


you can pickle your matrix:

 >> 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 answer is much better than this: numpy matrixes objects have a direct method to pickle them.

In any case take into account that the pickle library is a general tool for saving python objects including classes.


You can obviously try numpy.save() and numpy.load() being quite efficient and fast as follows:

import numpy as npdef 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)