quickly looping over a 2D array?
__peter__ at web.de
Mon Jul 27 14:46:54 CEST 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
> 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?
Copy and paste -- or replace "or" with "|".
More information about the Python-list