我有numpy数组:
>>> data
dtype([('date', '|O4'), ('value', '<f8')]
其中date对象是Python datetime.date对象,它由一年中的所有天组成:[2010-1-1,…,2010-12-31],而value对象是对应日期的值数据.
我如何仅返回例如9月的价值数据?
解决方法:
您可以使用布尔数组为数据建立索引:
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))是一个与数据长度相同的布尔数组,对于9月的所有日期均为True:
print(data['value'][(data['dates']>=dt.date(2010,9,1)) &
(data['dates']<dt.date(2010,10,1))])