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

如何修复形状(3,)与(720,1440)不匹配的对齐错误

问题分析

错误提示shapes (3,) and (720,1440) not aligned: 3 (dim 0) != 720 (dim 0)的核心是矩阵维度不匹配:

  • 你构造的P是展平后的二维数组,形状为(720*1440, 3),转置后P.T的形状是(3, 720*1440)
  • 但fermi_gamma_rays仍为二维的(720,1440)数组,未展平,导致点乘时维度无法对应
修复方案

把所有参与计算的二维数组展平为一维,确保矩阵运算维度一致。修改后的代码如下:

# Fermi_map = a0 + a1×dust_map + a2×synchrotron_map
# residuals = Fermi_map - (a0 + a1×dust_map + a2×synchrotron_map)
# 求解正规方程

# 将所有二维数组展平为一维
dust_flat = dust_map.flatten()
synch_flat = synch_map.flatten()
fermi_flat = fermi_gamma_rays.flatten()

# 构造设计矩阵P,形状为(N, 3),N=720*1440
P = np.column_stack([np.ones(dust_flat.size), dust_flat, synch_flat])

# 计算正规方程的各个部分
PTy = np.dot(P.T, fermi_flat)
PTP = np.dot(P.T, P)
PTPi = np.linalg.inv(PTP)
avec = np.dot(PTPi, PTy)

print("avec = {0}".format(avec))
额外说明
  • 使用flatten()将二维图像数组转为一维,保证所有变量的样本数一致(每个像素对应一个样本点)
  • 用np.column_stack构造设计矩阵比手动转置更直观,避免维度混淆
  • 若后续需要将拟合结果还原为二维图像,直接用avec[0] + avec[1]*dust_map + avec[2]*synch_map计算即可,无需额外展平

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:35:35