Python 对行的非零元素执行numpy乘积

Python 对行的非零元素执行numpy乘积,python,numpy,Python,Numpy,我有一个2d数组r。我想做的是取每行的乘积(不包括该行中的零元素)。例如,如果我有: r = [[1 2 0 3 4], [0 2 5 0 1], [1 2 3 4 0]] 然后我想要的是另一个2d数组结果,这样: result = [[24], [10], [24]] 如何使用numpy.prod实现这一点?我想我已经解决了: np.prod(r, axis = 1, where = r > 0, keepdims = Tr

我有一个2d数组
r
。我想做的是取每行的乘积(不包括该行中的零元素)。例如,如果我有:

r = [[1 2 0 3 4],
     [0 2 5 0 1],
     [1 2 3 4 0]]
然后我想要的是另一个2d数组
结果
,这样:

result = [[24],
          [10],
          [24]]

如何使用numpy.prod实现这一点?

我想我已经解决了:

np.prod(r, axis = 1, where = r > 0, keepdims = True)
输出:

array([[24],                                                                                                                   
[10],                                                                                                                   
[24]]) 

您可以这样做:
np.prod(r+(r==0),axis=1)