【发布时间】:2020-05-21 23:25:52
【问题描述】:
哪种方法更快?好像他们不是一样的吗?
start = time.time()
arr = np.array([1,2,3,4,5,6,7,8,9,0,12])
total_price = np.sum(arr[arr < 7])* 2.14
print(total_price)
print('Duration: {} seconds'.format(time.time() - start))
start = time.time()
arr = np.array([1,2,3,4,5,6,7,8,9,0,12])
total_price = (arr[arr<7]).sum()* 2.14
print(total_price)
print('Duration: {} seconds'.format(time.time() - start))
在一次又一次地运行代码时,它们都会给出不同的结果执行时间。前一种方法有时更快,有时更晚。
【问题讨论】:
-
-
可能 numpy 更快,但既然你已经有了代码,运行它很多次,看看哪个更快。动手实验将给出最终答案。
-
如果您要进行基准测试,请不要在正在计时的代码中包含
print。并了解timeit。 -
差异应该可以忽略。如果类型已知,我更喜欢
arr.sum()。如果类型不支持sum,我猜np.sum是更通用的方法。 -
@MarkRansom 或者甚至更好地使用 cProfile(或 %prun):P 如果你真的想了解它的细节
标签: python numpy sum time-complexity space-complexity