[Numpy-discussion] ufuncs for structured arrays
scopatz at gmail.com
Thu Oct 4 16:53:05 EDT 2012
On Thu, Oct 4, 2012 at 12:23 PM, Jay Bourque <jay.bourque at continuum.io>wrote:
> 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?
A sensible default was use case that I had in mind. I think that it is
cool to be register your own ufuncs and I like what you have done there.
So what I suggested is more of an addition than a strict criticism of work
>> - 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.
That'd be great!
>> 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
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion