diff options
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/lib/function_base.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index 03ac68ab1..2b7041422 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -616,9 +616,20 @@ class vectorize(object): self.lastcallargs = nargs if self.nout == 1: - return self.ufunc(*args).astype(self.otypes[0]) + ret = self.ufunc(*args) + c = self.otypes[0] + try: + return ret.astype(c) + except AttributeError: # scalar-case + return array(ret).astype(c) else: - return tuple([x.astype(c) for x, c in zip(self.ufunc(*args), self.otypes)]) + ret = [] + for x, c in zip(self.ufunc(*args), self.otypes): + try: + ret.append(x.astype(c)) + except AttributeError: + ret.append(array(x).astype(c)) + return tuple(ret) def cov(m,y=None, rowvar=1, bias=0): """Estimate the covariance matrix. |