2011-09-20 41 views
3

我有numpy的數組:如何引用numpy數組對象?

>>> data 
    dtype([('date', '|O4'), ('value', '<f8')] 

其中date對象是Python的datetime.date對象,它包括所有的日子在一年:[2010-1-1,... 2010-12-31]和value對象是相應日期的值數據。

如何僅返回9月份的價值數據?

+0

是的按日期排列數組? –

+0

是的,它排序正確 – zetah

回答

4

你可以使用一個布爾數組索引data

import numpy as np 
import datetime as dt 
dates=[dt.date(2010,1,1)+dt.timedelta(days=i) for i in range(365)] 
values=range(365) 
data=np.array(zip(dates,values),dtype=[('dates','object'),('value','<f8')]) 

(data['dates']>=dt.date(2010,9,1)) & (data['dates']<dt.date(2010,10,1))是相同長度的布爾數組作爲data,這是True所有日期九月:

print(data['value'][(data['dates']>=dt.date(2010,9,1)) & 
      (data['dates']<dt.date(2010,10,1))]) 
+0

優秀。我希望有這樣的事情 – zetah