[Numpy-discussion] x[None] changes x.shape
Robert Kern
robert.kern at gmail.com
Fri Jan 5 20:00:27 EST 2007
Vincent Nijs wrote:
> Say I use a function that expects a boolean array called sel to be passed as
> an argument:
>
> def foo(x,sel = None):
> return x[sel]
>
> If x is a 1-d array and sel is a (1-d) boolean array, x.shape will give (n,)
> where n is len(x).
>
> However, if the default value None is used (i.e., when no boolean array is
> passed) x.shape will give (1,n).
>
> Is that expected behavior?
Yes. numpy.newaxis is just an alias for None, so x[None] is the same as
x[numpy.newaxis].
> If so is there an alternative default to I could use that would return the
> entire x array and have x.shape be (n,)?
def foo(x, sel=None):
if sel is None:
return sel
else:
return x[sel]
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the NumPy-Discussion
mailing list