如何每行循环 Numpy 数组

how to loop Numpy Array per row

我有两个 numpy 数组

X = np.array([[0,1,0,1,1],
         [0,1,1,1,0]])

X2 = np.array([[0.2,0.5,0.1,0.5,0.5],
          [0.3,0.6,0.6,0.6,0.4]])

我想要的是获得一个值为 X2 的新数组,其中 X 为 0 并按行求和,因此我的输出应该是

[[0.3][0.7]]

我用过

X2[X==0]

这给了我整个数组中的所有 0,而不是每行,所以我得到了整个 0 数组的总和,而不是每行的总和。是否有切片函数或我可以用来获取行总和的函数?

您可以使用 X 作为掩码,然后将该掩码乘以 X2sum 跨轴 1,以及 keepdims=True:

>>> np.sum((X==0) * X2, axis=1, keepdims=True)

array([[0.3],
       [0.7]])