[Numpy-discussion] ufuncs for structured arrays
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
> - 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
> 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
> On Mon, Oct 1, 2012 at 10:36 AM, Jay Bourque <jay.bourque at continuum.io>wrote:
>> I've submitted the following pull request for NumPy:
>> 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.
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion