NumPy Question - numpy.put in multi-dimensional array

Robert Kern robert.kern at gmail.com
Tue Nov 13 17:36:30 EST 2007


Bryan.Fodness at gmail.com wrote:
> from numpy import *
> 
> a = zeros((2,40), int)
> 
> fields = {}
> field = 10
> fields[field] = '30A', 5
> 
> iy = int(fields[field][1])
> ix = int(fields[field][0].rstrip('AB'))
> 
> for i in range(2):
>   for j in range(iy):
> #        put(a,[39 - j],[1])         #1d
> 
> Can someone help me figure out how I would do it for multiple rows?

numpy questions are best asked on the numpy mailing list.

  http://www.scipy.org/Mailing_Lists

> I thought,
> 
>        put(a,[i][39-j],[1])
> 
> but,
> 
> Traceback (most recent call last):
>   put(a,[i][39 - j],[1])
> IndexError: list index out of range

In this case, you don't really want put(). Just use indexing:

for i in range(2):
    for j in range(iy):
        a[i,39-j] = 1

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco




More information about the Python-list mailing list