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

2024-09-29 21:32:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下date

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

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

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

我想从list获取最接近我的日期的index

所需的输出将是3,这是日期列表中离我的日期更近的位置

我不能提供一个例子,因为我不知道如何测试我的问题

我只能想到一个assert.AlmostEqual,但我不确定如何在一个例子中反映它


Tags: 列表dateindexnpassertlist例子datetime64
2条回答

将列表表示为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))

根据datetime文档,您可以通过简单地减去日期来计算timedelta

#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获得的最小索引代码

相关问题 更多 >

    热门问题