# [PYTHON MATRIX-SIG] strange slice behaviour

**tim@lassi.ece.uiuc.edu
**
tim@lassi.ece.uiuc.edu

*Wed, 24 Apr 1996 16:54:13 -0500*

I just recently subscribed to the matrix-sig, so I appologize if this
has gone over allready (I've tried to look over the archive, but its
rather large.) Thanks to everyone for putting Numerical Python
together - it looks great.
I have a 2D array and I slice it, it works fine for non-zero length
slices, but behaves strangely (IMHO) for zero length slices. It works
fine for 1D arrays though...
>>>* from Numeric import *
*>>>* a = array([[1,2,3],[4,5,6],[7,8,9]])
*>>>* a
*1 2 3
4 5 6
7 8 9
>>>* a[0:2,1] # OK
*2 5
>>>* a[0:1,1] # OK
*2
>>>>>>* a[0:0,1] # This is strange !!!
*2 5 8
>>>* b = array([1,2,3])
*>>>* b
*1 2 3
>>>* b[0:0] # Oops this breaks the PrettyPrinter
*
Traceback (innermost last):
File "<stdin>", line 1, in ?
File "/usr/local/lib/python/numeric/PrettyPrinter.py", line 28, in
arrayToString
max_str_len = max(len(str(maximum.reduce(data))),
ArrayError: can't take anything from an empty array
>>>*
*>>>* b[0:0].shape # This gives what I'd expect.
*(0,)
Is this the expected behaviour? If it is, does anyone know of a nice
workaround to get the behaviour I'd expect (i.e., a zero size matrix)?
Thanks,
--
-tim
+--------------------------------------------------------------------+
|* Tim Hochberg Ultrahigh Speed Digital Electronics Lab |
*|* tim@lassi.ece.uiuc.edu University of Illinois |
*|* http://dogbert.ece.uiuc.edu/~tim (217) 333-6014 |
*+--------------------------------------------------------------------+
=================
MATRIX-SIG - SIG on Matrix Math for Python
send messages to: matrix-sig@python.org
administrivia to: matrix-sig-request@python.org
=================