Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   NumPy Question - numpy.put in multi-dimensional array (http://www.velocityreviews.com/forums/t551702-numpy-question-numpy-put-in-multi-dimensional-array.html)

 Bryan.Fodness@gmail.com 11-13-2007 07:22 PM

NumPy Question - numpy.put in multi-dimensional array

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?

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

 davisn90210@gmail.com 11-13-2007 10:23 PM

Re: NumPy Question - numpy.put in multi-dimensional array

On Nov 13, 1:22 pm, "Bryan.Fodn...@gmail.com"
<Bryan.Fodn...@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?
>
> 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

Try
put(a, [(i, 39-j)], [1]
Note, however, that in this case you could just as easily use
a[i, 39-j] = 1
instead.

--Nathan Davis

 Robert Kern 11-13-2007 10:36 PM

Re: NumPy Question - numpy.put in multi-dimensional array

Bryan.Fodness@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

 All times are GMT. The time now is 05:56 AM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.