On 7/10/07, Mark.Miller <[EMAIL PROTECTED]> wrote:

Just ran across something that doesn't quite make sense to me at the
moment.

Here's some code:

>>> numpy.__version__
'1.0.2'
>>>
>>> def f1(b,c):
        b=b.astype(int)
        c=c.astype(int)
        return b,c

>>> b,c = numpy.fromfunction(f1,(5,5))
>>> a=numpy.zeros((2,12,5,5),int)
>>> a1=a[0]
>>> a1[:,b,c].shape
(12, 5, 5)
>>> a[0,:,b,c].shape
(5, 5, 12)   ###why does this not return (12,5,5)?
>>>

So in a nutshell, it's not completely clear to me why these are
returning arrays of different shapes.  Can someone shed some light?


It's because you are using arrays as indices (aka Fancy-Indexing). When you
do this everything works differently. In this case, everything is being
broadcast to the same shape. As I understand it (and I try to use only the
simplest forms of fancy indexing), what you are doing is equivalent to:

--
.  __
.   |-\
.
.  [EMAIL PROTECTED]
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to