迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中拟合阶跃函数

作者:迹忆客 最近更新:2023/04/25 浏览次数:

阶跃函数是带有看起来像一系列步骤的图形的方法。 它们由一系列中间有间隔的水平线段组成,也可以称为阶梯函数。

在任何给定的时间间隔内,阶跃函数都有一个常数值,在图形上创建一条水平线。 间隔使每个线段之间跳跃。

阶跃函数在生成离散图时很有用,并广泛用于 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)

输出:

Python Step Function Graph

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

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 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便