我正在将 numpy 数组就地操作与常规操作进行比较。这是我所做的(Python 3.7.3 版):
a1, a2 = np.random.random((10,10)), np.random.random((10,10))
Run Code Online (Sandbox Code Playgroud)
为了进行比较:
def func1(a1, a2):
a1 = a1 + a2
def func2(a1, a2):
a1 += a2
%timeit func1(a1, a2)
%timeit func2(a1, a2)
Run Code Online (Sandbox Code Playgroud)
因为就地操作避免了为每个循环分配内存。我期望func1比func2.
但是我得到了这个:
In [10]: %timeit func1(a1, a2)
595 ns ± 14.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [11]: %timeit func2(a1, a2)
1.38 µs ± 7.87 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops …Run Code Online (Sandbox Code Playgroud)