Comments (2)
import numpy as np
import numba
def rolling_window(a, window):
shape = a.shape[:-1] + (a.shape[-1] - window + 1, window)
strides = a.strides + (a.strides[-1],)
return np.lib.stride_tricks.as_strided(a, shape=shape, strides=strides)
def AVEDEV2(arr, N):
res = np.empty(len(arr))
res[: N-1] = np.nan
tmp = rolling_window(arr, N)
# for i, arr in enumerate(tmp):
# res[N+i-1] = np.mean(np.abs(arr - np.mean(arr)))
return _avedev(tmp, res, N)
@numba.jit
def _avedev(rolling_arr, res, N):
i = 0
for arr in rolling_arr:
res[N+i-1] = np.mean(np.abs(arr - np.mean(arr)))
i += 1
return res
Test
arr = np.random.randn(10000)
In [63]: %timeit AVEDEV2(arr, 20) # My version
Out [63]: 1.06 ms ± 1.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [64]: %timeit AVEDEV(arr, 20) # original version
Out [64]: 2.29 s ± 12.2 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
from mytt.
能优化AVEDEV就能提高效率
def AVEDEV(S, N): #平均绝对偏差 (序列与其平均值的绝对差的平均值)
return pd.Series(S).rolling(N).apply(lambda x: (np.abs(x - x.mean())).mean()).values
from mytt.
Related Issues (20)
- 好哥哥,可以告诉我OBV函数怎么使用吗?
- 求CR指标,谢谢 HOT 1
- 求BACKSET函数,谢谢
- 怎么引用通达信的dll
- 请提供一个支持序列作为变量的REF函数. HOT 1
- 求通达信TFILTER函数
- 价格为小数时,MyTT计算指标精度丢失 HOT 1
- 缺乏SIN ASIN COS ACOS TAN ATAN 等三角函数相关的函数 HOT 4
- 股票的历史数据是哪里来的啊,用的啥数据计算的呀
- 指标值为空值和inf值,请问这种情况是正常的吗,该如何解决呢
- HHV和LLV的第二个参数如果是序列应该怎么实现? HOT 1
- RSI指标计算
- 为什么KDJ计算结果和 官方不一致呢,哪里没设置对 HOT 2
- 请问作者有sar指标吗
- BOLL 指标与主流行情软件如东方财富,算出来的不一样 HOT 1
- 求STDDEV函数
- 希望ref函数中参数n支持序列值 HOT 5
- Redeclared 'HHV' defined above without usage
- 通达信FSL指标,这个超难了,那位大神实现下
- 价格小于1时会报错pandas的rolling “window must be an integer”
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mytt.