import timeit
import random
import numpy as np
def cost(actual_outputs, desired_outputs):
# actual_outputs and desired outputs are numpy arrays
costs = [(actual_output - desired_output) ** 2 for actual_output, desired_output in zip(actual_outputs, desired_outputs)]
return sum(costs)
def cost2(actual_outputs,desired_outputs):
return ((actual_outputs-desired_outputs)**2).sum()
actual = [random.random() for _ in range(1000)]
desired = [random.random() for _ in range(1000)]
actual2 = np.array(actual)
desired2 = np.array(desired)
if __name__ == "__main__":
print(timeit.timeit('cost(actual,desired)','from __main__ import cost,actual,desired',number=10))
# 0.00271458847557
print(timeit.timeit('cost2(actual2,desired2)','from __main__ import cost2,actual2,desired2',number=10))
# 0.000187942916669
выглядит быстрее ... при условии, что это уже массив numpy ... вероятно, потребуется больше времени, если вам придется преобразовать его в массив numpy
чем больше размер списка, тем больше ваша прибыльбудет