您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

TypeError:只有长1的数组可以转换为Python标量,而图显示

TypeError:只有长1的数组可以转换为Python标量,而图显示

函数需要单个值但您传递数组时,会出现错误“仅将length-1数组可以转换为Python标量”。

如果查看的呼叫签名np.int,您会看到它接受单个值,而不是数组。通常,如果要对数组中的每个元素应用一个接受单个元素的函数,则可以使用np.vectorize

import numpy as np
import matplotlib.pyplot as plt

def f(x):
    return np.int(x)
f2 = np.vectorize(f)
x = np.arange(1, 15.1, 0.1)
plt.plot(x, f2(x))
plt.show()

您可以跳过f(x)的定义,而只需将np.int传递给vectorize函数f2 = np.vectorize(np.int)

注意,这np.vectorize只是一个便利函数,基本上是for循环。在大型阵列上这将是低效的。每当你有可能,使用真正的矢量函数方法(如astype(int)为@FFT建议。

python 2022/1/1 18:32:19 有285人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶