Python中日期之间的平均差异
我有一系列datetime对象,希望计算它们之间的平均增量 例如,如果输入是Python中日期之间的平均差异,python,algorithm,datetime,Python,Algorithm,Datetime,我有一系列datetime对象,希望计算它们之间的平均增量 例如,如果输入是(2008-10-01 12:15:00,2008-10-01 12:25:00,2008-10-01 12:35:00),则平均增量正好是00:10:00或10分钟 有没有关于如何使用Python计算的建议?就算法而言,这很简单。只需找到最大和最小日期时间,取差值,除以您查看的日期时间数 如果您有一个datetimes数组,则可以执行以下操作: mx = max(a) mn = min(a) avg = (mx-mn)
(2008-10-01 12:15:00,2008-10-01 12:25:00,2008-10-01 12:35:00)
,则平均增量正好是00:10:00或10分钟
有没有关于如何使用Python计算的建议?就算法而言,这很简单。只需找到最大和最小日期时间,取差值,除以您查看的日期时间数 如果您有一个datetimes数组,则可以执行以下操作:
mx = max(a)
mn = min(a)
avg = (mx-mn)/(len(a)-1)
要得到平均差
编辑:修复了一个错误,因为在你的例子中,你似乎在抛出时间1和3之间的20分钟增量,我认为你应该对日期时间列表进行排序,将相邻时间之间的增量相加,然后除以n-1
您是否有任何代码可以与我们共享,以便我们可以帮助您调试它?您可以从之前的日期中减去每个连续日期(生成一个timedelta对象,表示以天、秒为单位的差值)。然后,您可以对timedelta对象求平均值以找到您的答案。说
a
是您的列表
sumdeltas = timedelta(seconds=0)
i = 1
while i < len(a):
sumdeltas += a[i-1] - a[i]
i = i + 1
avg_delta = sumdeltas / (len(a) - 1)
sumdelta=timedelta(秒=0)
i=1
而我
这将使你的三角洲平均起来。小澄清
from datetime import timedelta
def avg(a):
numdeltas = len(a) - 1
sumdeltas = timedelta(seconds=0)
i = 1
while i < len(a):
delta = abs(a[i] - a[i-1])
try:
sumdeltas += delta
except:
raise
i += 1
avg = sumdeltas / numdeltas
return avg
从日期时间导入时间增量
def平均值(a):
numdeltas=len(a)-1
Sumdelta=timedelta(秒=0)
i=1
而我
是的,这就是我要做的。平均值似乎引起了一个问题;可能是我的Python错误。想法?不应该是(len(c)-1)吗?不应该是(len(a)-1)吗因为其他的引用似乎是“A”而不是“C”……你能划分时间增量对象吗?是的,在这里的划分似乎很好。e、 g.对于值列表[1,3,19,27,28,33,34]
,差异的平均值为5.5,而差异的中位数为3.5。如果您发布代码,我们会更有帮助。这里甚至不清楚要查找什么-平均成对增量?