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

如何在NumPy中将一维数组合并为二维数组?含多数组合并场景

NumPy一维数组合并为二维数组的实用方法

嘿,我来帮你搞定NumPy里数组合并的问题!下面分两种场景给你详细说明:

1. 将一维数组合并为二维数组

NumPy提供了好几种直观的方式实现这个需求,我给你列几个最常用的:

方法一:用np.vstack()垂直堆叠(按行合并)

这个方法会把每个一维数组直接作为二维数组的一行,非常适合需要行结构的场景:

import numpy as np

# 先创建两个一维数组
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 合并成二维数组
result = np.vstack([arr1, arr2])
print(result)
# 输出:
# [[1 2 3]
#  [4 5 6]]

方法二:用np.column_stack()水平堆叠(按列合并)

如果你想把一维数组作为二维数组的列,这个方法就很顺手:

result = np.column_stack([arr1, arr2])
print(result)
# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

方法三:直接用np.array()包裹数组列表

这是最简洁的按行合并方式,代码可读性拉满:

result = np.array([arr1, arr2])
print(result)
# 输出和vstack的结果完全一致

方法四:用np.concatenate()配合形状调整

这个方法灵活性最高,需要先把一维数组reshape成二维结构((1, -1)表示1行,列数自动计算),再指定合并轴:

# 按行合并(axis=0)
row_result = np.concatenate([arr1.reshape(1, -1), arr2.reshape(1, -1)], axis=0)
# 按列合并(axis=1)
col_result = np.concatenate([arr1.reshape(-1, 1), arr2.reshape(-1, 1)], axis=1)

2. 合并三个一维数组得到目标二维数组

逻辑和两个数组完全一致,只是把数组列表里的元素增加到三个就行。我举两个常见的目标场景例子:

场景一:将三个一维数组作为二维数组的行

假设你有三个一维数组:

arr_a = np.array([10, 20, 30])
arr_b = np.array([40, 50, 60])
arr_c = np.array([70, 80, 90])

要合并成3行3列的二维数组,用vstack或者直接np.array()都可以:

target = np.vstack([arr_a, arr_b, arr_c])
# 或者 target = np.array([arr_a, arr_b, arr_c])
print(target)
# 输出:
# [[10 20 30]
#  [40 50 60]
#  [70 80 90]]

场景二:将三个一维数组作为二维数组的列

如果目标是3列的二维数组,直接用column_stack:

target = np.column_stack([arr_a, arr_b, arr_c])
print(target)
# 输出:
# [[10 40 70]
#  [20 50 80]
#  [30 60 90]]

小提示:

如果你的目标二维数组有特殊形状(比如不是每行/每列对应一个一维数组),可以先调整每个一维数组的形状,再用np.concatenate()指定合适的轴来合并,自由度很高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:49:44