[Numpy-tickets] [NumPy] #578: Indexing of multi-D arrays is counterintuitive

NumPy numpy-tickets@scipy....
Thu Sep 13 11:07:48 CDT 2007


#578: Indexing of multi-D arrays is counterintuitive
------------------------+---------------------------------------------------
 Reporter:  gic888      |        Owner:  somebody     
     Type:  defect      |       Status:  closed       
 Priority:  normal      |    Milestone:  1.0.4 Release
Component:  numpy.core  |      Version:  none         
 Severity:  normal      |   Resolution:  wontfix      
 Keywords:              |  
------------------------+---------------------------------------------------
Changes (by cookedm):

  * status:  new => closed
  * resolution:  => wontfix

Old description:

> numpy 1.0.4.dev3869 with Python 2.5 on Mac OS 10.4.9 (Intel)
>
> Slicing 1 dimension of a 2D array does not have the same effect as using
> the same slice on a 1D array. Also, calling "array" on the slice
> generates an array different than the slice, and some slice indexes
> behave differently than others. I will clarify with examples:
>
> ipy > z=reshape(arange(30), (15,2))
> ipy > z[3:,0]=z[:-3,0]
>
> ipy > z
>  out:
> array([[ 0,  1],
>        [ 2,  3],
>        [ 4,  5],
>        [ 0,  7],
>        [ 2,  9],
>        [ 4, 11],
>        [ 0, 13],
>        [ 2, 15],
>        [ 4, 17],
>        [ 0, 19],
>        [ 2, 21],
>        [ 4, 23],
>        [ 0, 25],
>        [ 2, 27],
>        [ 4, 29]])
>
> but:
>
> ipy > z=reshape(arange(30), (15,2))
> ipy > z[:-3,0]=z[3:,0]
> ipy > z
>  out:
> array([[ 6,  1],
>        [ 8,  3],
>        [10,  5],
>        [12,  7],
>        [14,  9],
>        [16, 11],
>        [18, 13],
>        [20, 15],
>        [22, 17],
>        [24, 19],
>        [26, 21],
>        [28, 23],
>        [24, 25],
>        [26, 27],
>        [28, 29]])
>
> and:
>
> ipy > z=reshape(arange(30), (15,2))
>
> ipy > z[3:,0]=array(z[:-3,0])
>
> ipy > z
>  out:
> array([[ 0,  1],
>        [ 2,  3],
>        [ 4,  5],
>        [ 0,  7],
>        [ 2,  9],
>        [ 4, 11],
>        [ 6, 13],
>        [ 8, 15],
>        [10, 17],
>        [12, 19],
>        [14, 21],
>        [16, 23],
>        [18, 25],
>        [20, 27],
>        [22, 29]])

New description:

 numpy 1.0.4.dev3869 with Python 2.5 on Mac OS 10.4.9 (Intel)

 Slicing 1 dimension of a 2D array does not have the same effect as using
 the same slice on a 1D array. Also, calling "array" on the slice generates
 an array different than the slice, and some slice indexes behave
 differently than others. I will clarify with examples:
 {{{
 ipy > z=reshape(arange(30), (15,2))
 ipy > z[3:,0]=z[:-3,0]
 ipy > z
  out:
 array([[ 0,  1],
        [ 2,  3],
        [ 4,  5],
        [ 0,  7],
        [ 2,  9],
        [ 4, 11],
        [ 0, 13],
        [ 2, 15],
        [ 4, 17],
        [ 0, 19],
        [ 2, 21],
        [ 4, 23],
        [ 0, 25],
        [ 2, 27],
        [ 4, 29]])
 }}}
 but:
 {{{
 ipy > z=reshape(arange(30), (15,2))
 ipy > z[:-3,0]=z[3:,0]
 ipy > z
  out:
 array([[ 6,  1],
        [ 8,  3],
        [10,  5],
        [12,  7],
        [14,  9],
        [16, 11],
        [18, 13],
        [20, 15],
        [22, 17],
        [24, 19],
        [26, 21],
        [28, 23],
        [24, 25],
        [26, 27],
        [28, 29]])
 }}}
 and:
 {{{
 ipy > z=reshape(arange(30), (15,2))
 ipy > z[3:,0]=array(z[:-3,0])
 ipy > z
  out:
 array([[ 0,  1],
        [ 2,  3],
        [ 4,  5],
        [ 0,  7],
        [ 2,  9],
        [ 4, 11],
        [ 6, 13],
        [ 8, 15],
        [10, 17],
        [12, 19],
        [14, 21],
        [16, 23],
        [18, 25],
        [20, 27],
        [22, 29]])
 }}}

Comment:

 wontfix. This is a consequence of slices of arrays being views of the
 original array.

-- 
Ticket URL: <http://scipy.org/scipy/numpy/ticket/578#comment:1>
NumPy <http://projects.scipy.org/scipy/numpy>
The fundamental package needed for scientific computing with Python.


More information about the Numpy-tickets mailing list