質問: 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のようです。 効率的な方法をよろしくお願いします。
回答: numpyの置換にはFancy Indexingを使うのが効率的です。 参考 Python Data Science Handbook Fancy Indexing ``` import numpy as np img = np.array([ [0, 1, 2], [2, 1, 1], ]) ind = np.array([np.array([255, 0, 0]), np.array([125, 125, 0]), np.array([0, 125, 125])]) ind[img] ```