如何比较两个Numpy.datetime64的日期

时间:2015-12-13 23:56:50

标签: numpy datetime64

比较两个numpy.datetime64的日期部分的正确方法是什么?

A:  2011-01-10  Type:  <type 'numpy.datetime64'>
B:  2011-01-10T09:00:00.000000-0700  Type:  <type 'numpy.datetime64'>

上述示例将通过比较(A == B)

返回false

1 个答案:

答案 0 :(得分:1)

您希望在比较之前删除日期时间64的时间信息,方法是指定&#39; datetime64 [D]&#39;数据类型,如下所示:

>>> a = numpy.datetime64('2011-01-10')
>>> b = numpy.datetime64('2011-01-10T09:00:00.000000-0700')
>>> a == b
False
>>> a.astype('datetime64[D]') == b.astype('datetime64[D]')
True

顺便说一下,从上面为datetime64[D]给出的字符串创建一个b值数组时,我无法获得成功。我收到了这个错误:

>>> b = numpy.array(['2011-01-10T09:00:00.000000-0700'], dtype='datetime64[D]')
TypeError: Cannot parse "2011-01-10T09:00:00.000000-0700" as unit 'D' using casting rule 'same_kind'