2017-02-10 2 views
1

두 개의 다른 데이터 유형 uint8과 int32를 파일에 두 개 덤프하려고합니다.numpy를 사용하여 다른 데이터 유형을 파일에 저장하는 중 오류가 발생했습니다.

img.tofile(PATH + "add_info_to_img.dat") 

# append array_with_info to the beginning of the file 
f_handle = open(PATH + "add_info_to_img.dat", 'a') 
np.savetxt(f_handle, array_with_info) 
f_handle.close() 

데이터 정보 :

img.shape 
Out[4]: (921600,) 
array_with_info.shape 
Out[5]: (5,) 
array_with_info.dtype 
Out[6]: dtype('int32') 
img.dtype 
Out[7]: dtype('uint8') 

어떤 제안 내가 파일을 작성하는 다음 코드를 사용하고

File "C:\ENV\p34\lib\site-packages\numpy\lib\npyio.py", line 1162, in savetxt 
    % (str(X.dtype), format)) 
TypeError: Mismatch between array dtype ('int32') and format specifier ('%.18e') 

: 나는 다음과 같은 오류는 무엇입니까?

+0

이것은 아마도 사용자 데이터와 관련이 있습니다. 나는 같은 유형의 더미 데이터로 이것을 재현 할 수 없다. 그래서 우리는 아마도 데이터를 알아야 할 것입니다. – languitar

답변

0

파일은 바이너리 모드로 열려 있어야하며 형식을 지정해야합니다.

간단한 exemple :

a=arange(3) 
b=arange(3.) 

with open('try.txt','wb') as f: 
    savetxt(f,a,'%d') 
    savetxt(f,b) 

"""  
0 
1 
2 
0.000000000000000000e+00 
1.000000000000000000e+00 
2.000000000000000000e+00 
""" 

그러나 어려울 것이다 거꾸로 그것을 읽었다. 아마도 가장 좋은 방법은 여기에 사용하는 것입니다. np.savez('try2',a,b)