NumPy配列のファイル読み書き

np.savenp.load

np.savenp.load はファイルにndarrayを出力したり、ファイルから入力したりできる。ファイルのフォーマットはバイナリで、ファイル名の拡張子にはよく.npyを使う。 1ファイルにndarrayを1つ保存できる。

ndarr1 = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])

np.save('test.npy', ndarr1)

ndarr2 = np.load('test.npy')

print(ndarr2)
# 出力結果
# [ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1. ]

numpy.save | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy/reference/generated/numpy.save.html

numpy.load | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy/reference/generated/numpy.load.html

np.saveznp.load

np.savez を使うと複数のndarrayを名前付きで、しかも圧縮してファイルに保存できる。保存したファイルを読み込むには上と同じく np.load を使う。 np.load はファイルの保存形式を拡張子で判断しているようで、 np.savez での保存形式の場合は拡張子は .npz を使う。

ndarr1 = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
ndarr2 = np.array([10, 20, 30])

np.savez('test.npz', x=ndarr1, y=ndarr2)

ndarr3 = np.load('test.npz')

print(ndarr3['x'])
# 出力結果
# [ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1. ]

print(ndarr3['y'])
# 出力結果
# [10 20 30]

numpy.savez | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy/reference/generated/numpy.savez.html

numpy.load | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy/reference/generated/numpy.load.html

np.savetxtnp.loadtxt

np.savetxt を使うと2次元配列のCSV、TSVなどのndarrayをテキストファイルに保存できる。保存したファイルを読み込むには np.loadtxt を使う。

区切り文字は名前付き引数delimiterで指定することができ、デフォルトは空白になる。コンマ区切りのCSVであれば delimiter=',' と指定する。タブ区切りのTSVであれば delimiter='\t' と指定する。

ndarr1 = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])

np.savetxt('test.csv', ndarr1, delimiter=',')

ndarr2 = np.loadtxt('test.csv', delimiter=',')

print(ndarr2)
# 出力結果
# [[ 1.  2.  3.]
#  [ 4.  5.  6.]
#  [ 7.  8.  9.]]

このコードを実行した後に test.csv を見ると、以下のようになっている。

$ cat $p/tmp/test.csv
1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00
4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00
7.000000000000000000e+00,8.000000000000000000e+00,9.000000000000000000e+00

numpy.savetxt | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html

numpy.loadtxt | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。