gpt4 book ai didi

python - python中数组之间的插值

转载 作者:行者123 更新时间:2023-12-01 03:24:41 25 4
gpt4 key购买 nike

在两个数组之间进行插值以获取新数组的最简单、最快的方法是什么。

例如,我有 3 个数组:

x = np.array([0,1,2,3,4,5])
y = np.array([5,4,3,2,1,0])
z = np.array([0,5])

x,y 对应于数据点,z 是一个参数。因此,在 z=0 时 x 数组有效,在 z=5 y 数组有效。但我需要为 z=1 获取新数组。因此可以通过以下方式轻松解决:

a = (y-x)/(z[1]-z[0])*1+x

问题是数据不是线性相关的,并且有超过 2 个数组包含数据。也许可以使用某种样条插值?

最佳答案

这是一个单变量到多元回归问题。 Scipy 支持单变量到单变量回归,以及多变量到单变量回归。但您可以迭代输出,所以这不是一个大问题。下面是如何完成此操作的示例。我稍微更改了变量名称并添加了一个新点:

import numpy as np
from scipy.interpolate import interp1d

X = np.array([0, 5, 10])
Y = np.array([[0, 1, 2, 3, 4, 5],
[5, 4, 3, 2, 1, 0],
[8, 6, 5, 1, -4, -5]])

XX = np.array([0, 1, 5]) # Find YY for these

YY = np.zeros((len(XX), Y.shape[1]))
for i in range(Y.shape[1]):
f = interp1d(X, Y[:, i])
for j in range(len(XX)):
YY[j, i] = f(XX[j])

所以YYXX的结果。希望对您有所帮助。

关于python - python中数组之间的插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41504639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com