Tweet 共有

最終更新日:2020年8月19日

Pythonで機械学習モデルを開発するには、NumPy配列の使用が必要になることがよくあります。

NumPy 配列は Python でデータを扱うための効率的なデータ構造で、scikit-learn ライブラリのような機械学習モデルや Keras ライブラリのような深層学習モデルは NumPy 配列のフォーマットで入力データを期待し、NumPy 配列のフォーマットで予測を行っています。

そのため、NumPy 配列をファイルに保存する必要があることはよくあります。

たとえば、スケーリングなどの変換を使用してデータを準備し、後で使用するためにファイルに保存する必要がある場合があります。

このチュートリアルでは、NumPy の配列をファイルに保存する方法を発見します。

After completing this tutorial, you will know:

  • How to save NumPy arrays to CSV formated files.
  • How to save NumPy arrays to NPY formated files.
  • How to save NumPy arrays to compressed NPZ formatted files. NNMPGY 配列を圧縮したファイルを保存する方法について学びます。

私の新しい本「Machine Learning Mastery With Python」であなたのプロジェクトを始めましょう!ステップバイステップのチュートリアルとすべての例の Python ソースコードファイルが含まれています。

How to Save a NumPy Array to File for Machine Learning

How to Save a NumPy Array to File for Machine Learning
Photo by Chris Combe, some rights reserved.

チュートリアルの概要

このチュートリアルは3つのパートに分かれています:

  1. Save NumPy Array to .CSV ファイル(ASCII)
  2. NumPy 配列を .NPY ファイル(バイナリ)に保存
  3. NumPy 配列を .NPZ ファイル(圧縮)

Save NumPy Array to .NPY File (Binary)(NumPy配列は.NPZファイルに保存する)

Save NumPy Array to .CSV File (ASCII) (NPYファイルに保存するCSV File (ASCII)

数値データをファイルに保存するための最も一般的なファイル形式は、カンマ区切り変数形式、略してCSVです。

学習データとモデルへの入力データがCSVファイルに保存されていることがほとんどでしょう。

モデルからの予測値など、データをCSVファイルに保存するのは便利です。

あなたはsavetxt()関数を使用して、NumPyの配列をCSVファイルに保存することができます。 この関数はファイル名と配列を引数にとり、配列をCSV形式で保存します。

また、区切り文字を指定しなければなりません。

1.1 NumPyの配列をCSVファイルに保存する例

以下の例は、単一のNumPy配列をCSV形式に保存する方法を示しています。

1
2
3
4
5
6
7

#保存する numpy array as csv file
from numpy import asarray
from numpy import savetxt
# define data
data = asarray(])
# save to csv file
savetxt(‘data.DATA_SERVICE_DATA_DATA)
。csv’, data, delimiter=’,’)

この例を実行すると、NumPy配列を定義してファイル ‘data.csv’ に保存します。

配列には10列で一行のデータが入っています。 このデータが1行のデータとしてCSVファイルに保存されることを期待します。

例を実行した後、’data.csv’の中身を検査することができます。

以下のように表示されるはずです:

1
0.0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00,7.00000000000000e+00,8.00000000000000e+00,9.00000000000000e+00

データが正しく1行として保存され、配列内の浮動小数点数が完全な精度で保存されたことが確認できます。

1.2 CSVファイルからNumPy配列を読み込む例

このデータを後でNumPy配列として読み込むには、loadtext()関数を用いてファイル名と同じカンマ区切りで指定します。

完全な例を以下に挙げます。

1
2
3
4
5
6

# load numpy array from csv file
from numpy import loadtxt
# load array
data = loadtxt(‘data.Data.csv’, delimiter=’,’)
# print the array
print(data)

例を実行すると、CSVファイルからデータをロードし、前の例で定義した10列で一行と一致して内容を表示します。

1

Save NumPy Array to .Numpyの配列は、次のようになります。NPY ファイル (バイナリ)

NumPy の配列に多くのデータがあり、効率的に保存したいが、別の Python プログラムで使用する必要があるだけのことがあります。

そのため、保存と読み込みの両方が効率的なネイティブ バイナリ形式に NumPy 配列を保存することができます。

これは、save() NumPy関数を使用して、ファイル名と保存する配列を指定することで実現できます。

2.1 NumPy配列をNPYファイルに保存する例

以下の例は、2次元NumPy配列を定義して、それを .npy ファイルに保存しています。

1
2
3
4
5
6
7

#numpyを保存する array as npy file
from numpy import asarray
from numpy import save
# define data
data = asarray(])
# save to npy file
save(‘data.Npy.Data’)
# define data
data = asarray(])
# save to npy file

サンプルを実行すると、ディレクトリ内に「data.npy」という名前で新しいファイルが作成されます。

このファイルはバイナリ形式なので、テキストエディタで直接内容を調べることはできません。

2.2 NPYファイルからNumPy配列をロードする例

このファイルを後でload()関数を使用してNumPy配列としてロードすることが可能です。

完全な例を以下に挙げます。

1
2
3
4
5
6

# load numpy array from npy file
from numpy import load
# load array
data = load(‘data.DATA.DAT)

# npy array from npy file # load array from npy file

# load array from npy file

# print the array
print(data)

この例を実行するとファイルをロードして内容を表示し、正しくロードできたことと内容が同じ2次元形式で期待通りになることを確認することができる。

1
]

Save NumPy Array to .NumpyArray(SaveNumPyArrayを.NumpyArrayに保存する)[4][4][4][4][5]。NPZ File (compressed)

複数の実験にわたって再利用する必要があるモデリング用のデータを準備することがありますが、データが大きいです。

これは、テキスト(整数)のコーパスまたは再スケーリングされた画像データ(ピクセル)のコレクションのように、前処理された NumPy Array であるかも知れません。

これにより、ギガバイトのデータを数百メガバイトに減らすことができ、長いアルゴリズム実行のためにクラウドコンピューティングの他のサーバーに簡単に送信できます。.npz ファイル形式はこの場合に適切で、ネイティブの NumPy ファイル形式の圧縮バージョンをサポートします。

Savez_compressed() NumPy関数は、複数のNumPy配列を単一の圧縮された.npzファイルに保存することができます。

3.1 NumPy配列をNPZファイルに保存する例

この関数を使って単一のNumPy配列を圧縮ファイルに保存できます。

以下にその全例を記載します。

1
2
3
4
5
6
7

# save numpy array as npz file
from numpy import asarray
from numpy import savez_compressed
# define data
data = asarray(])
# save to npy file
savez_compressed(‘data.DATA_CMPRESSED’)

# save to npy file

savez_compressed(‘data.DATA_CMPRED’)

この例を実行すると、配列が定義され、圧縮されたnumpy形式のファイルに保存され、名前は ‘data.npz’ です。

.npy 形式と同じくファイル形式がバイナリなので保存ファイルの内容をテキスト エディタで確認することはできません。

3.2 NPZファイルからNumPyの配列を読み込む例

このファイルを後で前のセクションと同じload()関数を使って読み込むことができます。

この場合、savez_compressed()関数が複数の配列の1ファイルへの保存をサポートしています。

ロードされた配列は、最初の配列のための ‘arr_0’, 2 番目の配列のための ‘arr_1’, などの名前を持つ dict で load() 関数から返されます。

1
2
3
4
5
6
7
8

# load numpy array from npz file
from numpy import load
# load dict of arays
dict_data = load(‘data.DATA_DATAIN”)
# load numpy array from npz file
>
# extract the first array
data = dict_data
# print the array
print(data)

Running the example loaded the compressed numpy file that contains a dictionary of array.LDO, Dict_data = load(‘data.npz’)

配列の辞書を含む圧縮されたnumpyファイルをロードする。 そして、保存した最初の配列を取り出し(1つしか保存していません)、内容を表示して、配列の値と形状が最初に保存したものと一致することを確認します。

1
]

Further Reading

このセクションでは、さらに深く知りたい場合に、このトピックに関するより多くのリソースを提供します。

投稿

  • Pythonで機械学習データを読み込む方法
  • PythonのNumPy配列への優しい入門
  • 機械学習のためにNumPy配列をインデックス、スライス、リシェイプする方法

API

  • numpy.NumPyを使う方法
  • Pythonで機械学習をする方法Pythonで機械学習をする方法Pythonで機械学習データを読み込む方法

  • numpy.save API
  • numpy.savez API
  • numpy.savez_compressed API
  • numpy.load API
  • numpy.loadtxt API

まとめ

このチュートリアルで、Numpyの配列をファイルに保存する方法を発見したことでしょう。

具体的には、次のことを学びました:

  • CSV形式のファイルにNumPyの配列を保存する方法。
  • NPY形式のファイルにNumPyの配列を保存する方法。
  • NumPyの配列を圧縮されたNPZ形式のファイルに保存する方法。

何か質問はありますか?
下のコメントで質問してください、私は答えるために最善を尽くします。

Discover Fast Machine Learning in Python!

Master Machine Learning With Python

Develop Your Own Models in Minutes

…。
Machine Learning Mastery With Python

Covers self-study tutorials and end-to-end projects like:
Loading data, visualization, modeling, tuning, and much more..

Finally Bring Machine Learning To
Your Own Projects

Skip the Academics.Pythonは、機械学習のためのチュートリアルを提供します。 結果だけを出す。

中身を見る

Tweet Share Share

コメントを残す

メールアドレスが公開されることはありません。