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

Numpy拼接二维数组与一维数组报维度不匹配错误如何解决

错误原因
  • np.random.randint(0,10,(99,100))生成的non_zero_m是二维数组,形状为(99, 100)
  • 按axis=0求和后得到的arr是一维数组,形状为(100,),维度数为1
  • np.concatenate要求所有参与拼接的数组维度数完全相同,因此触发维度不匹配的报错
注意事项

你原本的代码使用randint(0,10,...)会生成包含0的整数,如果需要完全非零的矩阵,需要把随机数的下限改为1。

可行实现方案

以下几种写法都可以实现需求:

  1. 手动给求和结果升维后用concatenate拼接
import numpy as np
non_zero_m = np.random.randint(1, 10, (99, 100))
arr = non_zero_m.sum(axis=0).reshape(1, 100)
singular_m = np.concatenate((non_zero_m, arr), axis=0)
  1. 用np.newaxis新增维度
import numpy as np
non_zero_m = np.random.randint(1, 10, (99, 100))
arr = non_zero_m.sum(axis=0)[np.newaxis, :]
singular_m = np.concatenate((non_zero_m, arr), axis=0)
  1. 直接使用垂直拼接函数np.vstack,自动适配维度
import numpy as np
non_zero_m = np.random.randint(1, 10, (99, 100))
singular_m = np.vstack((non_zero_m, non_zero_m.sum(axis=0)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:45:04