Bottleneck 的.move_mean 不能采用小于窗口大小的数据大小,不像 panda 的 .rolling().mean 函数可以使用比窗口大小更短的数据(假设 min_periods 小于数据大小)。
我是否遗漏了什么,或者这个模块可以解决这个问题?
由于数据大小小于窗口大小而导致失败的代码示例:
import numpy as np
import bottleneck as bn
wdw = 1600
price2= np.sort(np.random.randint(1, high=1000, size=100))
btp = bn.move_mean(price2, window=wdw, min_count=2)
错误:
Traceback (most recent call last): File
"D:/python-projects/risk2/test.py", line 6, in <module>
btp = (price2 - bn.move_mean(price2, window=wdw, min_count=2)) / bn.move_std(price2, window=wdw, min_count=2)
ValueError: Moving window (=1600) must between 1 and 100, inclusive
我想避免另一个 if 声明窗口值(也许避免熊猫)。