草庐IT

interpolation

全部标签

python - 从 4 个角颜色插值的二维颜色渐变(256x256 矩阵)

我想要实现的是以编程方式创建一个由256x256颜色值矩阵表示的二维色带。可以在附图中看到预期的结果。我的起点是矩阵的4个角颜色,应从中插入其间剩余的254种颜色。虽然我在为一个轴插值颜色方面取得了一些成功,但二维计算让我有些头疼。虽然图像似乎具有非线性颜色渐变,但我对线性渐变很满意。如果您能给我一些提示,说明如何使用numpy或其他工具执行此操作,我将不胜感激。 最佳答案 这是一个使用zoomfunction的超短解决方案来自scipy.ndimage。我用初始颜色(此处为随机颜色)定义了一个2x2RGB图像,并将其简单地缩放到2

python - 使用 NumPy/SciPy 的向量值函数插值

有没有办法使用NumPy对向量值函数进行插值?/SciPy?有很多针对标量值函数的产品,我想我可以使用其中之一来分别估计向量的每个分量,但有没有更有效的方法?具体来说,我有一个函数f(x)=V,其中x是标量,V是向量。我还有一个xs及其对应的Vs的集合。我想用它来插入和估计任意x的V。 最佳答案 插值函数scipy.interpolate.interp1d也适用于插值的向量值数据(尽管不适用于向量值参数数据)。因此,只要x是标量,就可以直接使用。以下代码是对thescipydocumentation中给出的示例的轻微扩展:>>>fr

python - For 循环似乎比 NumPy/SciPy 3D 插值更快

我对NumPy/SciPy插值方法感到困惑。我使用LinearNDInterpolator实现了3D线性插值,但我发现它非常慢。然后我用纯Python写了一个强力三重for循环方法,令人惊讶的是它给了我1000倍的加速。我也试了一下Numba包,但结果并没有更快。根据我在互联网上找到的任何来源,与NumPy/SciPy和Numba相比,Python循环应该超慢。但这不是我所看到的。我发布了我运行的整个源代码。我在我的机器上得到了这些时间:Numpyready:3.94499993324s,result[0]=0.480961746817Pythonforloop...Pythonrea

python - SciPy interp1d 结果不同于 MatLab interp1

我正在将MatLab程序转换为Python,但我无法理解为什么scipy.interpolate.interp1d给出的结果与MatLabinterp1不同。在MatLab中,用法略有不同:yi=interp1(x,Y,xi,'cubic')科学:f=interp1d(x,Y,kind='cubic')yi=f(xi)对于一个简单的例子,结果是一样的:数学实验室:interp1([01234],[01234],[1.52.53.5],'cubic')1.50002.50003.5000python:interp1d([1,2,3,4],[1,2,3,4],kind='cubic')([

python - 为什么使用多个参数来记录而不是插值?

Python的日志记录函数允许您向它们传递多个参数,它们可以为您插入这些参数。所以你有一个选择:logger.info("Something%sthiswaycomes!"%"wicked")或logger.info("Something%sthiswaycomes!","wicked")但为什么要选择一个而不是另一个呢?这仅仅是让错误发生在记录器中而不是发生在正在记录的程序中的问题,还是有其他原因? 最佳答案 这是一个性能问题:当您在代码中进行插值时,每次调用记录器时都会执行此代码(如果记录器或日志级别未激活,则为事件)当您让记录

python - 使用 SciPy 规则网格在 Python 中进行快速二维插值以进行分散/不规则评估

我有一个规则的训练值网格(向量x和y分别有网格xmesh和ymesh以及已知的zmesh值)但是要插值的一组分散/参差不齐/不规则的值(向量xI和yI,我们在哪里对zI[0]=f(xI[0],yI[0])...zI[N-1]=f(xI[N-1],yI[N-1])感兴趣。此插值将是作为优化问题的一部分被调用了数百万次,因此性能太重要了,不能简单地使用制作网格和跟踪的方法。到目前为止,我已经能够找到一个接近我想要的scipy.interpolate函数,即Bpf函数。然而,因为它是一个分散的输入,我假设它没有很好的性能,我想用我更了解的样条、线性和最近邻插值方法来测试它,我希望它会更快。我

python - matplotlib `imshow(interpolation=' nearest')` 做什么?

我在灰度图像上使用imshow函数和interpolation='nearest'并得到一张漂亮的彩色图片,看起来它做了某种颜色分割对我来说,那里到底发生了什么?我也想获得类似这样的图像处理功能,numpy数组上是否有一些函数,例如interpolate('nearest')?编辑:如果我错了,请纠正我,它看起来像是简单的像素聚类(聚类是相应颜色图的颜色)并且“最近”一词表示它采用最近的colormap颜色(可能在RGB空间中)来决定像素属于哪个簇。 最佳答案 interpolation='nearest'如果显示分辨率与图像分辨率

python - 科学 : Interpolating trajectory

我有一条由(x,y)对序列形成的轨迹。我想使用样条在此轨迹上插入点。我该怎么做?使用scipy.interpolate.UnivariateSpline不起作用,因为x和y都不是单调的。我可以引入参数化(例如沿轨迹的长度d),但是我有两个因变量x(d)和y(d).例子:importnumpyasnpimportmatplotlib.pyplotaspltimportmatherror=0.1x0=1y0=1r0=0.5alpha=np.linspace(0,2*math.pi,40,endpoint=False)r=r0+error*np.random.random(len(alpha

python - kind 参数的不同值在 scipy.interpolate.interp1d 中意味着什么?

SciPydocumentation解释了interp1d的kind参数可以取值'linear','nearest',“零”、“线性”、“二次”、“立方”。最后三个是样条阶数,'linear'是不言自明的。'nearest'和'zero'有什么作用? 最佳答案 nearest“捕捉”到最近的数据点。zero是零阶样条。它在任何时候的值(value)都是最后看到的原始值(value)。linear执行线性插值,slinear首先使用订单样条。他们使用不同的代码和canproducesimilarbutsubtlydifferentre

python - python中的对数插值

使用numpy.interp我能够计算在离散数据点处具有给定值的函数的一维分段线性插值。返回我的对数插值是不是类似的函数? 最佳答案 在过去,我只是将普通插值包装在对数空间中,即deflog_interp(zz,xx,yy):logz=np.log10(zz)logx=np.log10(xx)logy=np.log10(yy)returnnp.power(10.0,np.interp(logz,logx,logy))就我个人而言,我更喜欢scipyinterpolationfunctions(正如@mylesgallagher提到的