[Numpy-discussion] Is this odd?

Shailendra shailendra.vikas at gmail.com
Fri Apr 2 00:07:46 EDT 2010


Hi All,
Below is some array behaviour which i think is odd
>>> a=arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b=nonzero(a<0)
>>> b
(array([], dtype=int32),)
>>> if not b[0]:
...     print 'b[0] is false'
...
b[0] is false

Above case the b[0] is empty so it is fine it is considered false

>>> b=nonzero(a<1)
>>> b
(array([0]),)
>>> if not b[0]:
...     print 'b[0] is false'
...
b[0] is false

Above case b[0] is a non-empty array. Why should this be consider false.

>>> b=nonzero(a>8)
>>> b
(array([9]),)
>>> if not b[0]:
...     print 'b[0] is false'
...
>>>
Above case b[0] is non-empty and should be consider true.Which it does.

I don't understand why non-empty array should not be considered true
irrespective to what value they have.
Also, please suggest the best way to differentiate between an empty
array and non-empty array( irrespective to what is inside array).

Thanks,
Shailendra



More information about the NumPy-Discussion mailing list