我再次玩Python,并且find了一个带有例子的整洁的书。 其中一个例子是绘制一些数据。 我有一个两列的.txt文件,我有数据。 我绘制的数据很好,但在练习中说:进一步修改程序来计算和绘制数据的运行平均值,定义如下: $Y_k=\frac{1}{2r}\sum_{m=-r}^r y_{k+m}$ 在这种情况下r=5 (而y_k是数据文件中的第二列)。 让程序在同一个图上绘制原始数据和运行平均值。 到目前为止,我有这样的: from pylab import plot, ylim, xlim, show, xlabel, ylabel from numpy import linspace, loadtxt data = loadtxt("sunspots.txt", float) r=5.0 x = data[:,0] y = data[:,1] plot(x,y) xlim(0,1000) xlabel("Months since Jan 1749.") ylabel("No. of Sun spots") show() 那么如何计算总和? 在Mathematica中它很简单,因为它是符号操作(例如Sum [i,{i,0,10})),但是如何在python中计算每一个十点的数据并对其求平均,直到结束点数? 我看了一下这本书,却发现什么都不能解释这个: heltonbiker的代码做了诡计^^:D from __future__ import division […]
我有时间收集,他们代表了花在做任务的时间。 现在我想找出在这个任务上花费的平均时间。 这应该很容易,但由于某种原因我没有得到正确的平均值。 下面是即将做的事情: private TimeSpan? GetTimeSpanAverage(List<TimeSpan> sourceList) { TimeSpan total = default(TimeSpan); var sortedDates = sourceList.OrderBy(x => x); foreach (var dateTime in sortedDates) { total += dateTime; } return TimeSpan.FromMilliseconds(total.TotalMilliseconds/sortedDates.Count()); }
我有一个连续的值,我想计算一个指数移动平均线 。 通常我只是使用这个标准公式: S n =αY+(1-α)S n-1 其中S n是新的平均值,α是α,Y是样本,S n-1是以前的平均值。 不幸的是,由于各种问题,我没有一个一致的采样时间。 我可能知道最多可以抽样一次,也就是每毫秒一次,但是由于我不能控制的因素,我可能无法一次抽样数毫秒。 然而,可能更常见的情况是,我简单地抽样了一些早或晚,而不是在0,1和2毫秒采样。 我在0,0.9和2.1毫秒采样。 我预料到,不pipe延迟如何,我的采样频率将远远高于奈奎斯特极限,因此我不必担心锯齿。 我认为,我可以根据自上次采样以来的时间长度,通过适当地改变阿尔法来或多或less地合理地处理这个问题。 我的推理的部分原因是,EMA在前一个数据点和当前数据点之间“线性插入”。 如果我们考虑以间隔t计算以下样本列表的EMA:[0,1,2,3,4]。 如果我们使用间隔2t,input变成[0,2,4],那么我们应该得到相同的结果,对吗? 如果EMA假设在t 2时刻t 2时刻的值为2,那么和在[0,2,2,4,4]上计算的时间间隔t的计算方法是一样的。 或者这是否有意义呢? 有人能告诉我如何适当地改变阿尔法? “请展示你的工作。” 也就是说,告诉我mathcertificate你的方法确实是做正确的事情。
我必须在Python中find一个列表的平均值。 这是我的代码到目前为止 l = [15, 18, 2, 36, 12, 78, 5, 6, 9] print reduce(lambda x, y: x + y, l) 我已经知道了,所以它将列表中的值加起来,但是我不知道如何将它们分成两部分呢?