16. NumPyでベクトル・行列計算

NumPyでのファイル操作(テキスト・CSVファイルの読み込み・書き込み)

更新日:

NumPyによるndarrayへのファイル読み込み、ファイル書き込み方法はいくつかあります。
 

著書紹介(清水 義孝)

好評発売中!!

ファイルの書き込み/読み込み(テキスト、csv形式)

csvを含むテキスト形式でのファイルの書き込みはsavetxt、データの読み込みはloadtxtを利用します。記述方法は次のようになります。

テキスト形式でのファイルの書き込み

numpy.savetxt('ファイル名', ndarray配列 [,delimiter = '区切り文字' ])

 
テキスト形式でのファイルの読み込み

numpy.loadtxt('ファイル名', ndarray配列[,delimiter = '区切り文字' ])

 
引数の'ファイル名'には、テキストファイルの場合、'ファイル名.txt'として、csvファイルの場合、'ファイル名.csv'とします。また引数のdelimiterでは、各要素間の区切り文字を指定します。指定は任意です。
 

例として、配列arrに1~6までの数値を格納し、savetxtでファイルに書き込み、その内容をloadtxtで読み込み、再度、配列arrの内容を表示してみましょう。

In [5]: arr=np.arange(1, 7)
...: np.savetxt('mytextarray.txt',arr,delimiter=',')
...: arr=np.loadtxt('mytextarray.txt',delimiter=',')
...: arr
Out[5]: array([[ 1., 2., 3.],
                      [ 4., 5., 6.]])

 
 

著書紹介(清水 義孝)

好評発売中!!

ファイルの書き込み/読み込み(バイナリ形式)

一方で、バイナリ形式(2進数などテキスト形式(文字データ)以外のデータ形式)でのファイルの書き込みはsave、データの読み込みはloadを利用します。またファイルの拡張子はnpyである必要があります。

次のように記述します。

バイナリ形式でのファイル書き込み

numpy.save('ファイル名', ndarray配列)

バイナリ形式でのファイル読み込み

numpy.load('ファイル名')

 

例として、ndarrayの配列arrを作成し、saveにてファイルに書き込み、配列arrの内容を変更した後に、loadで書き込んだデータを読み込み、再度配列arrに格納してみましょう。そして、配列arrに、先ほど書き込んだデータが正しく読み込まれているかを確認しましょう。

 

まずは配列arrに0~4までの数値を格納します。

In [1]: arr = np.arange(5)
...:
Out[1]: array([0, 1, 2, 3, 4])

 

0~4までの数値を格納した配列arrをファイルmyarray.npyに書き込みます。

In [2]: np.save('myarray.npy',arr)

 

そして配列arrの内容を0~9までの数値に変更します。

In [3]: arr=np.arange(10)
...: arr
Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 

配列arrに対して先ほど書き込んだファイルmyarray.npyの内容を読み込みまず。そして配列arrの内容を確認すると、書き込んだファイルが正しく読み込まれ、0~4までの数値を格納したndarray型の配列が表示されました。

In [4]: np.load('myarray.npy')
Out[4]: array([0, 1, 2, 3, 4])

 

 
 
著書の紹介です。

 

-16. NumPyでベクトル・行列計算

Copyright© AI-interのPython3入門 , 2019 All Rights Reserved.