2010-05-17 5 views

답변

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! 훨씬 낫다! – joaquin

5

당신은 당신의 매트릭스를 피클 수 있습니다

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

타마스의 대답은 이것보다 훨씬 낫다 : NumPy와 객체들을 피클 할 수있는 직접적인 방법이 행렬.

피클 라이브러리는 클래스를 비롯한 파이썬 개체를 저장하기위한 일반적인 도구라는 점을 고려하십시오.

+1

또한 numpy 내장 메서드는 pickle (또는 심지어 cPickle)을 사용하는 것보다 훨씬 빠르고 빠릅니다. 나는 이것을 개인적으로 얼마 전에 발견했다. 속도 차이는 내가하고있는 것에 대해 매우 충만했습니다. –

+0

@ Justin : 흥미 롭습니다. 도서관과 피클이 잘 어울리는가? – joaquin

+0

나는 확실히 모른다. 그 이유는 대부분의 속도가 나오는 배열을 더 효율적으로 저장하기 위해 numpy 메서드가 만들어 졌다고 생각합니다. 내 경험에 의하면 피클 및 numpy의 방법에 대한 각각의 파일의 크기가 후자에 비해 훨씬 작기 때문에 이것을 말합니다. 다른 이유가있을 수 있지만 그게 충분합니다. –

관련 문제