[Numpy-discussion] Changes in PyArray_FromAny between 1.5.x and 1.6.x
Dag Sverre Seljebotn
d.s.seljebotn at astro.uio.no
Mon Jun 4 17:12:44 EDT 2012
On 06/04/2012 09:06 PM, Mike Hansen wrote:
> On Mon, May 28, 2012 at 3:15 AM, Mike Hansen<mhansen at gmail.com> wrote:
>> In trying to upgrade NumPy within Sage, we notices some differences in
>> behavior between 1.5 and 1.6. In particular, in 1.5, we have
>>
>> sage: f = 0.5
>> sage: f.__array_interface__
>> {'typestr': '=f8'}
>> sage: numpy.array(f)
>> array(0.5)
>> sage: numpy.array(float(f))
>> array(0.5)
>>
>> In 1.6, we get the following,
>>
>> sage: f = 0.5
>> sage: f.__array_interface__
>> {'typestr': '=f8'}
>> sage: numpy.array(f)
>> array(0.500000000000000, dtype=object)
>>
>> This seems to be do to the changes in PyArray_FromAny introduced in
>> https://github.com/mwhansen/numpy/commit/2635398db3f26529ce2aaea4028a8118844f3c48
>> . In particular, _array_find_type used to be used to query our
>> __array_interface__ attribute, and it no longer seems to work. Is
>> there a way to get the old behavior with the current code?
No idea. If you want to spend the time to fix this properly, you could
implement PEP 3118 and use that instead to export your array data (which
can be done from Cython using __getbuffer__ on a Cython class).
Dag
More information about the NumPy-Discussion
mailing list