python numpy/scipy曲线拟合

标签 python numpy scipy curve-fitting

我有一些点,我正在尝试为这些点拟合曲线。我知道存在 scipy.optimize.curve_fit 函数,但我不了解文档,即如何使用此函数。

我的观点:np.array([(1, 1), (2, 4), (3, 1), (9, 3)])

谁能解释一下怎么做?

最佳答案

我建议你从简单的多项式拟合开始,scipy.optimize.curve_fit尝试将您必须知道的函数 f 拟合到一组点。

这是一个使用 numpy.polyfitpoly1d 的简单 3 度多项式拟合,第一个执行最小二乘多项式拟合,第二个计算新点:

import numpy as np
import matplotlib.pyplot as plt

points = np.array([(1, 1), (2, 4), (3, 1), (9, 3)])
# get x and y vectors
x = points[:,0]
y = points[:,1]

# calculate polynomial
z = np.polyfit(x, y, 3)
f = np.poly1d(z)

# calculate new x's and y's
x_new = np.linspace(x[0], x[-1], 50)
y_new = f(x_new)

plt.plot(x,y,'o', x_new, y_new)
plt.xlim([x[0]-1, x[-1] + 1 ])
plt.show()

enter image description here

关于python numpy/scipy曲线拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19165259/

相关文章:

PYTHON如何生成2000万个不重复的随机数

python - 在 Pandas 中添加日期

python - 当给定的方法不存在时调用类中的另一个方法?

python - Django 与 Peewee 连接池 MySQL 断开连接

python - 索引错误 : too many indices for np. 数组

python - 在 pdist 压缩距离矩阵中找到最小值的索引

python - 扩展/放大 numpy 数组

python - 我需要加速一个功能。我应该使用 cython、ctypes 还是其他东西?

python-2.7 - Python - 尝试使用 numpy.mean 时出现 "cannot perform reduce with flexible type"

python - 在非 NaN 的列中查找第一个和/或最后一个值的索引