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

求解ValueError:数组形状(20,)与(6,)无法广播运算问题

问题解决方案

你遇到的ValueError: operands could not be broadcast together with shapes (20,) (6,)是NumPy数组广播机制的维度不兼容问题——当你对形状为(20,)的输入数组x和形状为(6,)的级数项数组z执行x**z时,两者的维度无法匹配完成广播运算。

修复步骤及代码

核心是调整数组形状让广播生效,并确保后续求和维度正确:

import numpy as np
import scipy as sp

def fun2(x):
    serval = 7  # 泰勒级数项数,后续可改为用户输入
    z = np.arange(1, serval, 1)
    
    # 将x转为列向量,实现与z的广播兼容
    x_col = x.reshape(-1, 1)
    v = (x_col ** z) / sp.special.factorial(z)
    
    # 对每个x对应的泰勒项求和,得到与x同长度的数组
    u = np.sum(v, axis=1)
    y = (3 * x - 10) * (1 + u)
    return y

关键修改说明

  • x.reshape(-1, 1):把原形状(20,)的x转换为(20,1)的列数组,这样和(6,)的z运算时,NumPy会自动将x的列复制6次、z的行复制20次,生成(20,6)的结果数组,每个x元素对应所有级数项的幂次计算。
  • np.sum(v, axis=1):指定按行求和,每个x元素对应的6个泰勒项相加,得到长度为20的u数组,确保后续(3*x-10)*(1+u)能正常执行逐元素运算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:49:52