[Numpy-discussion] Numpy Array filling

Keith Goodman kwgoodman@gmail....
Thu Jul 3 09:17:02 CDT 2008


On Thu, Jul 3, 2008 at 6:57 AM, Brain Stormer <brnstrmrs@gmail.com> wrote:
> I am using numpy to create an array then filling some of the values using a
> for loop, I was wondering if there is way to easily fill the values without
> iterating through sort of like "array.fill[start:stop,start
> :stop]"?  The reason for my question is, in some cases, I might have to fill
> hundreds (within a 10,000x10,000 matrix) of values and I am not sure if
> iteration is the right way to go.
>
> Code:
> from numpy import *
> x, y = 5, 5
> matrix = zeros((y,x), int)
> print matrix
> fillxstart, fillystart = 1,1
> fillxstop,fillystop = 4, 4
> for i in range(fillystart,fillystop,1):
>     for j in range(fillxstart,fillxstop,1):
>         matrix[i,j] = 1
> print matrix
>
> Output before filling:
> [[0 0 0 0 0]
>  [0 0 0 0 0]
>  [0 0 0 0 0]
>  [0 0 0 0 0]
>  [0 0 0 0 0]]
> Output after filling:
> [[0 0 0 0 0]
>  [0 1 1 1 0]
>  [0 1 1 1 0]
>  [0 1 1 1 0]
>  [0 0 0 0 0]]

>> matrix[fillxstart:fillxstop, fillystart:fillystop] = 1
>> matrix

array([[0, 0, 0, 0, 0],
       [0, 1, 1, 1, 0],
       [0, 1, 1, 1, 0],
       [0, 1, 1, 1, 0],
       [0, 0, 0, 0, 0]])


More information about the Numpy-discussion mailing list