diff --git a/2022.03.06_numba_time/numba_time.py b/2022.03.06_numba_time/numba_time.py deleted file mode 100644 index 7d1b651..0000000 --- a/2022.03.06_numba_time/numba_time.py +++ /dev/null @@ -1,42 +0,0 @@ -from numba import jit -import numpy as np -import time - -def for_sum(numpy_array): - sum = 0 - for number in numpy_array: - sum += number - return sum - -@jit -def numba_for_sum(numpy_array): - sum = 0 - for number in numpy_array: - sum += number - return sum - -numpy_array = np.arange(0,2e8,1) - -start = time.time() -result = sum(numpy_array) -end = time.time() -print('\nresult:', result) -print('python中sum()函数求和时间:', end - start) - -start = time.time() -result = np.sum(numpy_array) -end = time.time() -print('\nresult:', result) -print('numpy.sum()函数求和时间:', end - start) - -start = time.time() -result = for_sum(numpy_array) -end = time.time() -print('\nresult:', result) -print('for循环求和numpy数组的时间:', end - start) - -start = time.time() -result = numba_for_sum(numpy_array) -end = time.time() -print('\nresult:', result) -print('numba加速for循环求和numpy数组的时间:', end - start, '\n') \ No newline at end of file diff --git a/2022.03.06_numba_time/numba_time_1.py b/2022.03.06_numba_time/numba_time_1.py new file mode 100644 index 0000000..7e9bb65 --- /dev/null +++ b/2022.03.06_numba_time/numba_time_1.py @@ -0,0 +1,78 @@ +from numba import jit +import numpy as np +import time + +numpy_array = np.arange(0,1e5,1) +times = 1000 + +def for_sum(numpy_array): + sum = 0 + for number in numpy_array: + sum += number + return sum + +start = time.time() +for _ in range(times): + result = for_sum(numpy_array) +end = time.time() +print('for循环求和时间:', end - start) + +start = time.time() +for _ in range(times): + result = sum(numpy_array) +end = time.time() +print('sum()函数求和时间:', end - start) + +start = time.time() +for _ in range(times): + result = np.sum(numpy_array) +end = time.time() +print('numpy.sum()函数求和时间:', end - start) + +print() + +@jit +def numba_for_sum(numpy_array): + sum = 0 + for number in numpy_array: + sum += number + return sum + +@jit +def numba_np_sum(numpy_array): + result = np.sum(numpy_array) + return result + +@jit(nopython=True) +def numba_nopython_np_sum(numpy_array): + result = np.sum(numpy_array) + return result + +@jit(nopython=True, parallel=True) +def numba_nopython_parallel_np_sum(numpy_array): + result = np.sum(numpy_array) + return result + +start = time.time() +for _ in range(times): + result = numba_for_sum(numpy_array) +end = time.time() +print('numba + for循环求和时间:', end - start) + +start = time.time() +for _ in range(times): + result = numba_np_sum(numpy_array) +end = time.time() +print('numba + numpy.sum()函数求和时间:', end - start) + +start = time.time() +for _ in range(times): + result = numba_nopython_np_sum(numpy_array) +end = time.time() +print('numba(nopython) + numpy.sum()函数求和时间:', end - start) + +start = time.time() +for _ in range(times): + result = numba_nopython_parallel_np_sum(numpy_array) +end = time.time() +print('numba(nopython,parallel) + numpy.sum()函数求和时间:', end - start) \ No newline at end of file diff --git a/2022.03.06_numba_time/numba_time_with_parameters.py b/2022.03.06_numba_time/numba_time_2.py similarity index 68% rename from 2022.03.06_numba_time/numba_time_with_parameters.py rename to 2022.03.06_numba_time/numba_time_2.py index 92f7108..a44712a 100644 --- a/2022.03.06_numba_time/numba_time_with_parameters.py +++ b/2022.03.06_numba_time/numba_time_2.py @@ -3,6 +3,9 @@ from numba import prange import time import numpy as np +numpy_array = np.arange(0,1e5,1) +times = 1000 + def for_sum(numpy_array): sum = 0 for number in numpy_array: @@ -30,28 +33,26 @@ def numba_for_sum_3(numpy_array): sum += numpy_array[i] return sum -numpy_array = np.arange(0,1e9,1) - start = time.time() -result = for_sum(numpy_array) +for _ in range(times): + result = for_sum(numpy_array) end = time.time() -print('\nresult:', result) print('for循环时间:', end - start) start = time.time() -result = numba_for_sum_1(numpy_array) +for _ in range(times): + result = numba_for_sum_1(numpy_array) end = time.time() -print('\nresult:', result) -print('@jit时间:', end - start, '\n') +print('@jit时间:', end - start) start = time.time() -result = numba_for_sum_2(numpy_array) +for _ in range(times): + result = numba_for_sum_2(numpy_array) end = time.time() -print('\nresult:', result) -print('@jit(nopython=True)时间:', end - start, '\n') +print('@jit(nopython=True)时间:', end - start) start = time.time() -result = numba_for_sum_3(numpy_array) +for _ in range(times): + result = numba_for_sum_3(numpy_array) end = time.time() -print('\nresult:', result) -print('@jit(nopython=True, parallel=True)时间:', end - start, '\n') \ No newline at end of file +print('@jit(nopython=True, parallel=True)时间:', end - start) \ No newline at end of file