LINUX.ORG.RU

История изменений

Исправление 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()

замена арифметики на питоне вызовом сишного кода - это провал.

вообще это шизофазия какая-то, почему провал-то? исходный код пишется на полноценном идиоматичном питоне (что и выражает самую суть понятия «пишем на таком-то языке» ), высокоуровнево и быстро, какая хрен разница что там вызывается? а если не сишка то уже не провал?