基本
Aを配列とします.
A[a]でインデックスがaの要素を取り出す.
インデックスは 0から始まるので注意.
A=[1,2,3,4,5]
print(A[0]) #インデックス0は最初の要素を表す
print(A[3]) #インデックスが3の要素は4
#出力
# 1
# 4
負の数は後ろから何番目の要素かを表す.
A=[1,2,3,4,5]
print(A[-1])
print(A[-3])
#5
#3
Aがnumpy配列なら配列を引数に入れる事で要素を複数指定できる.(普通の配列だとエラーがでる)
import numpy as np
A=np.array([1,2,3,4,5,6,7])
print(A[[2,3,6]]) #インデックスが2,3,6の要素を取り出す
print(A[[6,3,1,2]]) #好きな順番で取り出せる
#[3 5 7]
#[7 4 2 3]
スライス
A[a:b] でインデックスが a から b-1 までの要素を取り出す.
このような操作をスライスという.
後ろの数は1つ手前のインデックスまでなので注意.
aを省略すると初めから, bを省略すると最後まで.
A=[1,2,3,4,5,6,7]
print(A[1:4])
print(A[2:])
print(A[:3]) #最初の3つを取り出す
print(A[:]) #両方省略すると全て
#[2, 3, 4]
#[3, 4, 5, 6, 7]
#[1, 2, 3]
#[1, 2, 3, 4, 5, 6, 7]
A[a:b:c]でステップ を指定できる. cずつ飛ばして取り出す
A=[1,2,3,4,5,6,7,8,9,10]
print(A[1:6:2])
print(A[::2])
print(A[5::-1]) #逆向きに取り出す
#[2, 4, 6]
#[1, 3, 5, 7, 9]
#[6, 5, 4, 3, 2, 1]
多次元配列へ応用
A=[[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
print(A[1]) #2行目を取り出す
print(A[2][1]) #3行2列成分を取り出す
#[5, 6, 7, 8]
#10
numpy配列なら A[a,b] などで多次元配列の要素を指定することもできる.
A[a,b]のような指定はnumpy配列でない通常の配列だとエラーが出る.
import numpy as np
A=np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
print(A[2,1]) #3行2列成分を取り出す
print(A[1,:]) #2行目を取り出す
print(A[:,2]) #3列目を取り出す. 取り出したあとは1次元配列になるので注意
#10
#[5 6 7 8]
#[ 3 7 11]
A=np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
print(A[1:,:]) #2行目以降を全て取り出す
print(A[:,:3]) #3列目までを全て取り出す
print(A[:2,:3]) #左上の2×3行列を取り出す
#[[ 5 6 7 8]
# [ 9 10 11 12]]
#[[ 1 2 3]
# [ 5 6 7]
# [ 9 10 11]]
#[[1 2 3]
# [5 6 7]]
コメント