今回は、Numpy 配列の保存方法と読み込み方法 と、Numpy 配列を保存/読み込みする際の 注意事項 を紹介します。実際のケースを見てみましょう。
1. 配列はバイナリ形式で保存されます
np.save と np.load は、ディスク アレイ データの読み取りと書き込みのための 2 つの主要な関数 です。デフォルトでは、配列は拡張子 npy を持つファイルに非圧縮の生バイナリ形式で保存されます
np.save("filename.npy",a) b = np.load("filename.npy")
2 に設定されます。 . テキスト ファイルにアクセスします
np.savetxt と np.loadtxt を使用すると、1 次元と 2 次元の配列のみを読み書きできますnp.savetxt: 配列を特定の区切り文字で区切ってテキストに書き込みます
ファイル内の np.loadtxt: テキスト ファイルを配列に読み込むための特定の区切り文字を指定します
np.savetxt("filename.txt",a) b = numpy.loadtxt("filename.txt", delimiter=',')
3. バイナリ ファイルとして保存します
配列を便利に変換するには、配列の tofile 関数を使用します。データはバイナリ形式でファイルに書き込まれますa.tofile("filename.bin") b = np.fromfile("filename.bin",dtype = **)
このメソッドには、np.save といくつかの違いがあります:
tofile 関数は配列をバイナリ ファイルとしてのみ保存でき、ファイル サフィックス名には固定要件がありません。この保存方法にはデータの読み取りに関する要件があり、np.fromfile で読み取りデータの dtype を手動で指定する必要があります。指定された形式が保存時の形式と一致しない場合、間違ったデータが読み取られます。 tofile 関数は、配列の順序がC 言語 形式であるか、Fortran 言語形式であるかに関係なく、現在のデータの行と列の情報を保存できません。出力には C 言語形式が使用されます。そのため、np.fromfileで読み出すデータは1次元配列となり、reshapeを使って行と列の情報を指定する必要があります。
たとえば、次の例に示すように:
>>> a = np.arange(0,12) >>> a.shape = 3,4 >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a.tofile("a.bin") >>> b = np.fromfile("a.bin", dtype=np.float) # 按照float类型读入数据 >>> b # 读入的数据是错误的 array([ 2.12199579e-314, 6.36598737e-314, 1.06099790e-313, 1.48539705e-313, 1.90979621e-313, 2.33419537e-313]) >>> a.dtype # 查看a的dtype dtype('int32') >>> b = np.fromfile("a.bin", dtype=np.int32) # 按照int32类型读入数据 >>> b # 数据是一维的 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) >>> b.shape = 3, 4 # 按照a的shape修改b的shape >>> b array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
以上がNumpy 配列を保存および読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。