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

如何在Python中为二维np数组添加指定列?(附实例)

在NumPy二维数组中添加指定一维数组作为新列

嘿,这个需求很容易实现,用NumPy自带的数组拼接函数就能搞定,我给你两种实用的方法:

先准备好你的数据

首先我们先定义好原二维数组和要添加的一维列:

import numpy as np

# 原4行6列的二维数组
original_arr = np.array([
    [1, 2, 3, 4, 5, 6],
    [2, 6, 5, 2, 4, 1],
    [8, 7, 9, 0, 0, 0],
    [2, 3, 4, 5, 6, 2]
])

# 要添加的一维数组(长度必须和原数组行数一致)
new_column = np.array([1, 0, 1, 0])

方法1:使用np.hstack()拼接

np.hstack()用于水平拼接数组,但要求输入的数组维度匹配。因为一维数组默认是行向量(形状为(4,)),我们需要先把它转成列向量(形状为(4,1)),再和原二维数组拼接:

# 将一维数组转为列向量,再水平拼接
result = np.hstack((original_arr, new_column.reshape(-1, 1)))
print(result)

运行后会输出你想要的结果:

[[1 2 3 4 5 6 1]
 [2 6 5 2 4 1 0]
 [8 7 9 0 0 0 1]
 [2 3 4 5 6 2 0]]

这里reshape(-1, 1)的-1是让NumPy自动计算行数,确保转成和原数组行数一致的列向量。

方法2:使用np.column_stack()(更简便)

np.column_stack()是专门为按列拼接设计的函数,它会自动把一维数组当作列来处理,不需要手动转维度:

result = np.column_stack((original_arr, new_column))
print(result)

这个方法和上面的结果完全一样,代码更简洁,推荐日常使用。

注意事项

  • 要添加的一维数组长度必须和原二维数组的行数一致,否则会报错;
  • 这个方法支持任意内容的一维数组,完全满足你“不是添加全零列”的需求,比如换成[5,3,2,7]也能正常拼接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:00:13