はじめに #
作成したNumPy配列の要素などを確認する。
環境 #
- NumPy 1.19
配列の属性 #
作成した配列の次元数を確認する場合、 ndim属性を参照する。 また、配列の要素数を確認する場合、 size属性を参照する。 配列の各次元の要素数を確認する場合、 shape属性を参照すると、タプル形式で要素数が返されれる。
>>> import numpy as np
>>> a = np.array([[1,2,3],[4,5,6]]) # 2x3行列
>>> a.ndim # 次元
2
>>> a.size # 要素数
6
>>> a.shape # 各次元の要素数
(2, 3)
要素へのアクセス #
1次元配列の場合 #
1次元配列の要素を取り出す場合、 配列の後ろに[]を付け、取り出したい要素の順番を数値で指定する。 要素を1個だけ取り出すときは、[]内に数値を1個指定する。 ただし、配列の最初の要素は0から始まることに注意。
>>> b = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b[1] # 1番目
1
連続した複数の要素を取り出すときは、2つの数字を:(コロン)でつなぐと、 最初の数字で指定した要素から、2番めの数字で指定した1つ手前の要素までが返される。 2番目の数字を指定しない場合、最初の数字で指定した要素から、最後の要素までが返される。 また、1番目の数字を指定しない場合、最初の要素から、2番目の数字で指定した要素までが返される。
>>> b[1:7] # 1番目から7番目まで
array([1, 2, 3, 4, 5, 6])
>>> b[3:] # 3番目以降
array([3, 4, 5, 6, 7, 8, 9])
>>> b[:3] # 3番目まで
array([0, 1, 2])
複数の要素を一定の間隔(2つ飛ばしなど)で抜き出すときは、 3つの数字を:でつなぐ。1番めの数字は始まりの要素、 2番目の数字は終わりの要素、3番目の数字は要素をいくつ飛ばすかを表す。
>>> b[1:7:2] # 1番目から7番目まで2つ飛ばしで
array([1, 3, 5])
配列の末尾を起点として要素の位置を指定する場合、数値にマイナスを付ける。
>>> b[-2] # 末尾から2番目
8
配列の複数の要素を全て指定して取り出す場合には、 リストで要素の位置を指定する。
>>> b[[0,5,7]] # リストで複数のインデックスを指定
array([0, 5, 7])
2次元配列の場合 #
2次元配列の場合、行の要素と、列の要素をカンマ,で区切って指定する。 カンマを使わない場合、どの行を取り出すかが指定され、列方向の要素は全て返される。 各行・各列の要素の指定方法は、1次元配列の場合と同じである。
>>> c = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
>>> c
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
>>> c[1,1] # (1, 1)要素
6
>>> c[0:2] # 0~1行目
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
>>> c[:, 0:3] # 0~2列目
array([[ 1, 2, 3],
[ 5, 6, 7],
[ 9, 10, 11]])
>>> c[0:2,1:3] # 0~1行目かつ1~2列目
array([[2, 3],
[6, 7]])