みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

numpy で指定したデータだけを合計する

sum() 関数の where で指定します.

numpy.sum — NumPy v1.26 Manual

import numpy as np

a = np.array(
    [
        [1, 2, 3, 4],
        [5, 6, 7, 8],
        [9, 10, 11, 12],
    ]
)
b = np.array(
    [
        [1, 0, 0, 0],
        [0, 1, 0, 0],
        [0, 0, 1, 0],
    ]
)

v = a.sum(where=b.astype(bool))
print(v)

実行すると,1+6+11 = 18 が得られます.マスクしたデータを処理するときに便利です.