36

numpy float配列の内容を、符号付き16ビット整数として生のバイナリファイルに保存したいと思います。ndarray.tofileを使用してこれを達成しようとしましたが、正しいフォーマット文字列を理解できません。フォーマット文字列をどのように選択しても、ファイルはダブルフォーマットで保存されているようです。どうすればよいですか?ありがとう。

4

3 に答える 3

66

これを行う最も簡単な方法は、最初に配列をint16に変換することだと思います。

array.astype('int16').tofile(filename)
于 2012-05-10T14:21:16.743 に答える
8

structモジュールを見て、次の例を試してください。

import struct
import numpy

f=open("myfile","wb")
mydata=numpy.random.random(10)
print(mydata)
myfmt='f'*len(mydata)
#  You can use 'd' for double and < or > to force endinness
bin=struct.pack(myfmt,*mydata)
print(bin)
f.write(bin)
f.close()
于 2012-05-10T17:18:45.423 に答える
-3

名前と配列の辞書をMatlabスタイルのファイルに保存できるscipy.io.savematを使用できます。

import scipy.io as sio
sio.savemat(filename, pydict)

ここで、pydictは= {'name1':np.array1、'name2':np.array2、...}のようになります。

dictをロードするには、次のものが必要です。

pydict = sio.loadmat(filename)
于 2018-01-16T13:15:54.083 に答える