[SciPy-dev] How to handle a[...] in numpy?
Sasha
ndarray at mac.com
Sat Jan 7 23:10:03 EST 2006
In Numeric a[...] would return an array unless a was 0-rank and a
python type othewise. What is the right way to do the same in numpy?
The problem is that in numpy subscripting always fails on 0-rank arrays:
>>> array(0)[...]
Traceback (most recent call last):
File "<stdin>", line 1, in ?
IndexError: 0-d arrays can't be indexed.
Note that in numpy I would like to get numpy scalars rather than
python type from a 0-rank array.
A related question and a proposal:
Queston: Why do ascalar() and item() return python types rather than
numpy scalar types?
Proposal: Although I like a lot that 0-rank arrays and numpy scalar
types non-iterable, it may be reasonable to allow a[...]. This way
ellipsis can be interpereted as any number of ":"s including zero.
Another subscript operation that makes sense for scalars would be
a[...,newaxis] or even a[{newaxis, }* ..., {newaxis,}*], where
{newaxis,}* stands for any number of comma-separated newaxis tokens.
This will allow one to use ellipsis in generic code that would work on
any numpy type. I will contribute code if there is any interest.
-- sasha
PS: I've just realized that ellipsis does include "zero number of
':'s", only not for zero rank objects:
>>> array([0,0])[...,:]
array([0, 0])
More information about the SciPy-Dev
mailing list