- numpy.interp#
- numpy.interp
- Examples
- Как применить кусочно-линейное соответствие в Python?
- Русские Блоги
- Реализация на Python кусочно-линейной интерполяции (при оценке ошибки)
- функция
- алгоритм
- Эффект изображения
- Код
- Интеллектуальная рекомендация
- Используйте python для загрузки изображений (код для новичков)
- Npoi читает пустой Excel пустая однооценная проблема
- Реализация Rongyun Chat Server и клиента в практике проектов Android
- Инициализация сбора, нет регулировки инициализации ADD () Исключение пустого указателя NullPointException
- SIP через NAT SIP через firewall-SBC
- Вам также может понравиться
- Python — Получить текст на вкладке DIV
- Некоторые небольшие операции примечания WordCloud
- STM32
- java интервью Вопрос 2
- Когда расположение окна переходит на страницу, данные передаются через сообщение
numpy.interp#
One-dimensional linear interpolation for monotonically increasing sample points.
Returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x.
Parameters : x array_like
The x-coordinates at which to evaluate the interpolated values.
xp 1-D sequence of floats
The x-coordinates of the data points, must be increasing if argument period is not specified. Otherwise, xp is internally sorted after normalizing the periodic boundaries with xp = xp % period .
fp 1-D sequence of float or complex
The y-coordinates of the data points, same length as xp.
left optional float or complex corresponding to fp
Value to return for x < xp[0], default is fp[0].
right optional float or complex corresponding to fp
Value to return for x > xp[-1], default is fp[-1].
period None or float, optional
A period for the x-coordinates. This parameter allows the proper interpolation of angular x-coordinates. Parameters left and right are ignored if period is specified.
The interpolated values, same shape as x.
If xp and fp have different length If xp or fp are not 1-D sequences If period == 0
The x-coordinate sequence is expected to be increasing, but this is not explicitly enforced. However, if the sequence xp is non-increasing, interpolation results are meaningless.
Note that, since NaN is unsortable, xp also cannot contain NaNs.
A simple check for xp being strictly increasing is:
>>> xp = [1, 2, 3] >>> fp = [3, 2, 0] >>> np.interp(2.5, xp, fp) 1.0 >>> np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp) array([3. , 3. , 2.5 , 0.56, 0. ]) >>> UNDEF = -99.0 >>> np.interp(3.14, xp, fp, right=UNDEF) -99.0
Plot an interpolant to the sine function:
>>> x = np.linspace(0, 2*np.pi, 10) >>> y = np.sin(x) >>> xvals = np.linspace(0, 2*np.pi, 50) >>> yinterp = np.interp(xvals, x, y) >>> import matplotlib.pyplot as plt >>> plt.plot(x, y, 'o') [] >>> plt.plot(xvals, yinterp, '-x') [] >>> plt.show()
Interpolation with periodic x-coordinates:
>>> x = [-180, -170, -185, 185, -10, -5, 0, 365] >>> xp = [190, -190, 350, -350] >>> fp = [5, 10, 3, 4] >>> np.interp(x, xp, fp, period=360) array([7.5 , 5. , 8.75, 6.25, 3. , 3.25, 3.5 , 3.75])
>>> x = [1.5, 4.0] >>> xp = [2,3,5] >>> fp = [1.0j, 0, 2+3j] >>> np.interp(x, xp, fp) array([0.+1.j , 1.+1.5j])
numpy.interp
Одномерная линейная интерполяция для монотонно возрастающих точек выборки.
Возвращает одномерный кусочно-линейный интерполянт к функции с заданными дискретными точками данных ( xp , fp ), оцененными в x .
Parameters xarray_like
x-координаты,в которых оцениваются интерполированные значения.
xp 1-мерная последовательность поплавков
Координаты x точек данных должны увеличиваться, если period аргумента не указан. В противном случае xp внутренне сортируется после нормализации периодических границ с xp = xp % period .
fp 1-мерная последовательность чисел с плавающей запятой или комплексных
Y-координаты точек данных такой же длины, как xp .
левый необязательный поплавок или комплекс, соответствующий fp
правый необязательный поплавок или комплекс, соответствующий fp
Возвращаемое значение для x > xp[-1] , по умолчанию — fp[-1] .
период Нет или с плавающей запятой, необязательно
Период для координат x. Этот параметр позволяет правильно интерполировать угловые координаты x. Параметры left и right игнорируются, если указан period .
Интерполированные значения той же формы, что и x .
Если xp и fp имеют разную длину Если xp или fp не являются одномерными последовательностями Если period == 0
Ожидается, что последовательность x-координат будет увеличиваться, но это явно не применяется. Однако, если последовательность xp не возрастает, результаты интерполяции не имеют смысла.
Обратите внимание, что, поскольку NaN не подлежит сортировке, xp также не может содержать NaN.
Проверка проста для xp быть строго возрастающей является:
Examples
>>> xp = [1, 2, 3] >>> fp = [3, 2, 0] >>> np.interp(2.5, xp, fp) 1.0 >>> np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp) array([3. , 3. , 2.5 , 0.56, 0. ]) >>> UNDEF = -99.0 >>> np.interp(3.14, xp, fp, right=UNDEF) -99.0
Введите интерполянт в синусоидальную функцию:
>>> x = np.linspace(0, 2*np.pi, 10) >>> y = np.sin(x) >>> xvals = np.linspace(0, 2*np.pi, 50) >>> yinterp = np.interp(xvals, x, y) >>> import matplotlib.pyplot as plt >>> plt.plot(x, y, 'o') [] >>> plt.plot(xvals, yinterp, '-x') [] >>> plt.show()
>>> x = [-180, -170, -185, 185, -10, -5, 0, 365] >>> xp = [190, -190, 350, -350] >>> fp = [5, 10, 3, 4] >>> np.interp(x, xp, fp, period=360) array([7.5 , 5. , 8.75, 6.25, 3. , 3.25, 3.5 , 3.75])
>>> x = [1.5, 4.0] >>> xp = [2,3,5] >>> fp = [1.0j, 0, 2+3j] >>> np.interp(x, xp, fp) array([0.+1.j , 1.+1.5j])
Как применить кусочно-линейное соответствие в Python?
Я пытаюсь установить кусочно-линейную подгонку, как показано на рис .1 для набора данных Эта цифра была получена путем установки на строках. Я попытался применить кусочно-линейную подгонку с использованием кода:
from scipy import optimize import matplotlib.pyplot as plt import numpy as np x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11, 12, 13, 14, 15]) y = np.array([5, 7, 9, 11, 13, 15, 28.92, 42.81, 56.7, 70.59, 84.47, 98.36, 112.25, 126.14, 140.03]) def linear_fit(x, a, b): return a * x + b fit_a, fit_b = optimize.curve_fit(linear_fit, x[0:5], y[0:5])[0] y_fit = fit_a * x[0:7] + fit_b fit_a, fit_b = optimize.curve_fit(linear_fit, x[6:14], y[6:14])[0] y_fit = np.append(y_fit, fit_a * x[6:14] + fit_b) figure = plt.figure(figsize=(5.15, 5.15)) figure.clf() plot = plt.subplot(111) ax1 = plt.gca() plot.plot(x, y, linestyle = '', linewidth = 0.25, markeredgecolor='none', marker = 'o', label = r'\textit') plot.plot(x, y_fit, linestyle = ':', linewidth = 0.25, markeredgecolor='none', marker = '', label = r'\textit') plot.set_ylabel('Y', labelpad = 6) plot.set_xlabel('X', labelpad = 6) figure.savefig('test.pdf', box_inches='tight') plt.close()
Но это дало мне установку формы на рис. 2, я пробовал играть со значениями, но без изменений я не могу получить соответствие верхней линии. Самое важное требование для меня — как я могу получить Python для получения точки изменения градиента. По существу я хочу, чтобы Python распознавал и вписывал два линейных набора в соответствующий диапазон. Как это можно сделать в Python?
Русские Блоги
Реализация на Python кусочно-линейной интерполяции (при оценке ошибки)
функция
алгоритм
Этот алгоритм несложный. Можно даже сказать, что это очень грубо. Но реализация кода немного сложнее, чем раньше. В основном отражается на сегментации.
Эффект изображения
Код
import numpy as np from sympy import * import matplotlib.pyplot as plt def f(x): return 1 / (1 + x ** 2) def cal(begin, end): by = f(begin) ey = f(end) I = (n - end) / (begin - end) * by + (n - begin) / (end - begin) * ey return I def calnf(x): nf = [] for i in range(len(x) - 1): nf.append(cal(x[i], x[i + 1])) return nf def calf(f, x): y = [] for i in x: y.append(f.subs(n, i)) return y def nfSub(x, nf): tempx = np.array(range(11)) - 5 dx = [] for i in range(10): labelx = [] for j in range(len(x)): if x[j] >= tempx[i] and x[j] < tempx[i + 1]: labelx.append(x[j]) elif i == 9 and x[j] >= tempx[i] and x[j] 1]: labelx.append(x[j]) dx = dx + calf(nf[i], labelx) return np.array(dx) def draw(nf): plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False x = np.linspace(-5, 5, 101) y = f(x) Ly = nfSub(x, nf) plt.plot(x, y, label='Примитивный') plt.plot(x, Ly, label='Функция линейной интерполяции элементов') plt.xlabel('x') plt.ylabel('y') plt.legend() plt.savefig('1.png') plt.show() def lossCal(nf): x = np.linspace(-5, 5, 101) y = f(x) Ly = nfSub(x, nf) Ly = np.array(Ly) temp = Ly - y temp = abs(temp) print(temp.mean()) if __name__ == '__main__': x = np.array(range(11)) - 5 y = f(x) n, m = symbols('n m') init_printing(use_unicode=True) nf = calnf(x) draw(nf) lossCal(nf)
Интеллектуальная рекомендация
Используйте python для загрузки изображений (код для новичков)
Используйте python для загрузки изображений (код для новичков) Вскоре после того, как я только что изучил Python, в коде полно лазеек, и я надеюсь, что вы понимаете Вылезай картинку . .
Npoi читает пустой Excel пустая однооценная проблема
Npoi читает пустой Excel пустая однооценная проблема описание проблемы описание проблемы При чтении Excel через NPOI есть пустая ячейка в Excel, что приведет к тому, что сбор будет меньше, чем количес.
Реализация Rongyun Chat Server и клиента в практике проектов Android
24 апреля 2017 г. 00:58:19 Чтение номера: 2182 1 2 1. Подготовка перед разработкой Прежде всего, мы должны войти на официальный сайт Rongyun, чтобы загрузить соответствующий SDK, и создать соот.
Инициализация сбора, нет регулировки инициализации ADD () Исключение пустого указателя NullPointException
SIP через NAT SIP через firewall-SBC
FireWall&NAT FireWall — это технология пассивной защиты сетевой безопасности, расположенная на границе сети. Запустите стратегию контроля доступа между двумя сетями. Предотвращение не.
Вам также может понравиться
Python — Получить текст на вкладке DIV
Подготовительный знак знаний Компилировать функцию Функция компиляции используется для компиляции регулярных выражений, генерируют регулярное выражение (рисунок) объекта для совпа.
Некоторые небольшие операции примечания WordCloud
Используйте WordCloud для достижения визуализации данных Здесь вам нужна ваша собственная база данных. Эта база данных представляет собой классическую информацию Douban 250 Изображение обложки: Иди сю.
STM32
STM32 STM32 TIMx_CHx , ( / ) , (TIMx_CNT) / (TIMx_CCRx) , 。 STM32 1: ,FDTS TIMx_CR1 CKD[1:0] , 00 ,FDTS=FCK_INT。 ,TIMx_CCMR1 ICF[3:0] , N , , N=8 , IC1 1 , , , Fck_int , 8 1 , , , , 8 。 , 0000. 2: 。 3.
java интервью Вопрос 2
1. Сортировка пузырьков 2. Печать треугольник 3. Обнаружение строки является численной композицией 4. Форматирование даты Перепечатано: https://www.cnblogs.com/lakeslove/p/7354371.html.
Когда расположение окна переходит на страницу, данные передаются через сообщение
Сначала вставьте код: HTML часть: создать скрытый div js part: создайте форму виртуальной формы через js, отправьте напрямую .