import numpy as np
import pandas as pd
from scipy.interpolate import RegularGridInterpolator
import io
xi, yi = 100, 100; # test points I want to evaluate the interpolator object at
# the 2D data copied from google sheets and pasted into Jupyter notebook generates this dataframe:
values = pd.read_csv(io.StringIO('''
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,221,220,219,218,217,217,215,215,215,217,217,218,218,219,220,221,222,222,222
223,223,223,223,223,223,223,223,223,219,218,217,215,215,210,210,210,215,217,217,217,218,219,220,221,222,222
223,223,223,223,223,223,223,223,223,218,217,217,215,210,207,207,207,210,215,215,217,218,219,219,220,221,222
223,223,223,223,223,223,223,223,218,217,223,215,210,207,205,205,207,207,210,210,215,217,218,219,220,221,222
223,223,223,223,223,223,223,223,218,217,216,215,207,205,203,203,205,207,207,210,215,217,218,219,220,221,222
223,223,223,223,223,223,223,223,218,217,216,215,207,205,203,203,205,207,210,212,215,217,218,219,220,221,222
223,223,223,223,223,223,223,223,223,218,217,217,215,207,205,205,207,210,212,215,217,218,219,220,221,222,223
223,223,223,223,223,223,223,223,223,223,218,218,217,215,207,207,215,215,215,217,218,219,220,221,222,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223
'''), header=None);
# these are the X and Y values corresponding to the X and Y dimensions of the data (values).
X = np.linspace(0, 2600, values.shape[1]);
Y = np.linspace(0, 1700, values.shape[0]);
Yi, Xi = np.meshgrid(Y, X);
interp = RegularGridInterpolator((Y, X), values); # X and Y are switched here because Y corresponds to the rows of the dataframe and X corresponds to the columns but I'm matching the SciPy syntax.
interp(np.array([[xi], [yi]]).T) # this is the portion I'm having trouble with
Я не понимаю, какой формат аргументов я помещаю в объект interp. В документации сказано, что входные данные представляют собой кортеж ndarrays. Но в этом примере показано оценивание объекта interp для np.array и кортежа списков. Я пробовал их и их комбинацию, но все равно не понял правильно... спасибо за вашу помощь.
Код, описанный выше, возвращает следующую ошибку:< /p>
Я пытаюсь интерполировать 2D-данные, чтобы найти значение Z в точке (X,Y), как если бы это была 2D-таблица поиска. [code]import numpy as np import pandas as pd from scipy.interpolate import RegularGridInterpolator import io
xi, yi = 100, 100; # test points I want to evaluate the interpolator object at
# the 2D data copied from google sheets and pasted into Jupyter notebook generates this dataframe: values = pd.read_csv(io.StringIO(''' 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,221,220,219,218,217,217,215,215,215,217,217,218,218,219,220,221,222,222,222 223,223,223,223,223,223,223,223,223,219,218,217,215,215,210,210,210,215,217,217,217,218,219,220,221,222,222 223,223,223,223,223,223,223,223,223,218,217,217,215,210,207,207,207,210,215,215,217,218,219,219,220,221,222 223,223,223,223,223,223,223,223,218,217,223,215,210,207,205,205,207,207,210,210,215,217,218,219,220,221,222 223,223,223,223,223,223,223,223,218,217,216,215,207,205,203,203,205,207,207,210,215,217,218,219,220,221,222 223,223,223,223,223,223,223,223,218,217,216,215,207,205,203,203,205,207,210,212,215,217,218,219,220,221,222 223,223,223,223,223,223,223,223,223,218,217,217,215,207,205,205,207,210,212,215,217,218,219,220,221,222,223 223,223,223,223,223,223,223,223,223,223,218,218,217,215,207,207,215,215,215,217,218,219,220,221,222,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 '''), header=None);
# these are the X and Y values corresponding to the X and Y dimensions of the data (values). X = np.linspace(0, 2600, values.shape[1]); Y = np.linspace(0, 1700, values.shape[0]);
Yi, Xi = np.meshgrid(Y, X);
interp = RegularGridInterpolator((Y, X), values); # X and Y are switched here because Y corresponds to the rows of the dataframe and X corresponds to the columns but I'm matching the SciPy syntax.
interp(np.array([[xi], [yi]]).T) # this is the portion I'm having trouble with [/code] Я не понимаю, какой формат аргументов я помещаю в объект interp. В документации сказано, что входные данные представляют собой кортеж ndarrays. Но в этом примере показано оценивание объекта interp для np.array и кортежа списков. Я пробовал их и их комбинацию, но все равно не понял правильно... спасибо за вашу помощь. Код, описанный выше, возвращает следующую ошибку:< /p> [code]InvalidIndexError: (array([1]), array([1])) [/code] Я пытаюсь вернуть интерполяцию для одной точки (например, для каждой итерации цикла for). Или для всех точек сразу после цикла for, если так нужно.
Я пытаюсь интерполировать 2D-данные, чтобы найти значение Z в точке (X,Y), как если бы это была 2D-таблица поиска.
import numpy as np
import pandas as pd
from scipy.interpolate import RegularGridInterpolator
import io
Я пытаюсь интерполировать 2D-данные, чтобы найти значение Z в точке (X,Y), как если бы это была справочная таблица 2D.
import numpy as np
import pandas as pd
from scipy.interpolate import RegularGridInterpolator
import io
Меня немного смущает документация по scipy.interpolate.RegularGridInterpolator.
Скажем, у меня есть функция f: R^3 => R, которая отбирается по вершинам единичного куба. Я хотел бы выполнить интерполяцию, чтобы найти значения внутри куба.
Я работаю над проектом, в котором мне нужно интерполировать значения энтальпии с помощью scipy.interpolate.RectBivariateSpline, а затем выполнить автоматическое дифференцирование с помощью mygrad. Однако я столкнулся с проблемой, когда градиент...
Я хочу интерполировать набор данных с координатной сеткой, используя Python. Например, если у меня есть массив размером 10x10, он должен стать 20x20 с интерполяцией (линейной, кубической) добавленных значений. Проблема в том, что данные НЕ полностью...