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

如何利用NumPy广播实现级数部分和计算,解决形状不匹配报错

问题原因

  • 你的a/b/c数组形状为(5,),时间序列t形状为(600,),两个不同长度的一维数组默认无法广播运算,因此触发维度不匹配报错。

解决方法

通过给长度为5的参数数组新增一个尾部维度,将其形状调整为(5, 1),即可和形状为(600,)的t自动广播为(5, 600)的二维数组,运算完成后沿第0维(项数维度)求和即可得到和原列表推导版本完全一致的结果。

可运行代码

import numpy as np
a = np.array([0.4,2.6,3, 1.2, 3.4])
b = np.array([-5,7,2,1.1,1.8])
c = np.array([3.3,30,15,0.4,28])
t = np.linspace(0, np.pi, 600)

def S(t):
    # [:, None]是[:, np.newaxis]的简写,作用为给数组新增尾部维度
    return np.sum(a[:, None] * np.cos(b[:, None] * t + c[:, None]), axis=0)

内容的提问来源于stack exchange,提问作者Iyach tharwa nambarek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:18:03