python - 重复二维数组的行
问题描述
我有一个 numpy 数组,我想重复它 n 次,同时保留行的原始顺序:
>>>a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
所需输出(对于 n =2):
>>>a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
我找到了一个 np.repeat 函数,但是,它不保留列的原始顺序。是否有任何其他内置函数或技巧可以在保留顺序的同时重复数组?
解决方案
使用np.repeat
,后跟np.concatenate
:
np.concatenate(np.repeat(a[None, :], n, axis=0), axis=0)
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
另一种选择是使用np.broadcast_to
:
np.broadcast_to(a, (n, *a.shape)).reshape(-1, a.shape[1])
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
推荐阅读
- file - 写入大约 2 GB Vertx 的文件时出现内存不足错误
- javascript - 通过数组元素的Javascript滑块
- python - 创建vectors.dense和sparse.dense,它们是一样的吗?
- php - LaratrustSeeder 类不存在
- botframework - MS Teams submitTask 无法在 IOS Teams 应用程序中提交给机器人
- html - 我的图像(在 div 下标记)无法并排坐在同一行
- ios - 如何添加像模态视图(iOS)这样的联系人应用程序?
- javascript - 使用 React 功能组件时如何防止重新渲染
- blockchain - 区块链上存在比特币地址
- filesystemwatcher - C# fileSystemWatcher,将文件名添加到列表框问题