История изменений
Исправление zurg, (текущая версия) :
да легко, про что тоже намекали
import numpy as np
import imageio as iio
import time
from numba import jit
@jit
def img_fun(img):
total = 0
h, w, n = img.shape
for i in range(h):
for j in range(w):
r = img[i, j, 0]
g = img[i, j, 1]
b = img[i, j, 2]
total += r + g + b
return total / ( h * w)
def main():
img = iio.v3.imread('cheatsheet-rust.png')
t1 = time.process_time()
average = img_fun(img)
t2 = time.process_time()
print(f"CPU time: {t2 - t1:.2f} seconds")
print(f"Average bit per pixel: {average:.2f}")
print()
main()
замена арифметики на питоне вызовом сишного кода - это провал.
вообще это шизофазия какая-то, почему провал то? исходный код пишется на полноценном идиоматичном питоне (что и выражает самую суть понятия «пишем на таком-то языке» ), высокоуровнево и быстро, какая хрен разница что там вызывается? а если не сишка - то уже не провал?
Исправление zurg, :
да легко, про что тоже намекали
import numpy as np
import imageio as iio
import time
from numba import jit
@jit
def img_fun(img):
total = 0
h, w, n = img.shape
for i in range(h):
for j in range(w):
r = img[i, j, 0]
g = img[i, j, 1]
b = img[i, j, 2]
total += r + g + b
return total / ( h * w)
def main():
img = iio.v3.imread('cheatsheet-rust.png')
t1 = time.process_time()
average = img_fun(img)
t2 = time.process_time()
print(f"CPU time: {t2 - t1:.2f} seconds")
print(f"Average bit per pixel: {average:.2f}")
print()
main()
замена арифметики на питоне вызовом сишного кода - это провал.
вообще это шизофазия какая-то, почему провал то? исходный код пишется на полноценном идиоматичном питоне (что и выражает самую суть понятия «пишем на таком-то языке» ), высокоуровнево и быстро, какая хрен разница что там вызывается? а если не сишка то уже не провал?
Исходная версия zurg, :
да легко, про что тоже намекали
import numpy as np
import imageio as iio
import time
from numba import jit
@jit
def img_fun(img):
total = 0
h, w, n = img.shape
for i in range(h):
for j in range(w):
r = img[i, j, 0]
g = img[i, j, 1]
b = img[i, j, 2]
total += r + g + b
return total / ( h * w)
def main():
img = iio.v3.imread('cheatsheet-rust.png')
t1 = time.process_time()
average = img_fun(img)
t2 = time.process_time()
print(f"CPU time: {t2 - t1:.2f} seconds")
print(f"Average bit per pixel: {average:.2f}")
print()
main()
замена арифметики на питоне вызовом сишного кода - это провал.
вообще это шизофазия какая-то, почему провал-то? исходный код пишется на полноценном идиоматичном питоне (что и выражает самую суть понятия «пишем на таком-то языке» ), высокоуровнево и быстро, какая хрен разница что там вызывается? а если не сишка то уже не провал?