我有一个numpy矩阵,每行都有正数和负数的组合。
我想创建一个新的向量,它给出了矩阵中一行中所有正数的平均值。
例如,如果这是矩阵:
[[1 2 3 -1]
[2 5 -6 5]]
我想创建带有值的矢量:
[[2]
[4]]
最快的方法是什么?
总会有正数。
答案 0 :(得分:4)
如果保证每行至少有一个正数"FROM {$table}posts INNER JOIN {$table}postmeta"
,您可以使用np.where
将(>=0)
转换为negative numbers (excluding 0)
,然后使用{ {3}}沿着行,像这样 -
NaNs
示例运行 -
np.nanmean(np.where(A>=0,A,np.nan),axis=1)
答案 1 :(得分:0)
可能的解决方案是
在代码中:
notneg = x >= 0
result = (x * notneg).sum(1) / notneg.sum(1)