什么是python方法来计算列表的平均值,但只考虑正值?在
所以如果我有价值观 [1,2,3,4,5,-1,4,2,3]我要计算三个值的滚动平均值,它基本上是计算[1,2,3,4,5,'nan',4,2,3]的平均滚动平均值。 这就变成了 [nan,2,3,4,4.5,4.5,3,nan]其中第一个和最后一个nan是由于缺少元素。 2=平均值([1,2,3]) 3=平均值([2,3,4]) 但是4.5=平均值([4,5,nan])=平均值([4,5]) 等等。所以重要的是,当有负值时,它们被排除在外,但除法是在正值的数目之间。在
我试过了:
def RollingPositiveAverage(listA,nElements):
listB=[element for element in listA if element>0]
return pd.rolling_mean(listB,3)
但是列表B缺少元素。我试图用nan代替这些元素,但是平均值变成了nan本身。在
有什么好办法解决这个问题吗?在
谢谢
得到滚动求和,得到参与正元素掩码滚动求和的有效元素的计数,并简单地将其除以平均值。对于滚动求和,我们可以使用^{} 。在
因此,实施-
扩展到
^{pr2}$NaN-padding
在边界处的特定情况-样本运行-
既然你用的是熊猫:
输出:
^{pr2}$纯Python版本:
输出:
相关问题 更多 >
编程相关推荐