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

如何将1D numpy数组内容拆分后追加到两个2D numpy数组的列中

你之前拼接失败的核心原因是待追加的1D数组维度和原二维数组不匹配,只要先把拆分后的第三数组片段转为二维列向量,再按列拼接即可实现需求。

可直接运行的示例代码

import numpy as np

# 构造示例数据
arr1 = np.array([[1,2],[3,4],[4,5]])
arr2 = np.array([[6,7],[8,9],[10,11]])
arr3 = np.array([1,2,3,4,5,6])

# 按长度拆分第三个数组
arr3_part1 = arr3[:len(arr1)]
arr3_part2 = arr3[len(arr1):]

# 追加为新列:先将1D片段转为(n,1)形状的列向量,再按列拼接
# 方法1:使用np.concatenate指定axis=1按列拼接
arr1_final = np.concatenate([arr1, arr3_part1.reshape(-1, 1)], axis=1)
arr2_final = np.concatenate([arr2, arr3_part2.reshape(-1, 1)], axis=1)

# 方法2:使用np.hstack水平拼接,效果完全一致
# arr1_final = np.hstack([arr1, arr3_part1[:, np.newaxis]])
# arr2_final = np.hstack([arr2, arr3_part2[:, np.newaxis]])

结果验证

打印输出即可得到你需要的结果:

>>> arr1_final
array([[1, 2, 1],
       [3, 4, 2],
       [4, 5, 3]])
>>> arr2_final
array([[ 6,  7,  4],
       [ 8,  9,  5],
       [10, 11,  6]])

注意事项

  • reshape(-1,1)的作用是自动计算行数,将1D数组转为只有1列的二维数组,和原数组的维度匹配后才能按列拼接
  • 之前使用np.vstack是按行拼接,维度逻辑不符;np.append不指定axis参数时会将所有数组扁平化输出,也无法实现按列追加的效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:06:03