This commit is contained in:
guanjihuan 2025-03-10 15:52:38 +08:00
parent 4ea5c623cb
commit cc7c4200f5
2 changed files with 63 additions and 6 deletions

View File

@ -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')
print('numba加速for循环求和numpy数组的时间', end - start, '\n')

View File

@ -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')