【发布时间】:2020-10-15 08:54:40
【问题描述】:
假设我有一个pandas 系列数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
n = 1000
srs = pd.Series(np.random.random(n))
我现在希望通过这些数据滚动一个高斯滤波器,使权重看起来像:
window = 100
x = np.arange(window)
mu = 60
sigma = 0.2
y = np.exp(-(x-mu)**2 / 2*sigma**2) / np.sqrt(2*np.pi*sigma**2)
plt.plot(x,y)
也就是说,对于每个长度为100 的window,第60 个条目具有最大权重,其他条目按照高斯公式衰减。
.rolling() 可以做到这一点吗?
【问题讨论】:
-
对每个元素进行加权后,pandas Series/DataFrame 滚动方法需要一个聚合函数。您在寻找加权总和/平均值吗?
-
我猜
mean可以工作耶
标签: pandas numpy signal-processing