我有一个遵循特定格式的文件,看起来像这样:
test_0800_20180102_filepath.csv
anotherone_0800_20180101_hello.csv
Run Code Online (Sandbox Code Playgroud)
中间的数字代表时间戳,所以我想提取该信息。我知道有一个特定的模式永远是_time_date_,所以基本上我想要位于第一个和第三个下划线之间的字符串部分。我找到了一些示例和类似的问题,但我是 Python 新手,无法适应它们。
这是我迄今为止实施的:
datetime = re.search(r"\d+_(\d+)_", "test_0800_20180102_filepath.csv")
Run Code Online (Sandbox Code Playgroud)
但我得到的结果只是日期部分:
20180102
Run Code Online (Sandbox Code Playgroud)
但我真正需要的是:
0800_20180101
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 scipy.optimize.curve_fit 拟合一些数据。我的拟合函数是:
def fitfun(x, a):
return np.exp(a*(x - b))
Run Code Online (Sandbox Code Playgroud)
我想要的是定义a为拟合参数,以及b根据我想要拟合的数据而变化的参数。这意味着对于一组数据,我希望拟合函数:np.exp(a*(x - 10))而对于另一组数据,我希望拟合函数np.exp(a*(x - 20))。原则上,我希望参数 b 作为任何值传入。
我目前调用 curve_fit 的方式是:
coeffs, coeffs_cov = curve_fit(fitfun, xdata, ydata)
Run Code Online (Sandbox Code Playgroud)
但我想要的是这样的:
b=10
coeffs, coeffs_cov = curve_fit(fitfun(b), xdata, ydata)
b=20
coeffs2, coeffs_cov2 = curve_fit(fitfun(b), xdata, ydata)
Run Code Online (Sandbox Code Playgroud)
这样我就可以得到两种情况下的系数 a(b=10 和 b=20)。
我是 python 的新手,所以我无法让它工作,即使我试图阅读文档。任何帮助将不胜感激。