连续的平均正数

时间:2016-01-29 06:43:11

标签: python math numpy matrix

我有一个numpy矩阵,每行都有正数和负数的组合。

我想创建一个新的向量,它给出了矩阵中一行中所有正数的平均值。

例如,如果这是矩阵:

[[1 2 3 -1]

[2 5 -6 5]]

我想创建带有值的矢量:

[[2]

[4]]

最快的方法是什么?

总会有正数。

2 个答案:

答案 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)

可能的解决方案是

  • 选择所有非负面
  • 明确计算均值为sum / count

在代码中:

notneg = x >= 0
result = (x * notneg).sum(1) / notneg.sum(1)