Skip to Content
Pythonデータサイエンスハンドブック 第2版 ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習
book

Pythonデータサイエンスハンドブック 第2版 ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

by Jake VanderPlas, 菊池 彰
February 2024
Intermediate to advanced
576 pages
9h 17m
Japanese
O'Reilly Japan, Inc.
Content preview from Pythonデータサイエンスハンドブック 第2版 ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

10章ファンシーインデクス

これまでに、単純なインデクス(例えばarr[0])、スライス(例えばarr[:5])、ブール値マスク(例えばarr[arr > 0])を使用して配列の一部にアクセスし、その内容を変更する方法を見てきました。ここでは、ファンシーインデクスまたはベクトル化インデクスと呼ばれる配列インデクスを紹介します。ファンシーインデクスはすでに紹介した単純なインデクスのようにも見えますが、単一のスカラー値の代わりにインデクスの配列を渡します。これにより、配列の複雑なサブセットへの迅速なアクセスと内容の変更が可能となります。

10.1 ファンシーインデクスの探求

ファンシーインデクスの概念は単純です。インデクスの配列を渡して、複数の配列要素に同時にアクセスします。例えば、次の配列で考えてみましょう。

In [1]: import numpy as np
        rng = np.random.default_rng(seed=1701)

        x = rng.integers(100, size=10)
        print(x)
Out[1]: [90 40  9 30 80 67 39 15 33 79]

この中の3つの要素にアクセスしたい場合、おそらく次の方法を使います。

In [2]: [x[3], x[7], x[2]]
Out[2]: [30, 15, 9]

インデクスのリストまたは配列を渡しても、同じ結果が得られます。

In [3]: ind = [3, 7, 4]
        x[ind]
Out[3]: array([30, 15, 80])

ファンシーインデクスを使用すると、その結果の形状は元の配列の形状ではなく、インデクス配列の形状となります。

In [4]: ind ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

Jake VanderPlas, 菊池 彰
推薦システム実践入門 ―仕事で使える導入ガイド

推薦システム実践入門 ―仕事で使える導入ガイド

風間 正弘, 飯塚 洸二郎, 松村 優也
プロダクトマネージャーのしごと 第2版 ―1日目から使える実践ガイド

プロダクトマネージャーのしごと 第2版 ―1日目から使える実践ガイド

Matt LeMay, 永瀬 美穂, 吉羽 龍太郎, 原田 騎郎, 高橋 一貴

Publisher Resources

ISBN: 9784814400638Publisher Website