在 Python 中拟合阶跃函数
阶跃函数是带有看起来像一系列步骤的图形的方法。 它们由一系列中间有间隔的水平线段组成,也可以称为阶梯函数。
在任何给定的时间间隔内,阶跃函数都有一个常数值,在图形上创建一条水平线。 间隔使每个线段之间跳跃。
阶跃函数在生成离散图时很有用,并广泛用于 Python 中的矢量化绘图。 它们可以使用 numpy 在 Python 中实现。
本文给出了阶跃函数的简单演示。
在 Python 中拟合阶跃函数
对于此示例,将使用 Python 版本 3.10.6。 此外,我们需要安装所需的库,在我们的例子中,它是 numpy。
可以通过运行以下命令来安装 Numpy。
$ pip install numpy
现在我们需要 scipy 来优化数据并将其拟合到图表中。 可以使用下面的命令安装它。
$ pip install scipy
对于此示例,我们将使用数据集生成一个简单的阶跃函数。 开始,使用以下语句将 numpy 和 scipy 导入到环境中:
import numpy as np
import scipy
我们将在此示例中使用 numpy linspace 方法来生成一个小数据集。 下面的代码片段可以生成这个数据集:
x = np.linspace(0, 10, 101)
我们需要生成一个 heaviside 函数来展示楼梯绘图。 根据用例要求,它可以使用 numpy 或自定义方法生成。
要创建该函数,我们将在本示例中使用 numpy 方法 heaviside。
y = np.heaviside((x - 5), 0.)
此方法根据下图生成重赛值。
0 if x1 < 0
heaviside(x1, x2) = x2 if x1 == 0
1 if x1 > 0
我们将使用 scipy 库中的 curve_fit 来生成具有最佳数据点的参数。
curve_fit(sigmoid, x, y)
现在我们已经清理并理解了流程,最终脚本将如下所示:
import numpy as np
from scipy.special import expit
from scipy.optimize import curve_fit
x = np.linspace(0, 10, 101)
y = np.heaviside((x - 5), 0.)
def sigmoid(x, x0, b):
return expit((x - x0) * b)
args, cov = curve_fit(sigmoid, x, y)
print(args)
我们可以使用 matplotlib 监控此绘图的结果。 添加绘图片段和最终代码如下。
import matplotlib.pyplot as plt
import numpy as np
from scipy.special import expit
from scipy.optimize import curve_fit
x = np.linspace(0, 10, 101)
y = np.heaviside((x - 5), 0.)
def sigmoid(x, x0, b):
return expit((x - x0) * b)
args, cov = curve_fit(sigmoid, x, y)
plt.scatter(x, y)
plt.plot(x, sigmoid(x, *args))
plt.show()
print(args)
输出:
相关文章
Django 中的 Slug
发布时间:2023/05/04 浏览次数:173 分类:Python
-
本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。
在 Django 中按降序过滤查询集中的项目
发布时间:2023/05/04 浏览次数:157 分类:Python
-
在这个讲解中,学习如何借助 Django 中的 order_by() 方法按降序过滤出查询集中的项目。
Django ALLOWED_HOSTS 介绍
发布时间:2023/05/04 浏览次数:181 分类:Python
-
本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。
Django 中的 Select_related 方法
发布时间:2023/05/04 浏览次数:129 分类:Python
-
本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。
使用 Post 请求将数据发送到 Django 服务器
发布时间:2023/05/04 浏览次数:159 分类:Python
-
在这篇关于Django的讲解中,我们简要介绍了post和get请求以及如何在Django中用post实现CSRF token。
Django 返回 JSON
发布时间:2023/05/04 浏览次数:106 分类:Python
-
在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。
在 Django 中创建对象
发布时间:2023/05/04 浏览次数:59 分类:Python
-
本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。
在 Django 中为多项选择创建字段
发布时间:2023/05/04 浏览次数:75 分类:Python
-
在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。