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

如何使用np.vstack将列表中的numpy数组堆叠为m×2矩阵

解决方案

完整可运行代码如下:

import numpy as np

# 原始数组定义
a = np.array([])  
b = np.array([1,2])
c = np.array([[5,6],[7,8]])
d = np.array([[11,12],[13,14],[15,16]])
E = [a,b,c,d]

# 调整后的堆叠逻辑
processed_arr = [arr.reshape(-1, 2) for arr in E if arr.size > 0]
F = np.vstack(processed_arr)
print(F)

运行后输出和你预期的结果完全一致:

[[ 1  2]
 [ 5  6]
 [ 7  8]
 [11 12]
 [13 14]
 [15 16]]

原代码报错原因

原有写法存在两个不满足np.vstack要求的问题:

  • 空数组a的维度为(0,),和其他数组的维度不匹配,np.vstack无法对维度不一致的数组执行堆叠操作
  • 数组b是一维数组,维度为(2,),并非预期的1×2二维结构,直接堆叠也会触发维度错误

处理逻辑说明

  • 遍历列表时通过if arr.size > 0过滤掉所有空数组,从根源上排除空值干扰
  • 用.reshape(-1, 2)将所有非空数组统一转换为n×2的二维结构:其中-1会自动根据数组总元素数计算对应的行数,保证第二维固定为2
  • 处理后的所有数组维度完全匹配,调用np.vstack即可正常堆叠得到目标矩阵

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 01:00:02