如何每行循环 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
作为掩码,然后将该掩码乘以 X2
和 sum
跨轴 1,以及 keepdims=True
:
>>> np.sum((X==0) * X2, axis=1, keepdims=True)
array([[0.3],
[0.7]])
我有两个 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
作为掩码,然后将该掩码乘以 X2
和 sum
跨轴 1,以及 keepdims=True
:
>>> np.sum((X==0) * X2, axis=1, keepdims=True)
array([[0.3],
[0.7]])