使用fit包中的__init__文件时出错



我试图运行我在GitHub上找到的代码来实现分段线性表示。问题是,似乎有一个错误在init适配包的文件。下面是代码:

from matplotlib.pylab import gca, figure, plot, subplot, title, xlabel, ylabel, xlim,show
from matplotlib.lines import Line2D
import segment
import fit
Pull = pandas.read_csv('pull_kpi.csv', parse_dates=['pull_date'])
data = Pull[['pull_date', 'qty_late']]
from matplotlib.pylab import gca, figure, plot, subplot, title, xlabel, ylabel, xlim,show
from matplotlib.lines import Line2D
import segment
import fit
def draw_plot(data,plot_title):
plot(range(len(data)),data,alpha=0.8,color='red')
title(plot_title)
xlabel("Samples")
ylabel("Signal")
xlim((0,len(data)-1))
def draw_segments(segments):
ax = gca()
for segment in segments:
line = Line2D((segment[0],segment[2]),(segment[1],segment[3]))
ax.add_line(line)
with open("example_data/16265-normalecg.txt") as f:
file_lines = f.readlines()
data = [float(x.split("t")[2].strip()) for x in file_lines[100:320]]
max_error = 0.005
#sliding window with regression
figure()
segments = segment.slidingwindowsegment(data, fit.regression, fit.sumsquared_error, max_error)
draw_plot(data,"Sliding window with regression")
draw_segments(segments)
#bottom-up with regression
figure()
segments = segment.bottomupsegment(data, fit.regression, fit.sumsquared_error, max_error)
draw_plot(data,"Bottom-up with regression")
draw_segments(segments)
#top-down with regression
figure()
segments = segment.topdownsegment(data, fit.regression, fit.sumsquared_error, max_error)
draw_plot(data,"Top-down with regression")
draw_segments(segments)

#sliding window with simple interpolation
figure()
segments = segment.slidingwindowsegment(data, fit.interpolate, fit.sumsquared_error, max_error)
draw_plot(data,"Sliding window with simple interpolation")
draw_segments(segments)
#bottom-up with  simple interpolation
figure()
segments = segment.bottomupsegment(data, fit.interpolate, fit.sumsquared_error, max_error)
draw_plot(data,"Bottom-up with simple interpolation")
draw_segments(segments)
#top-down with  simple interpolation
figure()
segments = segment.topdownsegment(data, fit.interpolate, fit.sumsquared_error, max_error)
draw_plot(data,"Top-down with simple interpolation")
draw_segments(segments)

show()

这个错误似乎是一个无效的语法,Python认为它发生在&;raise exc_type, exc_val, exc_tb&quot行。

下面是init部分产生bug的文件:

# File I/O methods
def __enter__(self):
return self
def __exit__(self, exc_type, exc_val, exc_tb):
if not exc_val:
return self.close()
raise exc_type, exc_val, exc_tb

有人能帮忙吗?

问题是您安装的PyPI (GitHub)的fit包与Python 3不兼容(实际上,无论如何,最后一次更新是在8年前)。(其他人在Python 3中也遇到了同样的问题。)

然而,无论如何,这不是你想要的包——它甚至不能导出像sumsquared_error这样的东西。

这些导出可以在这个fit.py中找到,该存储库可能是您改编代码的地方。

换句话说:

  • pip uninstall fit-这不是你要找的机器人
  • fit.pywrappers.py从该存储库复制到项目目录

最新更新