レッスン3 / 4問目

『ブールインデックス参照』

このレッスンではブールインデックス参照について学習していきましょう。
ブールインデックス参照とは真偽値のリストによって値を参照する方法で、渡すリストのTrueの個所に該当する値を参照することができます。少しイメージがしづらいと思いますので早速ですが例題を見ていきましょう。

まずは5 × 4の配列を生成します。

  1. arr = np.arange(20).reshape(5, 4)
  2. print(arr)
[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15] [16 17 18 19]]

ブールインデックス参照を用いて1行目、2行目、5行目を抽出します(リストのTrueに該当する行が参照されます)。

  1. arr2 = arr[[True, True, False, False, True]]
  2. print(arr2)
[[ 0 1 2 3] [ 4 5 6 7] [16 17 18 19]] # 1行目、2行目、5行目を抽出

※ 真偽値リストの要素数と配列の行数は一致している必要があります。

上記のように使い方としては非常に簡単ですが、このブールインデックス参照はどのような場面で使うのかと疑問を持った方もいるかと思います。これは後のレッスンで詳しく学習しますが、ndarrayに対して演算を行うと全ての要素に演算を行った結果が配列で返ってきます。比較演算を行った場合は以下のように真偽値の配列が返ってきます。

  1. arr = np.array([0, 1, 2, 3, 4, 5]) # 配列を生成
  2. print(arr > 2) # 配列に対して比較演算を行う
[False, False, False, True, True, True]

上記の例では2未満はFalse, 2より大きい場合Trueを格納した配列を返しています。

ここでピンときた方もいるかと思いますが、この真偽値を利用してブールインデックス参照を行うことができます。

ここでは簡単な説明に留まりますが、以降のレッスンでも登場するのでしっかりマスターしましょう。

このレッスンは以上となります。

では練習問題にチャレンジしましょう。

Lesson1

ブールインデックス参照を用いて配列arrから以下の行を抽出し出力してください。

[[0 1 2] [6 7 8]]

以下は配列arrの中身です。

[[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]]

Last updated:2019/10/28

[[0 1 2]
 [6 7 8]]
  1. import numpy as np

  2. arr = np.arange(12).reshape(4, 3)


  3. # 指定した配列を抽出し出力してください。

  4. arr2 = arr[[True, False, True, False]]
  5. print(arr2)
main.py
設定
g
n
i
d
a
o
L