[Numpy-discussion] dates, np.where finding months
Keith Goodman
kwgoodman at gmail.com
Wed Jan 20 10:21:53 EST 2010
On Wed, Jan 20, 2010 at 7:11 AM, Keith Goodman <kwgoodman at gmail.com> wrote:
> On Wed, Jan 20, 2010 at 6:01 AM, John [H2O] <washakie at gmail.com> wrote:
>>
>> I have an array with the leading column a series of datetime objects. It
>> covers several years. What is the most efficient way to pull out all the
>> 'January' dates?
>>
>> Right now I do this:
>>
>> A = array with column 0 datetime objects
>>
>> January = [i for i in A if i[0].month ==1 ]
>>
>> It works, but I would rather use np.where and get indices and not have to
>> convert my list back into an array.
>
> Instead of doing this:
>
>>> A
>
> array([[2010-01-01, 1],
> [2010-01-02, 2],
> [2010-02-01, 3],
> [2010-01-05, 4]], dtype=object)
>
>>> [i for i in A if i[0].month==1]
>
> [array([2010-01-01, 1], dtype=object),
> array([2010-01-02, 2], dtype=object),
> array([2010-01-05, 4], dtype=object)]
>
> You could do this:
>
>>> [i for i, date in enumerate(A[:,0]) if date.month==1]
> [0, 1, 3]
Or maybe this is cleaner:
>> [date.month==1 for date in A[:,0]]
[True, True, False, True]
which can be used like this:
>> idx = np.array([date.month==1 for date in A[:,0]])
>> A[idx,:]
array([[2010-01-01, 1],
[2010-01-02, 2],
[2010-01-05, 4]], dtype=object)
More information about the NumPy-Discussion
mailing list