thanks guys! ------------ import timeit first_way = "the_array[the_array == 0] = 5.0" second_way = "another_array = numarray.choose(the_array == 0, (the_array, 5.0))" some_third_way = """\ indx = numarray.where(the_array == 0)[0] another_array = numarray.put(the_array, indx, len(indx) * [5.0,]) """ initial_statements = 'import numarray; the_array = numarray.array(int(1.0e6) * [1.0, 0.0])' t1 = timeit.Timer(first_way, initial_statements) t2 = timeit.Timer(second_way, initial_statements) t3 = timeit.Timer(some_third_way, initial_statements) print '1st way takes', round(t1.timeit(number=100) / 100, 4), 'seconds\n',\ '2nd way takes', round(t2.timeit(number=100) / 100, 4), 'seconds\n',\ '3rd way takes', round(t3.timeit(number=100) / 100, 4), 'seconds' ------------
the above written stuff printed like: 1st way takes 0.0624 seconds 2nd way takes 0.0948 seconds 3rd way takes 0.0641 seconds no any other idea on how else one might do the replacement and the difference among those three seems to be not very big, well, i expected something bigger. p.s. gonna use the first way =) -- http://mail.python.org/mailman/listinfo/python-list