numpy 广播的reshape、 np.newaxis 和 None 速度对比

在numpy的广播当中,我们需要将arr的维度增加并且增加的维度长度为1,一共有三种方法。
举例说明:

arr = np.arange(1000)

我们要将arr的变成1000行、1列的2维数组。
第一种方法: reshape((1000, 1))

arr = np.arange(1000)
timeit b.reshape((1000,1))
# 280 ns ± 5.62 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

第二种方法: arr[:, np.newaxis]


timeit arr[:, np.newaxis]
# 239 ns ± 7.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

第三种方法:arr[:, None]

timeit b[:, None]
# 190 ns ± 1.09 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

可以看到,第三种方法耗时最少。

上一篇:IOS关于录音,播放实现总结


下一篇:UVa 10559 Blocks (DP)