Как ссылаться на объекты массива? - PullRequest
3 голосов
/ 20 сентября 2011

У меня есть пустой массив:

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

, где date объект - это объект Python datetime.date, который состоит из всех дней в одном году: [2010-1-1, ..., 2010-12-31] и value объект является данными значения для соответствующей даты.

Как я могу вернуть данные значения только, скажем, за сентябрь?

1 Ответ

4 голосов
/ 20 сентября 2011

Вы можете использовать логический массив для индексации 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))])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...