はじめに
この実験では、numpy.genfromtxt
関数を使ってデータをインポートする方法を学びます。この関数を使うと、様々なソースからの表形式のデータを読み取り、NumPy 配列に変換することができます。入力の定義、行を列に分割、列の選択、データ型の設定、および変換の微調整に関するさまざまなオプションを検討します。
注:
03-io-genfromtxt.ipynb
でコードを記述できます。手順では一部の出力操作を省略していますので、必要に応じて出力を表示できます。
This tutorial is from open-source community. Access the source code
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、numpy.genfromtxt
関数を使ってデータをインポートする方法を学びます。この関数を使うと、様々なソースからの表形式のデータを読み取り、NumPy 配列に変換することができます。入力の定義、行を列に分割、列の選択、データ型の設定、および変換の微調整に関するさまざまなオプションを検討します。
注:
03-io-genfromtxt.ipynb
でコードを記述できます。手順では一部の出力操作を省略していますので、必要に応じて出力を表示できます。
まず、必要なライブラリをインポートしましょう。配列を作成するために numpy
ライブラリと、ファイルのようなオブジェクトを作成するために io
ライブラリの io
モジュールを使用します。
import numpy as np
from io import StringIO
numpy.genfromtxt
関数は、データのソースを必須引数として必要とします。それは文字列、文字列のリスト、ジェネレータ、または read
メソッドを持つオープンされたファイルのようなオブジェクトです。
data = "1, 2, 3\n4, 5, 6"
delimiter
引数は、行をどのように列に分割するかを定義するために使用されます。デフォルトでは、numpy.genfromtxt
は delimiter=None
を想定しており、これは行が空白文字(タブを含む)に沿って分割されることを意味します。
np.genfromtxt(StringIO(data), delimiter=",")
usecols
引数は、インポートする列を選択するために使用されます。インポートする列のインデックスに対応する単一の整数または整数のシーケンスを受け付けます。
np.genfromtxt(StringIO(data), usecols=(0, -1))
dtype
引数は、文字列を他の型に変換する方法を制御するために使用されます。それは単一の型、型のシーケンス、カンマ区切りの文字列、辞書、タプルのシーケンス、既存の numpy.dtype
オブジェクト、またはデータ自体から型を決定するための None
です。
np.genfromtxt(StringIO(data), dtype=float)
converters
引数を使うと、より複雑な変換を処理するための変換関数を定義できます。列インデックスまたは列名をキーとし、変換関数を値とする辞書を受け付けます。
convertfunc = lambda x: float(x.strip(b"%"))/100.
np.genfromtxt(StringIO(data), converters={1: convertfunc})
missing_values
引数と filling_values
引数は、欠損データを処理するために使用されます。missing_values
引数は欠損データを認識するために使用され、filling_values
引数は欠損エントリに対する値を提供するために使用されます。
np.genfromtxt(StringIO(data), missing_values="N/A", filling_values=0)
numpy.lib.npyio
モジュールは、numpy.genfromtxt
から派生したショートカット関数を提供します。これらの関数は異なるデフォルト値を持ち、標準的なNumPy配列またはマスク付き配列を返します。
from numpy.lib.npyio import recfromtxt
recfromtxt(StringIO(data), delimiter=",")
この実験では、numpy.genfromtxt
関数を使ってデータをインポートする方法を学びました。入力を定義し、行を列に分割し、列を選択し、データ型を設定し、変換を微調整するためのさまざまなオプションを検討しました。また、numpy.lib.npyio
モジュールが提供するショートカット関数についても学びました。