[Numpy-discussion] numpy.nansum() behavior in 1.3.0

josef.pktd@gmai... josef.pktd@gmai...
Mon Jun 1 13:16:51 CDT 2009


On Mon, Jun 1, 2009 at 1:43 PM, Keith Goodman <kwgoodman@gmail.com> wrote:
> On Mon, Jun 1, 2009 at 9:55 AM, Michael Hearne <mhearne@usgs.gov> wrote:
>> A question (and possibly a bug):
>>
>> What should be returned when I do:
>>
>> numpy.nansum([])
>>
>> In my copy of numpy 1.1.1, I get 0.0.  This is what I would expect to
>> see.
>> However, this behavior seems to have changed in 1.3.0, in which I get
>> nan.
>
> Here's a weird one. This is in numpy 1.2:
>
>>> np.sum(9)
>   9
>>> np.sum(9.0)
>   9.0
>>> np.nansum(9)
>   9
>>> np.nansum(9.0)
> ---------------------------------------------------------------------------
> IndexError: 0-d arrays can't be indexed.

wrong argument in isnan, I think

Josef

In file: C:\Programs\Python25\Lib\site-packages\numpy\lib\function_base.py

def _nanop(op, fill, a, axis=None):
    """
...

    """
    y = array(a,subok=True)
-    mask = isnan(a)
+   mask = isnan(y)
    if mask.all():
        return np.nan

    if not issubclass(y.dtype.type, np.integer):
        y[mask] = fill

    return op(y, axis=axis)


More information about the Numpy-discussion mailing list