首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何重新利用scipy.interpolate.RectBivariateSpline.get_coeffs()得到的系数重构插值函数?

如何重新利用scipy.interpolate.RectBivariateSpline.get_coeffs()得到的系数重构插值函数?
EN

Stack Overflow用户
提问于 2022-07-14 07:37:37
回答 1查看 81关注 0票数 0

我有一个巨大的3D (x,y,z)数据集,(x,y)是输入,(z)是输出。现在数据集非常大,我需要以最小的延迟实时使用这些信息。

因此,索引/查找表可能看起来很慢。因此,我的想法是插值数据集,并在实时,而不是查找表,我计算的值。因此,我不必存储原始数据集,而是可以存储系数,希望比原始数据集的大小更小。

我使用scipy.interpolate.RectBivariateSpline进行插值。我能够对数据进行拟合,并得到系数。但我不知道如何从系数中重建插值函数。

我要清空插值函数只在输入(x,y)处计算。泛化在这里并不重要。

代码语言:javascript
运行
复制
from scipy import interpolate
import numpy as np

x = np.arange(1,500)
y = np.arange(2,200)

X,Y = np.meshgrid(x,y)
z = np.sin(X+Y).T

a = interpolate.RectBivariateSpline(x,y,z)

# print(len(a.get_coeffs()))
# coefficients can be obtained by a.get_coeffs()
# I want to have the following
# f = construct_spline_from_coefficient(a.get_coeffs())
# z = f(x_old, y_old)

我想到的另一种方法是使用深度神经网络。有人能在这里亮点光吗?这是过头杀人吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-18 06:37:58

解决方案是在枕官方文档(链接)中。

  • 使用bisplrep函数(rep代表表示)获得插值输出tck (参见bisplrep的docstring )。
  • 输出tck是一个数组,可以存储在文件中。
  • 使用bisplev (ev代表评估)来构造一个函数。

对于在插值时使用神经网络,请参见最新的()神经网络的内插训练。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72976863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档