在pandas中,我们有
为了解释我所说的移动/滚动百分位数/分位数:
给定数组
pd.rolling_quantile()
。在numpy中,我们有np.percentile()
,但我不确定如何做它的滚动/移动版本。为了解释我所说的移动/滚动百分位数/分位数:
给定数组
[1, 5, 7, 2, 4, 6, 9, 3, 8, 10]
,窗口大小为3的移动分位数0.5
(即移动百分位数50%)是:1
5 - 1 5 7 -> 0.5 quantile = 5
7 - 5 7 2 -> 5
2 - 7 2 4 -> 4
4 - 2 4 6 -> 4
6 - 4 6 9 -> 6
9 - 6 9 3 -> 6
3 - 9 3 8 -> 8
8 - 3 8 10 -> 8
10
所以答案是 [5, 5, 4, 4, 6, 6, 8, 8]
。为了使结果序列与输入序列长度相同,一些实现会插入NaN
或None
,而pandas.rolling_quantile()
允许通过较小的窗口计算前两个分位数值。