Сложность использования модуля Timeit

count = 10, 100, 1000, 10000

для каждого значения count мне нужно выполнить метод 5 раз, используя timeit, и распечатать минимальное значение и фактические 5 значений.

numstring содержит четыре функции.

вывод должен выглядеть так (всего 16 строк):

числа_строка1, количество = 10, минимум = 0,0001, фактические значения = [0,0001, 0,0002, 0,0001, ...]

числа_строка1, количество = 100, минимум = 0,002, фактические значения = [0,002, 0,002, 0,003, ...]

....

number_string4, количество = 10000, минимум = 0,1, фактическое значение = [....]

Для этого я пробовал следующим образом:

Мой код:

from numstring import *
import timeit

def profile_timeit():
    funcs_list = [numbers_string1, numbers_string2, numbers_string3, num_strings4]
    for i in funcs_list:
        for count in [10, 100, 1000, 10000]:
            actuals = timeit.timeit(stmt='i(count)', number=4, setup='from __main__ import *')
            print "{0} count = {1} \t min = {2} \t actuals = {3}".format(i, count, min(actuals), actuals)
        print "\n"
if __name__ == "__main__":
    profile_timeit()

может кто-нибудь, пожалуйста, помогите мне. заранее спасибо


person coderusher    schedule 28.02.2014    source источник


Ответы (1)


не могли бы вы попробовать это ....

from numstring import *
import timeit
def profile_timeit():
    funcs = [numbers_string1,numbers_string2,numbers_string3,num_strings4]
    count = [10,100,1000,10000]
    for func in funcs:
        for cnt in count:
            for i in xrange(5):
                t=timeit.Timer(stmt = "%s(%d)"%(func.__name__, cnt), setup = "from __main__ import %s"%(func.__name__, ))
                tms = t.repeat(repeat=5, number=1)
            print "%s, count = %d, min = %s , actuals = %s" % (func.__name__, cnt, min(tms), tms)
    pass

подскажите это нормально или нет?

person user3397770    schedule 09.03.2014
comment
привет Абдулла вы можете объяснить мне, как сделать проект? - person user3397770; 16.03.2014