[Numpy-discussion] question about nonzero behavior in numarray
list at jsaul.de
Fri Apr 2 15:32:08 CST 2004
* Fernando Perez [2004-04-02 02:15]:
> Joachim Saul wrote:
> >How often does it happen that you have an empty array, which you
> >need to test for? Certainly not as frequently as in case of a
> Well, just these days I'm working with code where I'm precisely using that
> kind of check, relying on Numeric's behavior. But I know that with
> potentially nested structures, it's probably best to be explicit and do all
> checks via things like:
> if len(a)
> if a==0
But what would a==0 return? A boolean? An array of booleans? An
array if integers? The way it is evaluated now in Numeric is
pretty clear, though there could be other evaluations. For
might be understood as "if a is everywhere one" or "if the length
of vector a is one", etc. The current meaning is "if a is anywhere
one", which may not be intuitive under all circumstances, but as
long as it is the well defined behaviour, I simply don't see the
need to change or forbid that.
Nested structures are an important argument against keeping
compatibility with Python list behaviour. For instance
>>> if : print "True"
>>> if []: print "True"
Which perfectly makes sense in Python, but an equivalent behaviour
of a numeric array would be complete humbug. Thus, I don't think
that it would make any sense to emulate Python list behaviour,
rather I would support keeping the *existing* Numeric behaviour.
More information about the Numpy-discussion