Numpy 配列の要素を配列に置換する方法
np.array
の要素 (数字) を np.array
に置換する方法が思いつかず,悩んでいます。
例えば以下のような例です。
実行前
img = np.array([
[0, 1, 2],
[2, 1, 1],
])
このimg[h, w]
の値に対し,例えば値が
img[h, w] == 0 のとき np.array([255, 0, 0])
img[h, w] == 1 のとき np.array([125, 125, 0])
img[h, w] == 2 のとき np.array([0, 125, 125])
に置換したいと考えています。つまり,上のimgに対しては
実行後
img = np.array([
[[255, 0, 0], [125, 125, 0], [0, 125, 125]],
[[0, 125, 125], [125, 125, 0], [125, 125, 0]],
])
に置換したいです。
最初np.where
が使えるかと思いましたが,np.where(conditions, x, y)
のx, y
は数字でなければならず,配列はNGのようです。
効率的な方法をよろしくお願いします。