【发布时间】:2019-05-07 20:31:54
【问题描述】:
我正在尝试使用数据列的 log 值在 python 中生成带有 matplotlib 的图,但我一直遇到此错误,
回溯(最近一次通话最后一次):
文件“/home/PycharmProjects/proj1/test.py”,第 158 行,在graph(file_path)文件“/home/PycharmProjects/proj1/test.py”,第 90 行,图中
y = np.array(np.log2(y1).replace(-np.inf, 0))AttributeError: 'numpy.ndarray' 对象没有属性 'replace'
下面是代码,
def graph(file_path):
dataset1 = pandas.read_csv(file_path)
data1 = dataset1.iloc[:, 5]
x, y1 = get_pdf(data1)
y = np.array(np.log2(y1).replace(-np.inf, 0))
plt.figure()
plt.plot(x, y, color= 'g', label = 'Test')
plt.legend()
output_image = "fig1.png"
plt.savefig(output_image)
plt.close()
plt.figure()
我非常感谢能帮助您解决这个问题。谢谢。
【问题讨论】:
-
pandasSeries有一个replace方法,但numpy.ndarray没有。即使y1是一个系列(我不知道get_pdf),np.log2()返回一个数组,而不是另一个系列。 -
我可能会使用面具来完成您的目标
y[y == -np.inf] = 0。另一种方法是在应用日志之前替换 -np.inf 位置(我假设 np.inf 值是您正在执行 log2(0) 的位置)
标签: python numpy matplotlib