文档不添加太多…..
>>> from scipy import stats>>> import numpy as np>>> x = np.random.random(10)>>> y = np.random.random(10)>>> slope,intercept,r_value,p_value,std_err = stats.linregress(x,y)
这会有用吗?
def slope(x,n): if i<len(x)-n: slope = stats.linregress(x[i:i+n],y[i:i+n])[0] return slope
但是数组的长度是相同的
@joe :::
xx = [2.0,4,6,8,10,12,14,16,18,20,22,24,26,28,30]x = np.asarray(xx,np.float)s = np.diff(x[::3])/3window = [1,-1]window2 = [1,-1]slope = np.convolve(x,window,mode='same') / (len(window) - 1)slope2 = np.convolve(x,window2,mode='same') / (len(window2) - 1)print xprint sprint slopeprint slope2
结果…..
[ 2. 4. 6. 8. 10. 12. 14. 16. 18. 20. 22. 24. 26. 28. 30.][ 2. 2. 2. 2.][ 1.5 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. -6. -6.5][ 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. -14.]
斜率和斜率2是Im之后的除了-6,-6.5和-14不是我正在寻找的结果.
这工作…….
window = [1,-1]slope = np.convolve(xx,mode='valID') / float(len(window) - 1)padlength = len(window) -1slope = np.hstack([np.ones(padlength),slope])print slope解决方法 我假设你的意思是计算每个第3和第5个元素的斜率,这样你就有了一系列(精确的,非最小二乘)斜率?
如果是这样,你只需要做一些事情:
third_period_slope = np.diff(y[::3]) / np.diff(x[::3])fifth_period_slope = np.diff(y[::5]) / np.diff(x[::5])
不过,我可能完全误解了你的意思.我以前从未领过“3期斜率”一词……
如果你想要更多的“移动窗口”计算(这样输入元素的数量与输出元素相同),只需将其建模为带有[-1,1]或[-1]窗口的卷积,1].
例如.
window = [-1,1]slope = np.convolve(y,mode='same') / np.convolve(x,mode='same')总结
以上是内存溢出为你收集整理的如何计算numpy中的斜率全部内容,希望文章能够帮你解决如何计算numpy中的斜率所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)