我想创建每月间隔而不使用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],我会得到几个月的数组,但当然我想要这一天。
答案 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')