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

josef.pktd at gmail.com josef.pktd at gmail.com
Mon Jun 1 19:43:32 EDT 2009


On Mon, Jun 1, 2009 at 7:30 PM, Robert Kern <robert.kern at gmail.com> wrote:
> On Mon, Jun 1, 2009 at 15:31,  <josef.pktd at gmail.com> wrote:
>> On Mon, Jun 1, 2009 at 4:06 PM, Alan G Isaac <aisaac at american.edu> wrote:
>>> On 6/1/2009 3:38 PM josef.pktd at gmail.com apparently wrote:
>>>> Here's a good one:
>>>>
>>>>>>> np.isnan([]).all()
>>>> True
>>>>>>> np.isnan([]).any()
>>>> False
>>>
>>>
>>>  >>> all([])
>>> True
>>>  >>> any([])
>>> False
>>
>> also:
>>
>>>>> y
>> array([], dtype=float64)
>>>>> (y>0).all()
>> True
>>>>> (y>0).any()
>> False
>>>>> ((y>0)>0).sum()
>> 0
>>
>> I don't know what's the logic, but it causes the bug in np.nansum.
>
> You will have to special-case empty arrays, then.
>

is np.size the right check for non-empty array, including subtypes?

i.e.

if y.size and mask.all():
        return np.nan

or more explicit
if y.size > 0 and mask.all():
        return np.nan

Josef



More information about the NumPy-Discussion mailing list