TypeError:尽管np.vectorize,但只有size-1数组可以转换为Python标量Popping



当我使用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()不起作用,我该如何修复?

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)")

最新更新