获取最接近给定日期的日期列表的索引

时间:2019-06-21 11:49:15

标签: python date

我有以下date

date=np.datetime64 (2019-12-15)

然后我有一个np.datetime64日期列表:

['2018-01-01','2019-01-01','2019-04-12','2019-12-01']

我想从最接近我的约会的index获取list

所需的输出为3,它是日期列表中更接近我的日期的位置。

由于我不知道如何测试我的问题,因此我无法提供示例。

我只能想到assert.AlmostEqual,但不确定如何在示例中体现它。

2 个答案:

答案 0 :(得分:3)

将您的列表表示为一个numpy数组,并使用np.argmin查找最小差异的索引:

import numpy as np

date = np.datetime64('2019-12-15')
array = np.array(['2018-01-01','2019-01-01','2019-04-12','2019-12-01'],
                 dtype=np.datetime64)

result = np.argmin(np.abs(array - date))

答案 1 :(得分:0)

根据datetime文档,您可以通过简单地减去日期来计算时间增量。

#Set date
date=np.datetime64 ('2019-12-15')


#Create list of strings holding date values
l = ['2018-01-01','2019-01-01','2019-04-12','2019-12-01']

#Convert strings to numpy dates 
l = [numpy.datetime64(x) for x in l]

#For each value in date list, subtract from start date. 
delta = [abs(x - date) for x in l]

#Set minimum index (see link below)
idx = np.argmin(d)


这将输出3

here获得的最小索引代码