获得几条曲线的平均曲线,其中 x 值不相同且每个数据集中的点数不同浮点数

问题描述

我在这里找到了来自 @Denver Dang 的这个 Getting a mean curve of several curves with x-values not being the same 问题以及一些很好的答案。 他给出了一组 x 和 y 值,例如:

data_set1:
x1          y1        
---------   --------- 
0           100
0.0100523   65.1077
0.0201047   64.0519
0.030157    63.0341
0.0402094   62.1309
0.0502617   61.3649
0.060314    60.8614
0.0703664   60.3555
0.0804187   59.7635
0.0904711   59.1787

data_set2:
x2          y2        
---------   ---------   
0           100
0.01        66.119
0.02        64.4593
0.03        63.1377
0.04        62.0386
0.05        61.0943
0.06        60.2811
0.07        59.5603
0.08        58.8908

因为在@Denver Dang 在每个数据集中获得相同数量的点的情况下,他可以使用另一种方法。 所以我很期待那篇文章中的最后一个答案。 @roj4s 针对分数不同的问题提供了以下解决方案。

mean_x_axis = [i for i in range(max(xs))]
ys_interp = [np.interp(mean_x_axis,xs[i],ys[i]) for i in range(len(xs))]
mean_y_axis = np.mean(ys_interp,axis=0)

plt.plot(mean_x_axis,mean_y_axis)

使用上面的代码,我试图重现成员给@Denver Dang 的解决方案,因为它非常适合用于计算许多应力应变曲线的平均值。这是我的问题顺便说一句.. 重现我做的例子:

xs = []
xs.extend(x1)
xs.extend(x2)

ys = []
ys.extend(y1)
ys.extend(y2)

print(xs)
[0.0,0.0100523,0.0201047,0.030157,0.0402094,0.0502617,0.060314,0.0703664,0.0804187,0.0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08]
print(max(xs))
0.0804187

我意识到在我的情况和上面的情况 xs 将是一个浮点数。 有没有人知道当您像我提到的那样在每个数据集中获得浮点数和不同点数时获得平均曲线的解决方法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...