【问题标题】:TypeError: only size-1 arrays can be converted to Python scalars Popping despite np.vectorize类型错误:尽管 np.vectorize 只能将大小为 1 的数组转换为 Python 标量弹出
【发布时间】:2020-11-12 15:44:00
【问题描述】:

当我使用 Matplotlib 在图表上绘制对数时,弹出了TypeError: only size-1 arrays can be converted to Python scalars。我在 Stack 中搜索了这个,有一个建议使用 numpy.vectorize() 的答案,但是当我尝试它时,它不起作用并输出了完全相同的错误。代码如下。

x = np.linspace(0, 100, num = 10)
plt.plot(x, x, label = "x")
plt.plot(x, np.vectorize(math.log2(64*x - 160)), label = "Log2(64x - 160)")

为什么numpy.vectorize() 不起作用,我该如何解决?

【问题讨论】:

    标签: python numpy matplotlib


    【解决方案1】:

    vectorize 无关。问题是你不能做 log2 的负数。如果您按如下方式更改起始范围,则可以:

    x = np.linspace(3, 100, num = 10)
    plt.plot(x, x, label = "x")
    plt.plot(x, np.log2(64*x - 160), label = "Log2(64x - 160)")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-20
      • 2019-02-27
      • 2021-08-13
      • 1970-01-01
      • 2022-07-10
      • 1970-01-01
      • 1970-01-01
      • 2023-01-14
      相关资源
      最近更新 更多