update
This commit is contained in:
parent
7635346f96
commit
90d2b600e4
@ -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')
|
|
78
2022.03.06_numba_time/numba_time_1.py
Normal file
78
2022.03.06_numba_time/numba_time_1.py
Normal file
@ -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)
|
@ -3,6 +3,9 @@ from numba import prange
|
|||||||
import time
|
import time
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
numpy_array = np.arange(0,1e5,1)
|
||||||
|
times = 1000
|
||||||
|
|
||||||
def for_sum(numpy_array):
|
def for_sum(numpy_array):
|
||||||
sum = 0
|
sum = 0
|
||||||
for number in numpy_array:
|
for number in numpy_array:
|
||||||
@ -30,28 +33,26 @@ def numba_for_sum_3(numpy_array):
|
|||||||
sum += numpy_array[i]
|
sum += numpy_array[i]
|
||||||
return sum
|
return sum
|
||||||
|
|
||||||
numpy_array = np.arange(0,1e9,1)
|
|
||||||
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
for _ in range(times):
|
||||||
result = for_sum(numpy_array)
|
result = for_sum(numpy_array)
|
||||||
end = time.time()
|
end = time.time()
|
||||||
print('\nresult:', result)
|
|
||||||
print('for循环时间:', end - start)
|
print('for循环时间:', end - start)
|
||||||
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
for _ in range(times):
|
||||||
result = numba_for_sum_1(numpy_array)
|
result = numba_for_sum_1(numpy_array)
|
||||||
end = time.time()
|
end = time.time()
|
||||||
print('\nresult:', result)
|
print('@jit时间:', end - start)
|
||||||
print('@jit时间:', end - start, '\n')
|
|
||||||
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
for _ in range(times):
|
||||||
result = numba_for_sum_2(numpy_array)
|
result = numba_for_sum_2(numpy_array)
|
||||||
end = time.time()
|
end = time.time()
|
||||||
print('\nresult:', result)
|
print('@jit(nopython=True)时间:', end - start)
|
||||||
print('@jit(nopython=True)时间:', end - start, '\n')
|
|
||||||
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
|
for _ in range(times):
|
||||||
result = numba_for_sum_3(numpy_array)
|
result = numba_for_sum_3(numpy_array)
|
||||||
end = time.time()
|
end = time.time()
|
||||||
print('\nresult:', result)
|
print('@jit(nopython=True, parallel=True)时间:', end - start)
|
||||||
print('@jit(nopython=True, parallel=True)时间:', end - start, '\n')
|
|
Loading…
x
Reference in New Issue
Block a user