numpy.power函数运行抛出TypeError参数类型错误问题求助
问题原因
你代码中的报错由np.power(np.exp, (np.power(xvec,2)/4))这部分调用错误导致:
np.exp是numpy提供的用于计算自然指数的函数对象(ufunc),不是自然常数e的数值np.power要求第一个参数为参与幂运算的底数(数值类型),直接传入函数对象就会触发「ufunc和float不能做幂运算」的类型报错- 额外问题:你当前的写法还遗漏了目标函数中指数部分的负号,计算结果会和预期不符
修复方法
推荐直接使用np.exp计算e的指定次方,不需要额外套np.power,写法更简洁高效:
import numpy as np def f1_x(xvec): yvec = 1/(np.sqrt(2 * np.pi)) * np.exp(- np.power(xvec, 2) / 4) print(yvec) return yvec
如果你需要用np.power的写法实现,把底数替换为numpy提供的自然常数值np.e即可:
import numpy as np def f1_x(xvec): yvec = 1/(np.sqrt(2 * np.pi)) * np.power(np.e, - np.power(xvec, 2) / 4) print(yvec) return yvec
内容的提问来源于stack exchange,提问作者David Opiela
相关产品推荐
相关产品推荐

