[Numpy-discussion] About np array and recarray

Yan Tang tang.yan at gmail.com
Thu Mar 22 12:42:58 EDT 2012


Yes, this is finally how I work around it.  I just want to save the
conversion from list to tuple.

On Thu, Mar 22, 2012 at 1:32 AM, Val Kalatsky <kalatsky at gmail.com> wrote:

>
> Will this do what you need to accomplish?
>
> import datetime
> np.array([(datetime.datetime.strptime(i[0], "%Y-%m-%d").date(), i[1]) for
> i in a], dtype=[('date', 'object'), ('count', 'int')])
>
> Val
>
> On Wed, Mar 21, 2012 at 11:48 PM, Yan Tang <tang.yan at gmail.com> wrote:
>
>> Hi,
>>
>> I am really confused on the np array or record array, and cannot
>> understand how it works.
>>
>> What I want to do is that I have a normal python two dimensional
>> array/list:
>>
>> a = [['2000-01-01', 2],['2000-01-02', 3]]
>>
>> I want to convert it to a recarray with this dtype [('date', 'object'),
>> ('count', 'int')].  I tried multiple ways and none of them works.  And some
>> of the tests show pretty odd behavior.
>>
>> This is good, and it is almost what i want:
>>
>> >>> import numpy as np
>> >>> a = [('2000-01-01', 2), ('2000-01-02', 3)]
>> >>> np.array(a, dtype=[('date', 'object'), ('count', 'int')])
>> array([('2000-01-01', 2), ('2000-01-02', 3)],
>>       dtype=[('date', '|O8'), ('count', '<i8')])
>>
>> Why this doesn't work?!
>>
>> >>> a = [['2000-01-01', 2],['2000-01-02', 3]]
>> >>> np.array(a, dtype=[('date', 'object'), ('count', 'int')])
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>> ValueError: tried to set void-array with object members using buffer.
>>
>> Why can this cause segmentation fault?!
>>
>> >>> a = [['2000-01-01', 2],['2000-01-02', 3]]
>> >>> np.ndarray((len(a),), buffer=np.array(a), dtype=[('date', 'object'),
>> ('count', 'int')])
>> Segmentation fault (And python quit!)
>>
>> Python version 2.6.5
>>
>> On this reference page,
>> http://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html
>>
>> >>> x = np.array([(1,2),(3,4)])
>> >>> x
>> array([[1, 2],
>>        [3, 4]])
>> >>> np.array([[1, 2], [3, 4]])
>> array([[1, 2],
>>        [3, 4]])
>>
>> Can anyone help me about this?
>>
>> Thanks.
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120322/fce263ea/attachment.html>


More information about the NumPy-Discussion mailing list