亀の歩み

備忘録として

numpy arrayの保存

numpy配列をそのままファイルに保存できることに気付きました。
リストと同じようにcsvモジュールで保存していたのは何だったのでしょうか……


Numpy.savetxtでcsv出力をする方法 | memotoxin
という訳で、上のページに書いているのを参考にしてnp.savetxtで配列を保存してみます。

import numpy as np

x = np.ones((2, 3, 4))
np.savetxt("save.txt", x, fmt="%.0f", delimiter=",")

実行すると、float argument required, not numpy.ndarrayとエラーが出ました。

python - How to write a multidimensional array to a text file? - Stack Overflow
どうやら3次元以上の配列だと、2次元配列に変換しないとnp.savetxtで保存できないらしい。
そこで、もう1つの保存する関数であるnp.saveを使うことにしました。

np.save("save.npy", x)

今度は正常にファイルが保存できました。
.npy以外の拡張子を付けると、自動で.npyがファイル名の最後に付くようです。


保存したデータを読み込みたいときは、

y = np.load("save.npy")

で読み込むことができます。

ちなみにnp.savetxtで保存した配列は、np.loadtxtで読み込むことができるが、delimiterを正しく設定する必要があります。