NumPy numpy.loadtxt() 関数

Suraj Joshi 2023年1月30日
  1. numpy.loadtxt() の構文
  2. コード例:NumPy txt ファイルから numpy.loadtxt() を用いて txt ファイルを読み込む関数
  3. コード例:numpy.loadtxt() 関数で dtype パラメータを設定して txt ファイルを読み込む
  4. コード例:numpy.loadtxt() 関数で delimiter パラメータを設定して txt ファイルを読み込む
  5. コード例:numpy.loadtxt() 関数で usecols パラメータを設定して txt ファイルを読み込む
  6. コード例:numpy.loadtxt() 関数で unpack パラメータを設定して txt ファイルを読み込む
NumPy numpy.loadtxt() 関数

Python Numpy numpy.loadtxt() 関数はテキストファイルからデータをロードし、単純なテキストファイルに対して高速なアプローチを提供します。

numpy.loadtxt() の構文

numpy.loadtxt(fname,
              dtype= < class 'float' > ,
              comments='#',
              delimiter=None,
              converters=None,
              skiprows=0,
              usecols=None,
              unpack=False,
              ndmin=0,
              encoding='bytes',
              max_rows=None)

パラメータ

fname インポートする txt ファイルのパス
dtype 結果の配列のデータ型
comments コメントの開始を示すために使用される文字または文字のリスト
delimiter ファイル txt の内容を解析する際に使用する区切り文字
converters 列番号を、列文字列を解析して目的の値に変換する関数との対応付けを行う辞書。
skiprows スキップする行
usecols 読み込まれるカラムインデックス
unpack 返された配列を転置し、引数が x, y, z = loadtxt(....) で展開されるようにします。[unpack=True] を用いて展開することができます。
ndim 返される配列の最小次元数
encoding 入力ファイルのデコードに用いられるエンコーディング。
max_rows skiprows 行の後に読み込む最大行数

リターン

ファイル txt から読み込んだ N 次元配列。

コード例:NumPy txt ファイルから numpy.loadtxt() を用いて txt ファイルを読み込む関数

import numpy as np
  
from io import StringIO    
  
f = StringIO("3 6 8 \n12 9 1 \n 2 3 4") 
a = np.loadtxt(f) 

print("The loaded array is:")
  
print(a)

出力:

 The loaded array is:
[[ 3.  6.  8.]
 [12.  9.  1.]
 [ 2.  3.  4.]]

ファイル txt を NumPy 配列にロードします。

ここでは、StringIO はファイルオブジェクトのように機能します。

また、関数 np.loadtxt の引数にファイルパスを指定して、絶対パスと相対パスの両方を指定することもできます。

コード例:numpy.loadtxt() 関数で dtype パラメータを設定して txt ファイルを読み込む

デフォルトでは、txt ファイルから読み込んだ配列の値のデータ型は float です。パラメータ dtype を用いて要素のデータ型を手動で設定することができます。

import numpy as np
  
from io import StringIO    
  
f = StringIO("3 6 8 \n12 9 1 \n 2 3 4") 
a = np.loadtxt(f,dtype="int") 

print("The loaded array is:")
  
print(a)

出力:

The loaded array is:
[[ 3  6  8]
 [12  9  1]
 [ 2  3  4]]

上記のコードは txt ファイルからすべての要素を整数として配列に読み込みます。

コード例:numpy.loadtxt() 関数で delimiter パラメータを設定して txt ファイルを読み込む

デフォルトでは、値を区切るための delimiterwhitespace です。区切り文字は delimiter パラメータを用いて手動で設定することができます。

import numpy as np
  
from io import StringIO    
  
f = StringIO("3, 6, 8 \n12, 9, 1 \n 2, 3, 4") 
a = np.loadtxt(f,dtype="int",delimiter=",") 

print("The loaded array is:")
  
print(a) 

出力:

The loaded array is:
[[ 3  6  8]
 [12  9  1]
 [ 2  3  4]]

txt ファイルの値は , で区切られているので、txt ファイルから配列に読み込んでいる間に , をデリミタとして使用して値を区切らなければなりません。

コード例:numpy.loadtxt() 関数で usecols パラメータを設定して txt ファイルを読み込む

import numpy as np
  
from io import StringIO    
  
f = StringIO("3 6 8 \n12 9 1 \n 2 3 4") 
a = np.loadtxt(f,dtype="int",usecols =(0, 1)) 

print("The loaded array is:")
  
print(a)  

出力:

The loaded array is:
[[ 3  6]
 [12  9]
 [ 2  3]]

usecolstxt ファイルから読み込む列を指定します。

これは txt ファイルから 1 列目と 2 列目のみを配列に読み込みます。

コード例:numpy.loadtxt() 関数で unpack パラメータを設定して txt ファイルを読み込む

import numpy as np
  
from io import StringIO    
  
f = StringIO("3 6 8 \n12 9 1 \n 2 3 4") 
(x,y,z) = np.loadtxt(f,dtype="int",unpack=True) 

print(x)
print(y)
print(z) 

出力:

[ 3 12  2]
[6 9 3]
[8 1 4]

配列を転置し、転置された配列の行を指定された変数に展開します。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn