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

如何重复拼接NumPy数组?空数组与同尺寸数组顺序拼接方法

嘿,我来帮你搞定这两个NumPy数组拼接的问题!

一、重复拼接NumPy数组

NumPy里有两个常用函数来实现重复拼接,它们的适用场景不太一样,咱们分别拆解:

1. np.tile():以整个数组为单元重复

这个函数会把整个数组当作一个“块”来复制重复,适合你需要把数组整体多份复用的场景。比如你有一个2行3列的数组,想让它垂直方向重复2次、水平方向重复3次:

import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
# 第二个参数是重复次数的元组:(行重复次数, 列重复次数)
tiled_arr = np.tile(arr, (2, 3))
print(tiled_arr)

输出结果:

[[1 2 3 1 2 3 1 2 3]
[4 5 6 4 5 6 4 5 6]
[1 2 3 1 2 3 1 2 3]
[4 5 6 4 5 6 4 5 6]]

2. np.repeat():元素级别的重复

如果你需要让数组里的每个元素单独重复,就用这个函数。它支持指定轴方向,避免数组被扁平化:

# 沿行方向(axis=0),每个元素重复2次
repeated_row = np.repeat(arr, 2, axis=0)
print(repeated_row)
# 输出:[[1 2 3] [1 2 3] [4 5 6] [4 5 6]]

# 沿列方向(axis=1),每个元素重复3次
repeated_col = np.repeat(arr, 3, axis=1)
print(repeated_col)
# 输出:[[1 1 1 2 2 2 3 3 3] [4 4 4 5 5 5 6 6 6]]

要是不指定axis参数,数组会先被扁平化再重复,这点要留意哦~

二、依次拼接空数组与多个同尺寸数组

首先得确保空数组的形状和其他数组在拼接轴上兼容:比如垂直拼接(上下拼)时,所有数组的列数必须一致;水平拼接(左右拼)时,行数必须一致。

咱们以垂直拼接为例,具体步骤如下:

import numpy as np
# 创建0行3列的空数组(和后面的2行3列数组列数匹配,作为拼接起点)
final_array = np.empty((0, 3))

# 准备三个同尺寸的目标数组
array_1 = np.array([[1,2,3],[4,5,6]])
array_2 = np.array([[7,8,9],[10,11,12]])
array_3 = np.array([[13,14,15],[16,17,18]])

# 依次拼接,每次更新final_array
final_array = np.concatenate([final_array, array_1], axis=0)
final_array = np.concatenate([final_array, array_2], axis=0)
final_array = np.concatenate([final_array, array_3], axis=0)

print(final_array)

也可以用更简洁的np.vstack()(垂直拼接)或np.hstack()(水平拼接)替代np.concatenate,比如:

final_array = np.vstack([final_array, array_1])

小提醒:

  • 如果是水平拼接,空数组要改成np.empty((2, 0))(2行0列),保证行数和其他数组一致;
  • 别用np.zeros()误创建带初始值的数组,用np.empty((0, n))作为拼接起点更合适,它只是占位,不会引入多余的初始值干扰结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:30:24