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

Python列表与Numpy数组合并问题:如何按位置配对生成目标二维数组

问题原因

你使用np.c_时多套了一层列表,导致输入是两个二维行向量,拼接后会得到形状为(2, 5)的数组,不符合预期。之前用np.append报错是因为没有指定拼接轴axis,且输入维度不匹配。

可行实现方案

方案1:修正np.c_用法(最简洁)

import numpy as np

a1 = [1,2,3,4,5]
a2 = [6,7,8,9,10]
sc = np.c_[a1, a2]

print(sc)
# 输出:
# [[ 1  6]
#  [ 2  7]
#  [ 3  8]
#  [ 4  9]
#  [ 5 10]]
print(sc[0])
# 输出:[1 6]

方案2:使用np.column_stack(语义更清晰)

专门用于按列堆叠序列,输入普通列表即可,不用额外调整维度:

sc = np.column_stack((a1, a2))

方案3:纯Python实现(无需依赖numpy)

如果不需要numpy数组格式,直接用内置zip函数配对即可:

# 得到元素为元组的列表
sc = list(zip(a1, a2))
# 如果需要元素为列表的格式
sc = [list(pair) for pair in zip(a1, a2)]

方案4:修正np.append的用法(不推荐,循环追加效率低)

如果要坚持用逐行追加的写法,需要指定axis=0,且每次追加的内容维度和原数组匹配:

sc = np.empty((0, 2), dtype=int)
for i in range(len(a1)):
    sc = np.append(sc, [[a1[i], a2[i]]], axis=0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:39:03