我有两个日期时间数组,我试图输出一个数组,其中只有那些在两个数组之间重复的日期。我觉得这是我应该能够回答自己的问题,但我已经花了很多时间时间搜索,我不明白如何解决这个问题。
>>> datetime1[0:4]
array([datetime.datetime(2014, 6, 19, 4, 0),
datetime.datetime(2014, 6, 19, 5, 0),
datetime.datetime(2014, 6, 19, 6, 0),
datetime.datetime(2014, 6, 19, 7, 0)], dtype=object)
>>> datetime2[0:4]
array([datetime.datetime(2014, 6, 19, 3, 0),
datetime.datetime(2014, 6, 19, 4, 0),
datetime.datetime(2014, 6, 19, 5, 0),
datetime.datetime(2014, 6, 19, 6, 0)], dtype=object)
我已经在下面尝试过了,但我仍然不明白为什么这不起作用
>>> np.where(datetime1==datetime2)
(array([], dtype=int64),)
最佳答案
这个:
datetime1==datetime2
是逐元素比较。它将 [0] 与 [0] 进行比较,然后将 [1] 与 [1] 进行比较,并为您提供一个 bool 数组。
相反,尝试:
np.in1d(datetime1, datetime2)
这为您提供了一个与 datetime1
大小相同的 bool 数组,对于存在于 datetime2 中的那些元素设置为 True。
如果您的目标只是获取值而不是索引,请使用:
np.intersect1d(datetime1, datetime2)
https://docs.scipy.org/doc/numpy/reference/generated/numpy.intersect1d.html
关于python - 查找两个日期时间数组 python 之间的重复日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45890758/