[Numpy-discussion] reduce function of vectorize doesn't respect dtype?

Robert Kern robert.kern at gmail.com
Wed Aug 12 11:45:56 EDT 2009


On Fri, Aug 7, 2009 at 13:54, T J<tjhnson at gmail.com> wrote:
> The reduce function of ufunc of a vectorized function doesn't seem to
> respect the dtype.
>
>>>> def a(x,y): return x+y
>>>> b = vectorize(a)
>>>> c = array([1,2])
>>>> b(c, c)  # use once to populate b.ufunc
>>>> d = b.ufunc.reduce(c)
>>>> c.dtype, type(d)
> dtype('int32'), <type 'int'>
>
>>>> c = array([[1,2,3],[4,5,6]])
>>>> b.ufunc.reduce(c)
> array([5, 7, 9], dtype=object)
>
> My goal is to use the output of vectorize() as if it is actually a ufunc.

vectorize()d ufuncs are always object->object ufuncs because Python
functions take objects and return objects, not C ints or other C data
types.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco



More information about the NumPy-Discussion mailing list