使用datetime64的numpy digitize

5

我似乎无法使用numpy.digitize来处理datetime64:

date_bins = np.array([np.datetime64(datetime.datetime(2014, n, 1), 's') for n in range(1,13)])
np.digitize(date_bins, date_bins)

它会显示以下错误:
TypeError: Cannot cast array data from dtype('<M8[s]') to dtype('float64') according to the rule 'safe'

这是预期的行为吗?
1个回答

7

获取 datetime 值的 i8 视图:

>>> date_bins_i8 = date_bins.view('i8')
>>> np.digitize(date_bins_i8, date_bins_i8)
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])

i8 是64位整数数据类型,view 构造了一个数组内存的视图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接