Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中日期之间的平均差异_Python_Algorithm_Datetime - Fatal编程技术网

Python中日期之间的平均差异

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)

我有一系列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)/(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。如果您发布代码,我们会更有帮助。这里甚至不清楚要查找什么-平均成对增量?