[Numpy-discussion] ufuncs for structured arrays

Jay Bourque jay.bourque at continuum.io
Thu Oct 4 13:23:01 EDT 2012


Hey Anthony, thanks for the comments.

On Mon, Oct 1, 2012 at 10:32 PM, Anthony Scopatz <scopatz at gmail.com> wrote:

> Hello Jay,
>
> Cool idea!  I like to see work on structured arrays.  Just a couple of
> questions:
>
>    - Since there are already have ufuncs for primitive dtypes (int,
>    float, etc), and you are just acting columnwise here, can't you write a
>    single function which interprets the dtypes, gathers the approriate scalar
>    ufuncs, and applies those down each field?  Yes registering individual
>    functions using your mechanism will be faster, but it will also be more
>    work.
>
> I hadn't thought of this approach, but I suppose that would work okay too
for certain dtypes. You'd lose some flexibility with writing a ufunc for a
specific struct dtype though (for example maybe the ufunc shouldn't be
applied to all the fields in a record). Maybe this approach would be a good
default to use when a ufunc hasn't been registered for a struct dtype?


>
>    - I didn't try this out myself, but will the normal numpy broadcasting
>    rules apply here?
>
> I need to do more testing for this, but yes, I believe normal broadcasting
rules should work fine.


> Be Well
> Anthony
>
> On Mon, Oct 1, 2012 at 10:36 AM, Jay Bourque <jay.bourque at continuum.io>wrote:
>
>> All,
>>
>> I've submitted the following pull request for NumPy:
>>
>> https://github.com/numpy/numpy/pull/462
>>
>> This change allows ufuncs to be registered for structured arrays by using
>> a new API method PyUFunc_RegisterLoopForStructType. For example, a ufunc
>> could be registered to take two arrays of type 'u8,u8,u8' and return an
>> array of type 'u8,u8,u8'. I have a trivial example of this included in my
>> pull request, along with further details of my changes. I suspect there
>> might be a better way to do this, so any suggestions for improvements would
>> be welcome.
>>
>> Thanks,
>> -Jay
>> continuum.io
>>
>> _______________________________________________
>> 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/20121004/521b1629/attachment.html>


More information about the NumPy-Discussion mailing list