为什么 numpy 函数的组合比 np.mean 更快?

Kev*_*ten 7 python numpy mean

我想知道 numpy 中平均计算最快的方法是什么。我使用以下代码进行实验:

import time
n = 10000
p = np.array([1] * 1000000)

t1 = time.time()
for x in range(n):
    np.divide(np.sum(p), p.size)
t2 = time.time()

print(t2-t1)
Run Code Online (Sandbox Code Playgroud)

3.9222593307495117

t3 = time.time()
for x in range(n):
    np.mean(p)
t4 = time.time()

print(t4-t3)
Run Code Online (Sandbox Code Playgroud)

5.271147012710571

我认为 np.mean 会更快或至少在速度上相当,但是看起来 numpy 函数的组合比 np.mean 更快。为什么numpy函数的组合速度更快?

use*_*ica 9

对于整数输入,默认情况下numpy.mean以 float64 dtype 计算总和。这可以防止溢出错误,但需要对每个元素进行转换。

numpy.sum在计算总和后,您的代码仅转换一次。

  • @KevinvanderGugten:一种方法是设置`p2 = p.astype('float64')`,然后尝试使用`p2`的计时。(确保将转换放在计时代码之外。) (2认同)