【问题标题】:getting 'only length-1 arrays can be converted to Python scalars' error得到“只有长度为 1 的数组可以转换为 Python 标量”错误
【发布时间】:2016-06-23 11:40:47
【问题描述】:
import matplotlib.pyplot as plt
import numpy as np
from math import sin, pi

y = pi
x = np.linspace(0, 3*y, 500)
plt.plot(x, sin(x**2))
title("A simple Graph")
plt.show()

得到

'只有长度为 1 的数组可以转换为 Python 标量'

运行此代码时出错

【问题讨论】:

  • 快速提问:为什么要使用数学? Numpy 包含您从数学中导入的 sin 和 pi。既然您已经在使用np.linespace,为什么不使用np.pinp.sin。为了让您的代码保持不变,只需在 sin 前面添加 np. 即可修复错误。

标签: python


【解决方案1】:

只是改变 plt.plot(x,sin(x**2))plt.plot(x,np.sin(x**2))

【讨论】:

    【解决方案2】:

    您可以改用此代码:

    import matplotlib.pyplot as plt
    import numpy as np
    from math import sin,pi 
    y=pi
    x = np.linspace(0, 3*y, 500)
    plt.plot(x,[sin(_**2) for _ in x])
    title("A simple Graph")
    plt.show()
    

    绘图函数的第二个参数不正确。

    【讨论】:

    • 但是为什么第二个参数不正确呢?它有什么问题?
    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2014-09-27
    • 2013-03-15
    • 1970-01-01
    相关资源
    最近更新 更多