Python函数中使用NumPy与浮点数时触发TypeError报错求助
报错原因
- 直接触发类型错误的代码行为
si = np.sin(x - sine):此处sine是你定义的函数对象本身,你将浮点类型的x数组与函数对象做减法运算,两种类型不支持该操作,因此抛出对应报错。 - 额外存在的问题:你的计算逻辑完全不符合目标公式
A sin(B(x-C)),既没有用到传入的水平偏移量参数horizontal_shift,频率参数frequency的使用位置也完全错误。 - 你此前尝试的所有修改方向都和报错根源无关,因此无法解决问题。
修复方案
修正函数内部的计算逻辑,对齐目标公式即可,修改后的完整代码如下:
import numpy as np import matplotlib.pylab as plt x = np.linspace(-np.pi, np.pi, 201) def sine(amplitude, frequency, horizontal_shift): # 按公式A*sin(B*(x-C))计算,对应参数:A=amplitude,B=frequency,C=horizontal_shift si = np.sin(frequency * (x - horizontal_shift)) si = amplitude * si return si test = sine(4, 1, 2) print(test) plt.plot(x, test) plt.show()
内容的提问来源于stack exchange,提问作者petmarilyn
相关产品推荐
相关产品推荐

