【Python报错】TypeError: only size-1 arrays can be converted to Python scalars
问题描述
lf = lambda x: ((1 + math.cos(x * math.pi / 30)) / 2) * (1 - 0.01) + 0.01
x = np.arange(1,30,1)
plt.plot(x, lf(x))
plt.show()
如上所示代码,在执行到lf(x)
时会报错
解决方法
使用np.vectorize()
lf = lambda x: ((1 + math.cos(x * math.pi / 30)) / 2) * (1 - 0.01) + 0.01
lf = np.vectorize(lf)
x = np.arange(1,30,1)
plt.plot(x, lf(x))
plt.show()
具体原因以后在探究吧(。•́︿•̀。)
参考
https://stackoverflow.com/questions/36680402/typeerror-only-length-1-arrays-can-be-converted-to-python-scalars-while-plot-sh
https://www.pythonpool.com/only-size-1-arrays-can-be-converted-to-python-scalars-error-solved/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix