a numarray question

avharut at gmail.com avharut at gmail.com
Wed Feb 15 06:42:30 EST 2006


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 =)




More information about the Python-list mailing list