2015-08-24 47 views
1

我有两个numpy的数组:形式由日期时间排序numpy的对象数组

array([datetime.datetime(2013, 1, 1, 12, 0), 
     datetime.datetime(2013, 9, 1, 12, 0), 
     datetime.datetime(2013, 5, 1, 12, 0)], dtype=object) 

和形式

array([5,7,3]) 

条目的emission_each_month 5属于时间戳emission_each_month(2013 date_month, 1,1,12,0),7属于(2013,9,1,12,0),3属于(2013,5,1,12,0)。 (实际上我的数据要大得多)

我想让我的数据按日期排序。我怎么样?

回答

1

可以使用numpy.argsort()获取datetime对象的排序数组的索引,然后使用返回的索引对数组进行排序 - emission_each_month。示例 -

In [66]: import datetime 

In [67]: import numpy as np 

In [68]: n = np.array([5,7,3]) 

In [69]: d = np.array([datetime.datetime(2013, 1, 1, 12, 0), datetime.datetime(2013, 9, 1, 12, 0), datetime.datetime(2013, 5, 1, 12, 0)]) 

In [72]: n[np.argsort(d)] 
Out[72]: array([5, 3, 7])