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

如何用Numpy实现矩阵横向拼接(非展平式合并)

实现矩阵按列横向拼接的方法

要实现将两个同行数的矩阵按每行对应拼接成宽矩阵的需求,直接使用np.hstack()或np.concatenate()指定轴参数即可,无需展平数组。

示例代码

import numpy as np

# 定义原始矩阵
A = np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])

B = np.array([[10,11,12],
              [13,14,15],
              [16,17,18]])

# 方法1:使用hstack横向拼接
Z = np.hstack((A, B))

# 方法2:使用concatenate指定axis=1(列维度)
Z = np.concatenate((A, B), axis=1)

输出结果

print(Z)
# 输出:
# [[ 1  2  3 10 11 12]
#  [ 4  5  6 13 14 15]
#  [ 7  8  9 16 17 18]]

原理说明

  • np.ravel()和np.reshape()会先将数组完全展平为一维,再重新排列,这会破坏原矩阵的行结构,导致错误的拼接结果。
  • np.hstack()本质是对np.concatenate()的封装,专门用于横向(列方向)拼接数组;np.concatenate()通过指定axis参数,可以灵活控制拼接的维度:
    • axis=1表示在列维度拼接(适用于二维矩阵)
    • 对于更高维度的数组,只需将axis设置为需要拼接的维度序号即可,前提是除拼接轴外,其他维度的形状完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:35:17