みなさんこんにちは!みやしんです。
今回は.npyや.npzの拡張子を持ったファイルの保存方法や開き方をご紹介します!
.npy, .npzファイルとは?
Numpy配列のデータをNumpy独自のバイナリーファイル(.npy, .npz)で保存したものです。
Numpy形式のまま保存されますので、データ型(dtype)や形状(shape)などの情報も一緒に保存できます。csvに保存するとそういった情報はなくなってしまいますので、読み込んでpythonでデータ処理をしたい場合は.npyや.npz形式で保存しておくと楽です。また、csvファイルよりも容量も少なく済むメリットもあります。
基本的にはNumpyでのみ使用可能です。csvのように他のアプリケーションで開いて確認したりすることはできません。
npyは1つの配列、npzは複数の配列を扱うことができます。(Numpy独自のZIPファイルで保存)
.npyファイルに保存 numpy.save()、読み込み numpy.load()
numpy.save()を使って配列を.npyファイルに保存することが出来ます。
また、.npyファイルを読み込むにはnumpy.load()を使います。
import numpy as np
# 配列xをnp.arrayで定義。
x = np.array([[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12]])
# 配列xを.npyファイル形式で保存
# np.save('ファイル名', 配列)
np.save('numpy_npy', x)
# 保存したnpyファイルを読み込む
y = np.load('numpy_npy.npy')
print(y)
実行すると配列が表示されます。

.npyファイルも作られています。

.npzファイルに保存 numpy.savez()、読み込み numpy.load()
続いてはnpzを使っていきます。
保存するときはnumpy.savez()です。saveの後に「z」が付きます。
読み込みは同じでnumpy.load()です。
import numpy as np
# np配列作成。
n1 = np.arange(4) #[0,1,2,3]
n2 = np.arange(10, 15) #[10, 11, 12, 13, 14]
# 絶対パスで保存場所を指定。相対パスでも可
# np.savez('保存先のパス\ファイル名', np配列1, np配列2)
np.savez('C:\\Users\\******\\Desktop\\numpyz\\numpy_npz', n1, n2)
# npzファイルを読み込む
npz = np.load('C:\\Users\\******\\Desktop\\numpyz\\numpy_npz.npz')
# npzファイルに保存されているnp配列を確認
# 保存時に引数に設定した順番に「arr_0」「arr_1」と名前が自動で付けられている
print(npz.files)
print(npz['arr_0'])
print(npz['arr_1'])
実行結果はこちらです。

また、.npzファイルも作られました。

また、np.savez()でndarrayを引数に指定するときにキーワード引数を設定することが出来ます。
import numpy as np
# np配列作成。
n1 = np.arange(4) #[0,1,2,3]
n2 = np.arange(10, 15) #[10, 11, 12, 13, 14]
# 絶対パスで保存場所を指定。相対パスでも可
# np.savez('保存先のパス\ファイル名', キーワード1=np配列1, キーワード2=np配列2)
np.savez('C:\\Users\\*******\\Desktop\\numpyz\\numpy_npz', x=n1, y=n2)
# npzファイルを読み込む
npz = np.load('C:\\Users\\*******\\Desktop\\numpyz\\numpy_npz.npz')
# npzファイルに保存されているnp配列を確認
# キーワードを設定したので「arr_0 → x」「arr_1 → y」となっている
print(npz.files) # ['x', 'y']
print(npz['x']) # [0,1,2,3]
print(npz['y']) # [10, 11, 12, 13, 14]
実行すると下記のようになります。

.npzファイルもしっかり出来ています。

これで無事に.npyファイルと.npzファイルに書き込み/読み込みが出来るようになりました!
python、機械学習、DeepLerningについて勉強をしたい方はUdemyをおススメします。
PythonやAIをもっと勉強したい方🤗

オススメ参考書
もっと詳しく知りたい方におススメ、人気の良書です。
ご紹介するのは「Pythonデータサイエンスハンドブック」。
Jupyter、Numpy、pandas、Matplotlib、scikit-learnを使ったデータ分析や機械学習を学びたい方は必見です。
pythonの基礎的な説明もあり、簡単な演習問題もあるので理解しやすいです。numpyの使い方から解説されており初めてでも理解しやすい構成になっています。解説も丁寧で実装しながら学べるので実践的なnumpyの使い方を習得できます。
Pythonでのデータ処理について学習を進めたい方におススメです。

コメント