diff --git a/2022.03.06_numba_time/numba_time.py b/2022.03.06_numba_time/numba_time.py index c23c5a8..7d1b651 100644 --- a/2022.03.06_numba_time/numba_time.py +++ b/2022.03.06_numba_time/numba_time.py @@ -1,5 +1,5 @@ -import numpy as np from numba import jit +import numpy as np import time def for_sum(numpy_array): @@ -15,28 +15,28 @@ def numba_for_sum(numpy_array): sum += number return sum -numpy_array = np.arange(0,1e8,1) +numpy_array = np.arange(0,2e8,1) start = time.time() result = sum(numpy_array) end = time.time() print('\nresult:', result) -print('python中sum()函数求和时间:\n', end - start) +print('python中sum()函数求和时间:', end - start) start = time.time() result = np.sum(numpy_array) end = time.time() print('\nresult:', result) -print('numpy.sum()函数求和时间:\n', end - start) +print('numpy.sum()函数求和时间:', end - start) start = time.time() result = for_sum(numpy_array) end = time.time() print('\nresult:', result) -print('for循环求和numpy数组的时间:\n', end - start) +print('for循环求和numpy数组的时间:', end - start) start = time.time() result = numba_for_sum(numpy_array) end = time.time() print('\nresult:', result) -print('numba加速for循环求和numpy数组的时间:\n', end - start, '\n') \ No newline at end of file +print('numba加速for循环求和numpy数组的时间:', end - start, '\n') \ 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_with_parameters.py new file mode 100644 index 0000000..92f7108 --- /dev/null +++ b/2022.03.06_numba_time/numba_time_with_parameters.py @@ -0,0 +1,57 @@ +from numba import jit +from numba import prange +import time +import numpy as np + +def for_sum(numpy_array): + sum = 0 + for number in numpy_array: + sum += number + return sum + +@jit +def numba_for_sum_1(numpy_array): + sum = 0 + for number in numpy_array: + sum += number + return sum + +@jit(nopython=True) +def numba_for_sum_2(numpy_array): + sum = 0 + for number in numpy_array: + sum += number + return sum + +@jit(nopython=True, parallel=True) +def numba_for_sum_3(numpy_array): + sum = 0 + for i in prange(len(numpy_array)): + sum += numpy_array[i] + return sum + +numpy_array = np.arange(0,1e9,1) + +start = time.time() +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) +end = time.time() +print('\nresult:', result) +print('@jit时间:', end - start, '\n') + +start = time.time() +result = numba_for_sum_2(numpy_array) +end = time.time() +print('\nresult:', result) +print('@jit(nopython=True)时间:', end - start, '\n') + +start = time.time() +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