レッスン1 / 4問目

『インデックス参照』

このレッスンでは配列の要素を参照する方法を学習していきます。(本レッスンは前提知識として二次元リストの知識を要します。)

NumPyでは要素を参照するには以下のように「インデックス参照」「スライス」「ブールインデックス参照」「ファンシーインデックス参照」がありますが、このレッスンではインデックス参照について学習していきます。

参照方法 説明
インデックス参照 インデックスによる参照
スライス スライスによる参照
ブールインデックス参照 真偽値のリストによる参照
ファンシーインデックス参照 整数値のリストによる参照

※インデックス参照以外の参照方法は以降のレッスンで解説します。

一次元配列の参照

ではインデックス参照について説明していきます。インデックス参照とはその名の通りインデックスによる参照です。これまでリストで要素を参照してきたのと同じ要領で行うことができます。

まずは0~9の連番を持つ配列を生成します。

  1. arr = np.arange(10)  # 0~9の配列を生成
  2. print(arr)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

この配列の3番目の要素を参照します。

    print(arr[2])  # 3番目の要素を取得
2

配列に続けてインデックスを指定することで要素を取得することができました。

また、末尾から要素を参照する場合はインデックスにマイナスの値を指定します。

  1. print(arr[-1])  # 末尾の要素を取得
9

負数のインデックスを指定したため末尾の9を取得することができました。

また、配列の要素を変更するには以下のように指定したインデックスに値を代入します。

  1. arr[1] = 100  # 2番目の要素に100を代入
  2. print(arr)
[ 0, 100, 2, 3, 4, 5, 6, 7, 8, 9]

配列arrのインデックス1に100を代入することができました。

ここまではリストの参照と同じです。
では次は二次元配列の参照を見ていきましょう。

二次元配列の参照

二次元配列を参照する場合においても要領はリストとほとんど同じです。
まずは二次元配列を生成します。

  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]]

5行4列の配列を生成することができました。
この配列から4を参照する場合は以下のように記述します。

  1. print(arr[1][0])
4

上記のように配列に続けて角括弧を二つ続けて記述しその角括弧内にインデックスを指定することで二次元配列の要素を取得することができます。
この参照方法は二次元リストと同じです。

これをnumpyでは以下のように書くことができます

  1. print(arr[1, 0])
4

上記のように、1つの角括弧内にカンマ区切りでインデックスを指定することができます。少しだけですが短く書くことができますので覚えておきましょう。

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

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

Lesson1

配列arrから「10」を参照して出力してください。

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

[[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14] [15 16 17 18 19]]

Lesson2

配列arrから「9」を参照して出力してください。

Last updated:2019/10/27

10
9
  1. import numpy as np

  2. arr = np.arange(20).reshape(4, 5)

  3. # 配列arrから「10」を参照して出力してください。

  4. print(arr[2, 0])

  5. # 配列arrから「9」を参照して出力してください。

  6. print(arr[1, -1])
main.py
設定
g
n
i
d
a
o
L