Robert Kern wrote:
> Mathew Yeates wrote:
>
>   
>> def delta2day1(delta):
>>     return delta.days/365.0
>> deltas2days=numpy.frompyfunc(delta2day1,1,1)
>>     
>
> If I had to guess where the problem is, it's here. frompyfunc() and 
> vectorize()
> have always been tricky beasts to get right.
>   
<curnudgen mode>

IMO, frompyfunc is an attractive nuisance. It doesn't magically make 
scalar Python functions fast, as people seem to assume, and it prevents 
people from figuring out how to write vectorized functions in the many 
cases where that's practicable. And it sounds like it may be buggy to boot.

In this case, I don't know that you can easily vectorize this by hand, 
but there are many ways that it could be rewritten to avoid frompyfunc. 
For example:

    def deltas2days(seq):
        return numpy.fromter((x.days for x in seq), dtype=float,
    count=len(seq))

One line shorter, about equally opaque and less likely to have 
mysterious bugs.

</curmudgen mode>

-tim


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/numpy-discussion

Reply via email to