默认情况下,numpy 是行主要的。\n因此,以下结果对我来说是自然接受的。
\n\na = np.random.rand(5000, 5000)\n\n%timeit a[0,:].sum()\n3.57 \xc2\xb5s \xc2\xb1 13.9 ns per loop (mean \xc2\xb1 std. dev. of 7 runs, 100000 loops each)\n\n%timeit a[:,0].sum()\n38.8 \xc2\xb5s \xc2\xb1 8.19 ns per loop (mean \xc2\xb1 std. dev. of 7 runs, 10000 loops each)\nRun Code Online (Sandbox Code Playgroud)\n\n因为是行主序,自然是通过[0,:]来计算更快。\n但是,如果使用numpy sum函数,结果就不一样了。
\n\n%timeit a.sum(axis=0)\n16.9 ms \xc2\xb1 13.5 \xc2\xb5s per loop (mean \xc2\xb1 std. dev. of 7 runs, 100 loops each)\n\n%timeit a.sum(axis=1)\n29.5 ms \xc2\xb1 90.3 \xc2\xb5s per loop (mean \xc2\xb1 std. dev. of 7 runs, 10 loops each)\n …Run Code Online (Sandbox Code Playgroud)