假设我有一个简单的numpy数组:
a = np.array([1,2,3,4,5,6,7])
我可以简单地计算大小为3的窗口的移动平均值:
np.convolve(a,np.ones(3),'valid') / 3
这将产生
array([2., 3., 4., 5., 6.])
现在,我想取一个移动平均线,但不包括任何出现数字“2”的时间。换句话说,对于前3个数字,最初,它是(1 + 2 + 3)/ 3 = 2。现在,我想做(1 + 3)/ 2 = 2。如何指定一个用户定义的数字来忽略和计算移动平均值,而不包括此用户定义的数字?我想把这个保持在某种 numpy 功能上,而不带Pandas进来。
1条答案
按热度按时间m1m5dgzv1#
您可以使用遮罩将不需要的值替换为0,并单独计算有效项目的数量,然后计算比率:
输出: