You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Numpy中重复数组行并维持指定顺序?

解决NumPy数组重复顺序问题

嘿,我来帮你搞定这个数组重复顺序的问题~你现在用np.repeat()得到的结果是每一行连续重复3次,但想要的是整个原数组作为一个单元循环重复,对吧?

最简洁的解决方案:用np.tile()

np.tile()就是专门干这个的——它会把整个数组当作一个整体来重复,完全符合你的需求。代码改成这样就行:

import numpy as np
arr = np.array([[1,2],[3,4]])
rpt = np.tile(arr, reps=(3, 1))

这里的reps=(3, 1)参数意思是:沿着行方向(axis=0)重复3次,列方向(axis=1)保持原样不重复。运行后得到的结果就是你想要的:

[[1,2],[3,4],[1,2],[3,4],[1,2],[3,4]]

为什么原来的np.repeat()不行?

你之前的代码np.repeat(arr, repeats=3, axis=0)是对数组的每一行单独重复——也就是先把第一行[1,2]重复3次,再把第二行[3,4]重复3次,所以才会出现连续的同一行。

非要用np.repeat()的替代写法(不推荐)

如果一定要用np.repeat()实现,也可以先给原数组加一个维度,重复后再展平,不过这种写法就绕远路了:

import numpy as np
arr = np.array([[1,2],[3,4]])
rpt = np.repeat(arr[np.newaxis, :, :], repeats=3, axis=0).reshape(-1, 2)

还是推荐用np.tile(),更直观也更高效~

内容的提问来源于stack exchange,提问作者rpb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 15:42:48