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 с интерполяцией (линейной, кубической) добавленных значений. Проблема в том, что данные НЕ полностью...