[Numpy-discussion] Bug: extremely misleading array behavior

Larry Denneau larryd at pangalactic.com
Tue May 28 13:04:02 EDT 2002


Pearu Peterson said:
> 
> On Tue, 28 May 2002, Larry Denneau wrote:
> 
> > Hello,
> > 
> > I recently discovered the following behavior when fetching values
> > from a Numeric array.  Can somebody offer some insight?
> > 
> > #1)
> > 
> >   import Numeric
> > 
> >   a = Numeric.zeros((2, 2), 'i')
> >   n = a[1, 1]     # fetch interesting value from array
> >   print n 
> >   a[1, 1] = 10    # change array
> >   print n         # blam
> >   print type(n)   # huh
> > 
> >   [bash]$ python 1.py
> >   0
> >   10
> >   <type 'array'>

[ deleted]

> Use
>      
>     a[1][1] = 10
>      
> and the output will be
>   
> 0
> 0 
> <type 'int'>
> 
> I find it is an useful feature in Numeric to have both behaviours of
> either using a[1,1] or a[1][1]. You may want to dig into Numeric's
> userguide to get a more detailed explanation of the differences.
> 
> Regards,
> 	Pearu

Hi Pearu,

I assume you mean

  n = a[1][1]

which produces the expected behavior.  All the Numpy documentation
examples (see http://pfdubois.com/numpy/html2/numpy-6.html#pgfId-36033,
"Getting and Stting Array Values") use the [x, y] notation instead
of [x][y], so I would consider this a bug in the documentation,
since the [x, y] method leads to unexpected behavior.

I'm still curious what happens to the original array when 

  n=a[1, 1]
  del(a)

but that may have to wait until I have time to peruse the Numeric
source.

Thanks,
Larry




More information about the NumPy-Discussion mailing list