February 2024
Intermediate to advanced
576 pages
9h 17m
Japanese
多くの場合、データは同じ型を持つ値の配列で十分に表現できますが、そうではない場合もあります。この章では、NumPyの構造化配列(structured arrays)とレコード配列(record arrays)を使用して、複合型の異種データを効率的に格納する方法を示します。ここに示すパターンは単純な操作には有益ですが、このようなシナリオに対しては「Ⅲ部 pandasによるデータ操作」で取り上げるpandasのDataFrameの方が適しています。
In [1]: import numpy as np
人に対するいくつかのカテゴリのデータ(例えば、名前、年齢、体重など)があるとしましょう。これらの値をPythonプログラムで使用するために保持したいとします。そのための方法として、これらをそれぞれ別の配列に格納する方法が考えられます。
In [2]: name = ['Alice', 'Bob', 'Cathy', 'Doug']
age = [25, 45, 37, 19]
weight = [55.0, 85.5, 68.0, 61.5]
しかし、これはあまり賢い方法ではありません。3つの配列がそれぞれ関連していることを把握する方法がないからです。NumPyの構造化配列を使用すると、1つの構造体を使用してこれらのデータをすべて格納できるので、その方が自然です。
以前、次のようにして単純な配列を作成したことを思い出してください。
In [3]: x = np.zeros(4, dtype=int)
複合データ型を指定すれば、同じ方法で構造化配列を作成できます。
In [4]: # 配列を構造化するために複合データ型を使用する ...