一维数组拼接的四种方式:
- np.r_[a, a],
- np.stack([a, a]).reshape(-1),
- 底层会调用 np.concatenate
- np.hstack([a, a]),
- 底层会调用 np.concatenate
- np.concatenate([a, a])
- 默认轴 axis 为 0
其中 np.concatenate 的性能最高。
使用第三方库 perfplot 性能测试如下:
import numpy
import perfplot
perfplot.show(
setup=lambda n: numpy.random.rand(n),
kernels=[
lambda a: numpy.r_[a, a],
lambda a: numpy.stack([a, a]).reshape(-1),
lambda a: numpy.hstack([a, a]),
lambda a: numpy.concatenate([a, a])
],
labels=['r_', 'stack+reshape', 'hstack', 'concatenate'],
n_range=[2**k for k in range(19)],
xlabel='len(a)',
logx=True,
logy=True,
)
本文介绍了四种一维数组拼接的方法:np.r_、np.stack+reshape、np.hstack及np.concatenate,并通过perfplot库进行了性能对比测试。结果显示np.concatenate性能最佳。
1449

被折叠的 条评论
为什么被折叠?



