在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)
可以看到,第三种方法耗时最少。