我有以下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
,但不确定如何在示例中体现它。
答案 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获得的最小索引代码