numpy.arange的日期时间间隔

时间:2017-02-02 17:34:53

标签: python numpy

我想创建每月间隔而不使用np.arange进行迭代。举个简单的例子,我想要一个包含np.datetime64对象的数组,该对象代表1990-2000范围内的新年。我想是这样的:

np.arange(np.datetime64("1990-01-01"), np.datetime64("2000-01-01"), np.timedelta64(1, 'M'), dtype='datetime64[D]')

但这会引发错误

TypeError: Cannot cast NumPy timedelta64 scalar from metadata [M] to [D] according to the rule 'same_kind'

如果我将dtype切换到datetime [M],我会得到几个月的数组,但当然我想要这一天。

2 个答案:

答案 0 :(得分:2)

您可以将原始dtype设置为datetime64[Y],然后使用datetime64[D]

将其投放到.astype()
np.arange(np.datetime64("1990-01-01"), np.datetime64("2000-01-01"), np.timedelta64(1, 'Y'), dtype='datetime64[Y]').astype('datetime64[D]')

答案 1 :(得分:0)

只需将np.timedelta64(1, 'M')切换为np.timedelta64(1, 'D')

即可