On Jul 27, 1:46 pm, Peter Otten <__pete...@web.de> wrote: > Martin wrote: > > On Jul 27, 12:42 pm, Peter Otten <__pete...@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? > > Copy and paste -- or replace "or" with "|".
apologies - I mistook that for a type for "or" I now get the following error... ValueError: shape mismatch: objects cannot be broadcast to a single shape -- http://mail.python.org/mailman/listinfo/python-list