ベクトルの要素を取り出す例をいくつか示します.まずベクトルを準備して,すべての要素を取り出します.
import numpy as np # プログラムの先頭でモジュールを読み込む
# 要素の取り出し
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(a)
[ 1 2 3 4 5 6 7 8 9 10]
インデックスを指定して1つの要素を取り出します.このとき,結果はスカラー(一次元配列)で得られることに注意してください.
print(a[0])
1
取り出したい範囲をインデックスを指定することもできます.
print(a[1:3])
[2 3]
インデックス2から最後まで取り出すには次のように記述します.
print(a[2:])
[ 3 4 5 6 7 8 9 10]
先頭からインデックス2(の手前)まで取り出します.
print(a[:2])
[1 2]
範囲の始点は先頭で,後ろから数えたインデックス2の手前まで取り出します.
print(a[:-2])
[1 2 3 4 5 6 7 8]
:
だけを指定してもすべてを取り出すことができます.
print(a[:])
[ 1 2 3 4 5 6 7 8 9 10]
::
を指定した場合もすべてを取り出すことができます.
print(a[::])
[ 1 2 3 4 5 6 7 8 9 10]
::2
を指定した場合は2個ごとにすべてを取り出すことができます.
print(a[::2])
[1 3 5 7 9]
1::2
を指定した場合はインデックス1から2個ごとにすべてを取り出すことができます.
print(a[1::2])
[ 2 4 6 8 10]
もちろん ::3
により3個ごとにすべてを取り出すことができます.
print(a[::3])
[ 1 4 7 10]
さらに::-1
とすると,逆順に取り出すことができます.なお,この方法は降順ソートを行いたいときにも利用できます.
print(a[::-1])
[10 9 8 7 6 5 4 3 2 1]
行列の要素を取り出すためには,次のように記述すると良いでしょう.まずは3行 x 3列の行列を定義します.
行列の定義
import numpy as np # プログラムの先頭でモジュールを読み込む
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(A)
[[1 2 3] [4 5 6] [7 8 9]]
行と列のインデックスを順に指定して,ひとつの要素を取り出します.
要素の取り出し
print(A[0, 0])
1
インデックス1の行,インデックス2の列を指定して要素をひとつ取り出します.
要素の取り出し
print(A[1, 2])
6
先頭行を取り出します.
行の取り出し
print(A[0])
[1 2 3]
複数の行を取り出します.
複数行の取り出し
print(A[0:2])
[[1 2 3] [4 5 6]]
次のように記述しても全ての行を取り出すことができます.
全ての行の取り出し
print(A[:])
[[1 2 3] [4 5 6] [7 8 9]]
次は先頭列のみを取り出します.この時,「全ての行」の「先頭列」を抽出するように記述していることに注意してください.また,得られた結果は1次元配列になっていることにも注意してください.
先頭列の取り出し
print(A[:, 0])
[1 4 7]
別の列も取り出してみます.
print(A[:, 1])
[2 5 8]
複数の列を取り出すには次のように記述します.
複数列の取り出し
print(A[:, 1:3])
[[2 3] [5 6] [8 9]]
先頭列を除いてインデックス1列目以降を全て取り出します.
先頭列以外の取り出し
print(A[:, 1:])
[[2 3] [5 6] [8 9]]
ある範囲だけを行列で取り出します.
ある範囲の取り出し
print(A[1:, 1:])
[[5 6] [8 9]]