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

如何将两个NumPy数组列表按对应元素合并为目标矩阵

如何对应合并NumPy数组列表中的元素

嘿,我完全懂你要实现的效果!你之前用new_list = [list1, list2]的方式,只是把两个列表嵌套成了一个包含两个子列表的结构,并没有把对应位置的数组按列拼合,这就是结果不符合预期的原因。

下面给你两种实用的解决方案:

方法一:列表推导式 + np.hstack()(得到数组列表)

这种方式最直观,直接遍历两个列表的对应元素并完成拼接:

import numpy as np

list1 = [np.array([14, 17, 17, 8]), np.array([ 7, 7, 19, 16]), np.array([ 9, 18, 2, 19])]
list2 = [np.array([909]), np.array([909]), np.array([998])]

# 遍历对应位置的数组对,按列拼接
new_list = [np.hstack((arr1, arr2)) for arr1, arr2 in zip(list1, list2)]

运行后打印结果:

for arr in new_list:
    print(arr)

输出:

[ 14  17  17   8 909]
[  7   7  19  16 909]
[  9  18   2  19 998]

方法二:整体转为二维数组后拼接(得到单个二维NumPy数组)

如果你最终想要的是一个完整的二维矩阵,而不是数组列表,可以先把两个列表转为二维数组,再整体拼接:

# 将列表转为二维数组
arr1 = np.vstack(list1)
arr2 = np.vstack(list2)

# 按列拼接成一个大矩阵
combined_arr = np.hstack((arr1, arr2))
print(combined_arr)

输出:

[[ 14  17  17   8 909]
 [  7   7  19  16 909]
 [  9  18   2  19 998]]

小提示

  • 确保list1和list2的长度一致,否则zip只会配对到较短列表的长度,超出的元素会被忽略。如果存在长度不一致的情况,可以用itertools.zip_longest来处理,但需要补充缺失的默认值(比如np.array([0]))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 21:37:27