付録ANumPy:応用編

 この付録では、配列計算ライブラリNumPyのさらに深い部分を見ていきます。具体的には、ndarray型の詳細な内部構造や、高度な配列操作やアルゴリズムなどです。

 この付録には多岐にわたるトピックが含まれているため、頭から順に読んでいく必要はありません。なお、この付録の多くの例では、numpy.randomモジュールのデフォルトの乱数生成器を使ってランダムなデータを生成します。

In [11]: rng = np.random.default_rng(seed=12345)

A.1 ndarrayオブジェクトの内部構造

 NumPyのndarrayは、同種のデータ(連続的なデータまたはストライドデータ*1)の塊を多次元配列オブジェクトとして解釈する手段を与えてくれます。データの解釈方法はデータ型、つまりdtypeによって決まります。格納されているデータはdtypeの示す型、例えば浮動小数や整数、真偽値などの型として扱われることになります。

*1 訳注:ストライドデータとは、一連の値が隣接したメモリアドレスに格納されておらず、特定の間隔を空けて格納されているデータを意味します。ストライド(stride)とは「歩幅」の意味で、一連の値を読むためにある「歩幅」でジャンプしながらアクセスする必要があるため、このように呼びます。例えば、8バイトの構造体が配列になっており、各要素の1バイト目にアクセスして回る場合は、1バイト目、9バイト目、17バイト目、……という形でストライドデータとしてアクセスすることになります。ndarrayがストライドデータとしてどのように扱われているかは、この付録の後の方で見ていきます。

 ndarrayの柔軟性を高くしている点の1つは、配列オブジェクトがすべて、データの塊の ...

Get Pythonによるデータ分析入門 第3版 ―pandas、NumPy、Jupyterを使ったデータ処理 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.