3

比较两个 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

4

1 回答 1

3

在比较之前,您需要通过指定“datetime64[D]”数据类型来去除 datetime64 的时间信息,如下所示:

>>> 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

顺便说一句,我无法让 numpy从您在上面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'
于 2015-12-14T01:32:50.070 回答