如何引用numpy数组对象?

时间:2011-09-20 00:13:39

标签: python indexing numpy

我有numpy数组:

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

其中date对象是Python datetime.date对象,它包含一年中的所有日期:[2010-1-1,...,2010-12-31]和value对象是相应日期的价值数据。

我怎样才能返回九月份的价值数据?

1 个答案:

答案 0 :(得分: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长度相同的布尔数组,对于9月份的所有日期都是True

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