Passen Sie eine Step-Funktion in Python an

Fariba Laiq 15 Februar 2024
Passen Sie eine Step-Funktion in Python an

Schrittfunktionen sind Methoden mit Graphen, die wie eine Reihe von Schritten aussehen. Sie bestehen aus einer Reihe von horizontalen Liniensegmenten mit Intervallen dazwischen und können auch als Treppenfunktionen bezeichnet werden.

In jedem gegebenen Intervall haben Stufenfunktionen einen konstanten Wert und erzeugen eine horizontale Linie im Diagramm. Die Intervalle machen die Sprünge zwischen jedem Liniensegment.

Schrittfunktionen sind hilfreich beim Erstellen diskreter Plots und werden häufig beim vektorisierten Plotten in Python verwendet. Sie können in Python mit numpy implementiert werden.

Eine einfache Demonstration von Schrittfunktionen finden Sie in diesem Artikel.

Passen Sie eine Step-Funktion in Python an

Für dieses Beispiel wird die Python-Version 3.10.6 verwendet. Außerdem müssen wir die erforderlichen Bibliotheken installieren, was in unserem Fall numpy ist.

Numpy kann durch Ausführen des folgenden Befehls installiert werden.

pip install numpy

Jetzt brauchen wir scipy, um die Daten zu optimieren und an die Graphen anzupassen. Es kann mit dem folgenden Befehl installiert werden.

pip install scipy

Wir werden für dieses Beispiel eine einfache Schrittfunktion unter Verwendung eines Datensatzes generieren. Importieren Sie zunächst numpy und scipy mit den folgenden Anweisungen in die Umgebung:

import numpy as np
import scipy

Wir werden für dieses Beispiel die numpy-Methode linspace verwenden, um einen kleinen Datensatz zu generieren. Das folgende Code-Snippet kann dieses Dataset generieren:

x = np.linspace(0, 10, 101)

Wir müssen eine heaviside-Funktion generieren, um die Treppendarstellung zu präsentieren. Je nach Anforderung des Anwendungsfalls kann es entweder mit numpy oder einer benutzerdefinierten Methode generiert werden.

Um die Funktion zu erstellen, verwenden wir für dieses Beispiel die numpy-Methode heaviside.

y = np.heaviside((x - 5), 0.0)

Diese Methode generiert den heaviside-Wert gemäss folgendem Diagramm.

                      0   if x1 < 0
heaviside(x1, x2) =  x2   if x1 == 0
                      1   if x1 > 0

Wir werden curve_fit aus der scipy-Bibliothek verwenden, um die args mit optimalen Datenpunkten zu generieren.

curve_fit(sigmoid, x, y)

Nachdem wir den Ablauf geklärt und verstanden haben, sieht das endgültige Skript in etwa so aus:

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.0)


def sigmoid(x, x0, b):
    return expit((x - x0) * b)


args, cov = curve_fit(sigmoid, x, y)
print(args)

Wir können die Ergebnisse dieses Plottens mit matplotlib überwachen. Das Hinzufügen des Plot-Snippets und des endgültigen Codes sieht wie folgt aus.

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.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)

Ausgang:

Python Schrittfunktionsgraph

Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Verwandter Artikel - Python Function