quickly looping over a 2D array?

Martin mdekauwe at gmail.com
Mon Jul 27 08:27:11 EDT 2009


On Jul 27, 12:42 pm, Peter Otten <__pete... at web.de> wrote:
> Martin wrote:
> > I am new to python and I was wondering if there was a way to speed up
> > the way I index 2D arrays when I need to check two arrays
> > simultaneously? My current implementations is (using numpy) something
> > like the following...
>
> > for i in range(numrows):
> >     for j in range(numcols):
>
> >         if array_1[i, j] == some_value or array_2[i, j] >= array_1[i,
> > j] * some_other_value
> >             array_1[i, j] = some_new_value
>
> array_1[(array_1 == some_value) | (array_2 >= array_1 * some_other_value)] =
> some_new_value
>
> maybe?

So I tried...

band_1[(array_1 == 255) or (array_2 >= array_1 * factor)] = 0

which led to

ValueError: The truth value of an array with more than one element is
ambiguous. Use a.any() or a.all()

so not sure that works?



More information about the Python-list mailing list