Verimli kodlama ihtiyacı I

pandas ile Verimli Kod Yazma

Leonidas Souliotis

PhD Researcher

Zamanı nasıl ölçeriz?

time.time(): 1 Ocak 1970, 00:00’dan bu yana geçen saniyeyi döndürür

import time

# record time before execution start_time = time.time()
# execute operation result = 5 + 2
# record time after execution end_time = time.time()
print("Result calculated in {} sec".format(end_time - start_time))
Sonuç 9.48905944824e-05 sn’de hesaplandı
pandas ile Verimli Kod Yazma

For döngüsü vs Liste kavrayışı

  • Liste kavrayışı:
    list_comp_start_time = time.time()
    result = [i*i for i in range(0,1000000)]
    list_comp_end_time = time.time()
    print("Time using the list_comprehension: {} sec".format(list_comp_end_time - 
    list_comp_start_time))
    
  • For döngüsü:
    for_loop_start_time= time.time()
    result=[]
    for i in range(0,1000000):
      result.append(i*i)
    for_loop_end_time= time.time()
    print("Time using the for loop: {} sec".format(for_loop_end_time - for_loop_start_time))
    
pandas ile Verimli Kod Yazma

For döngüsü vs Liste kavrayışı II

Liste kavrayışı süresi: 0.11042404174804688 sn

For döngüsü süresi: 0.2071230411529541 sn
list_comp_time = list_comp_end_time - list_comp_start_time
for_loop_time = for_loop_end_time - for_loop_start_time
print("Difference in time: {} %".format((for_loop_time - list_comp_time)/
list_comp_time*100))
Zaman farkı: %87.55527367398622
pandas ile Verimli Kod Yazma

Zamanın önemli olduğu yerler I

$1+2+...+1000000$ hesaplayın.

  • Sayıları tek tek toplayarak:
def sum_brute_force(N):
    res = 0
    for i in range(1,N+1):
        res+=i
    return res
  • $\footnotesize 1 + 2 +... + N = \dfrac{N\cdot(N+1)}{2}$ formülüyle
def sum_formula(N):
    return N*(N+1)/2
pandas ile Verimli Kod Yazma

Zamanın önemli olduğu yerler II

  • Formülü kullanarak:
# Using the formula
formula_start_time = time.time()
formula_result = formula(1000000)
formula_end_time = time.time()

print("Time using the formula: {} 
sec".format(formula_end_time - formula_start_time))
Formülü kullanarak: 0.000108957290649 sn
  • Kaba kuvvet kullanarak:
# Using brute force
bf_start_time = time.time()
bf_result = sum_brute_force(1000000)
bf_end_time = time.time()

print("Time using brute force: {} 
sec".format(bf_end_time - start_time))
Kaba kuvvet süresi: 0.174870967865 sn
Hız farkı: %160.394,967179
pandas ile Verimli Kod Yazma

Haydi yapalım!

pandas ile Verimli Kod Yazma

Preparing Video For Download...