22. その他 tips
lリストの⽣成 range 関数
lリストの要素とインデックスを取得
22
range(5)
# [0, 1, 2, 3, 4]
for i in range(10):
print(i)
a = ["a", "b", "c"]
for i, v in enumerate(a):
print("a[%d]=%s" % (i, v))
多重代⼊
インデックスと要素の値を i, vで参照可能
26. numpyの⾏列
lN次元配列 ndarray
ØOpenCVの cv::Mat みたいな感じで利⽤
²今回は特徴量やラベルの配列として利⽤
²1⾏が1つの特徴量
Ø通常のリストとは違い,型は統⼀
26
import numpy as np
a = np.array([[0,0,1],[0,0,2]], dtype=np.float32)
b = np.array([[1,2,3],[4,5,6]], dtype=np.float32)
c = a + b
d = a * b
e = np.dot(a, b.T)
要素ごとの演算
⾏列の積を求める場合はnp.dot関数
.T は転置⾏列
型を指定(np.float32, np.int8など)
27. numpyの⾏列
l インデキシング(特定の要素の値を取り出す)
l スライシング(特定の範囲を取り出す)
Ø 特徴量のうち特定のサンプルだけ使う,特定の次元だけ使う,など
l ファンシーインデキシング(条件に合う⾏,列を取り出す)
Ø 認識失敗したものに対応する特徴量を取り出す,など
27
a[i, j] # 行列 a の (i, j) 要素
a[i, :] # 行列 a の i 行目(のベクトル)
a[:, j] # 行列 a の j 列目
a[:, 0:3] # 行列 a の 0, 1, 2列目の部分行列
a[b==1, :] # 行列 a のうち,
# 行列 b の要素が 1 であるものに
# 対応する行列