[Numpy-discussion] Do ufuncs returned by frompyfunc() have the out arg?
Tue Apr 6 16:52:55 CDT 2010
On 6 April 2010 15:42, Ken Basye <firstname.lastname@example.org> wrote:
> I hope this is a simple question. When I created a ufunc with
> np.frompyfunc(), I got an error when I called the result with an 'out'
In fact, ordinary ufuncs do not accept names for their arguments. This
is annoying, but fixing it involves rooting around in the bowels of
the ufunc machinery, which are not hacker-friendly.
> >>> def foo(x): return x * x + 1
> >>> ufoo = np.frompyfunc(foo, 1, 1)
> >>> arr = np.arange(9).reshape(3,3)
> >>> ufoo(arr, out=arr)
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: 'out' is an invalid keyword to foo (vectorized)
> But I notice that if I just put the array there as a second argument, it
> seems to work:
> >>> ufoo(arr, arr)
> array([[2, 5, 26],
> [101, 290, 677],
> [1370, 2501, 4226]], dtype=object)
> # and now arr is the same as the return value
> Is it reasonable to conclude that there is an out-arg in the resulting
> ufunc and I just don't know the right name for it? I also tried putting
> some other right-shaped array as a second argument and it did indeed get
> filled in.
> Thanks as always,
> NumPy-Discussion mailing list
More information about the NumPy-Discussion