10 erstaunlich nützliche grundlegende Python-Funktionen

Bild



Diejenigen, die mit Python arbeiten, wissen, dass diese Sprache aufgrund ihres riesigen Ökosystems gut ist. Man könnte sogar sagen, dass die Programmiersprache in nichts Besonderem auffallen würde, wenn nicht ihre wunderbaren Pakete, die den Hauptpaketen neue Funktionen hinzufügen.



NumPy ist ein Beispiel. Die Matrix-Tools sind auch in Python einfach in Ordnung, aber die Verwendung von NumPy verbessert die Dinge um ein Vielfaches. Darüber hinaus verfügt diese Sprache über einige coole Funktionen, die sie noch funktionaler machen. Mit diesen Funktionen können Sie die Anzahl der Abhängigkeiten reduzieren, Zeit sparen und den Entwicklungsprozess selbst vereinfachen. Mal sehen, was diese Möglichkeiten sind.



Übrigens fügte Alexey Nekrasov, Leiter der Python-Abteilung bei MTS und Programmdirektor der Python-Abteilung bei Skillbox, seine Ratschläge zu einigen Funktionen hinzu. Um zu verdeutlichen, wo sich die Übersetzung befindet und wo sich die Kommentare befinden, werden wir letztere mit Text hervorheben.



# 1 Lambda



Ich habe einmal einen ganzen Artikel darüber geschrieben, warum Lambda Python zur optimalen Programmiersprache für statistische Berechnungen macht. Dank dieser Funktion können mathematische Operationen auf nahezu alle Arten von Daten angewendet werden, wobei nicht ganze Funktionen verwendet werden, sondern Ausdrücke ausgewertet werden.



Es ermöglicht die globale Einführung von Definitionen sowie die funktionale Syntax und Methodik in einer Sprache, die noch eine Klassenstruktur aufweist.



Auf diese Weise können Sie beim Schreiben des Programms Zeit sparen, Ressourcen sparen und den Code präziser gestalten. Darüber hinaus können Sie mit Lambda Methoden wie apply () verwenden, um schnell Ausdrücke auf alle Teilmengen Ihrer Daten anzuwenden. Für einen Datenwissenschaftler und nicht nur für Vertreter dieses Berufs sind solche Möglichkeiten äußerst nützlich.



Die Syntax lautet wie folgt. Wir beginnen mit dem Rückgabewert des Lambda-Ausdrucks, gefolgt von der Variablen, die wir als Positionsargument angeben möchten. Danach führen wir die Operation mit diesem Argument als Variable aus:



mean = lambda x : sum(x) / len(x)
      
      





Jetzt können wir den Aufruf wie bei jeder anderen Methode in Python ausführen:



x = [5, 10, 15, 20]
print(mean(x))
      
      





Alexeys Kommentar:



Seien Sie vorsichtig mit Lambda, um die Lesbarkeit des Codes nicht zu beeinträchtigen. Hier einige Tipps:

Von PEP8. Verwenden Sie immer die def-Anweisung anstelle des Zuweisungsoperators, der den Lambda-Ausdruck direkt an einen Bezeichner bindet:



Richtig:



def f (x): return 2 * x
      
      





Falsch:



f = lambda x: 2 * x
      
      





Wenn die Länge des Lambda-Ausdrucks mehr als 40 Zeichen beträgt, fügen Sie höchstwahrscheinlich zu viel Logik in eine Codezeile ein und diese ist unlesbar geworden. Sie sollten das nicht tun, es ist besser, es in eine separate Funktion zu setzen.


# 2: Shutil



Das Shutil-Modul ist eines der am meisten unterschätzten Tools im Python-Arsenal. Es ist in der Standardbibliothek enthalten und kann wie jedes andere Modul in der Sprache importiert werden:



import shutil
      
      





Was macht Shutil? Tatsächlich handelt es sich um eine allgemeine Schnittstelle zur Programmiersprache Python in Bezug auf das Dateisystem Ihres Betriebssystems. Diese Aufrufe werden häufig über das OS-Modul getätigt. Vergessen Sie nicht Shutil. Sie mussten wahrscheinlich eine Datei mit einem Skript von Verzeichnis zu Verzeichnis verschieben, was sehr mühsam war, oder?



Shutil löst diese klassischen Probleme mit Datei- und Zuordnungstabellen mit einer Lösung auf hoher Ebene. Dies ist der Schlüssel, um Zeit zu sparen und den Dateivorgang zu beschleunigen. Hier sind einige Beispiele für Anrufe auf hoher Ebene, die Shutil bereitstellt.



import shutil
shutil.copyfile('mydatabase.db', 'archive.db')
shutil.move('/src/High.py', '/packages/High')
      
      





# 3: glob



Glob ist vielleicht nicht so großartig wie Shutil, und es war in Bezug auf die Nützlichkeit nicht einmal in der Nähe von Lambda. In einigen Fällen ist es jedoch unersetzlich. Dieses Modul wird verwendet, um Verzeichnisse für Platzhalter zu finden. Dies bedeutet, dass damit Daten zu Dateien auf Ihrem PC und deren Erweiterungen zusammengefasst werden können. Das Modul wird ohne Probleme importiert:



import glob
      
      





Ich bin mir nicht sicher, ob dieses Modul mehr Funktionen bietet, aber glob () ist erforderlich, um Dateisuchen durchzuführen. Die Suche verwendet die Unix-Syntax, d.h. jene. *, / usw.



glob.glob('*.ipynb')
      
      





Diese Zeichenfolge gibt alle Dateinamen zurück, die der angegebenen Abfrage entsprechen. Die Funktion kann sowohl zur Datenaggregation als auch einfach zum Arbeiten mit Dateien verwendet werden.



# 4: Argparse



Dieses Modul bietet eine robuste und umfassende Methode zum Parsen von Befehlszeilenargumenten. Viele Entwicklungstools verwenden dieses Konzept, und Sie können mit all dem über die Unix-Befehlszeile arbeiten. Ein gutes Beispiel ist Python Gunicorn, das übergebene Befehlszeilenargumente verarbeitet. Um mit einem Modul arbeiten zu können, müssen Sie es importieren.



import argparse
      
      





Um damit arbeiten zu können, erstellen wir einen neuen Typ. Dies ist der Argument-Parser:



parser = argparse.ArgumentParser(prog = 'top',
description = 'Show top lines from the file')
      
      





Jetzt fügen wir unserem Parser neue Argumente hinzu. In diesem Fall erstellen wir ein Argument, das übergeben werden kann, um die Anzahl der Zeilen zu bestimmen, die für jede Datei ausgegeben werden sollen:



parser.add_argument('-l', '--lines', type=int, default=10)
      
      





Hier wurden mehrere Schlüsselwortargumente hinzugefügt, von denen eines den Datentyp angibt, der für dieses Argument übergeben wird, und das andere einen Standardwert liefert, wenn die Datei ohne dieses Argument aufgerufen wird. Wir können die Argumente jetzt abrufen, indem wir die Funktion parse_args () für unseren neuen Parser-Typ für Argumente aufrufen:



args = parser.parse_args()
      
      





Wir können diese Python-Datei jetzt aufrufen, um die erforderlichen Optionen von Bash zu kompilieren und auch einfach bereitzustellen.



python top.py --lines=5 examplefile.txt
      
      





Unnötig zu sagen, dass dies definitiv nützlich sein kann. Ich habe dieses Modul oft benutzt, wenn ich mit Crontab gearbeitet habe. Es kann Skripte mit bestimmten Unix-Zeitstempeln ausführen. Darüber hinaus kann dieses Skript auch für Supervisoren verwendet werden, die Bash-Befehle ohne Benutzereingriff als Worker ausführen.



# 5: wieder importieren



Ein weiteres stark unterschätztes Modul. Das Modul re wird zum Parsen von Zeichenfolgen mit regulären Ausdrücken verwendet und bietet mehr Optionen für die Arbeit mit Zeichenfolgen in Python. Wie oft sind Sie auf algorithmische Entscheidungen gestoßen, die auf Funktionen basieren, die in einer Zeichenfolgenklasse wie str.split () enthalten sind? Aber hör auf, es zu ertragen! Schließlich sind reguläre Ausdrücke viel einfacher und benutzerfreundlicher!



import re
      
      





Das Re-Modul bietet im Gegensatz zu einigen anderen in dieser Liste nicht nur eine, sondern viele äußerst nützliche Funktionen. Sie sind besonders relevant für die Arbeit mit großen Datenmengen, was für Datenwissenschaftler wichtig ist. Zwei Beispiele sind zunächst die Funktionen sub () und findall ().



import re
re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
'cat in the hat'
      
      





:



regex :



  • re.compile. re.compile ( ) regex.
  • re.compile regex.
  • re.VERBOSE. re.compile re.VERBOSE ( ) regex . .


:





pattern = '^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$'
re.search(pattern, 'MDLV')
      
      









pattern = '''
    ^                   # beginning of string
    M{0,3}              # thousands - 0 to 3 Ms
    (CM|CD|D?C{0,3})    # hundreds - 900 (CM), 400 (CD), 0-300 (0 to 3 Cs),
                        #            or 500-800 (D, followed by 0 to 3 Cs)
    (XC|XL|L?X{0,3})    # tens - 90 (XC), 40 (XL), 0-30 (0 to 3 Xs),
                        #        or 50-80 (L, followed by 0 to 3 Xs)
    (IX|IV|V?I{0,3})    # ones - 9 (IX), 4 (IV), 0-3 (0 to 3 Is),
                        #        or 5-8 (V, followed by 0 to 3 Is)
    $                   # end of string
    '''
re.search(pattern, 'M', re.VERBOSE)
      
      





  • python raw string regex.
  • Benannte Erfassungsgruppen für alle Erfassungsgruppen, wenn mehr als eine vorhanden ist (? P ...). (Auch wenn es nur ein Capture gibt, ist es auch besser, es zu verwenden.)

    regex101.com ist eine großartige Website zum Debuggen und Überprüfen von Regex



# 6: Math



Dies ist nicht das größte Modul in der Geschichte, aber es ist oft nützlich. Das Mathematikmodul bietet Ihnen Zugriff auf alles von sin und cos bis hin zu Logarithmen. All dies ist äußerst wichtig bei der Arbeit mit Algorithmen.



import math
      
      





Ein Modul kann sicherlich Zeit sparen, indem mathematische Operationen ohne Abhängigkeiten verfügbar gemacht werden. In diesem Beispiel werde ich die log () - Funktion demonstrieren, aber wenn Sie tiefer in das Modul eintauchen, öffnet sich eine ganze Welt.



import math
math.log(1024, 2)
      
      





# 7: Statistik



Ein weiteres Modul, das für statistische Berechnungen äußerst nützlich ist. Es bietet Zugriff auf grundlegende Statistiken - nicht so tief wie bei SCiPy, kann aber für die Datenanalyse ausreichen. Der Alias ​​dieses Moduls ist st, in einigen Fällen stc oder sts. Aber Aufmerksamkeit - nicht scs, dies ist ein Alias ​​für Scipy.stats.



import statistics as st
      
      





Dieses Modul bietet viele nützliche Funktionen, auf die Sie achten sollten! Das Tolle an diesem Paket ist, dass es keine Abhängigkeiten hat. Werfen wir einen Blick auf einige grundlegende statistische Operationen für allgemeine Zwecke:



import statistics as st
st.mean(data)
st.median(data)
 
st.variance(data)
      
      





# 8: urllib



Wenn viele der anderen Module in dieser Liste nicht bekannt sind, ist urlib eine Ausnahme. Lass es uns importieren!



import urllib
      
      





Der Kolben kann stattdessen verwendet werden, da er funktionaler ist. Für die meisten Grundfunktionen reichen jedoch die Funktionen der Standardbibliothek aus, sodass Sie sich keine Gedanken über Abhängigkeiten machen müssen. Wenn zusätzliche Funktionen benötigt werden, lohnt es sich in diesem Fall natürlich, auf etwas anderes zu achten. Wenn es sich jedoch um eine HTTP-Anfrage handelt, wird urlib das tun, was es benötigt.



from urllib.request import urlopen
 
data = null
with urlopen('http://example_url/') as response: data = response
      
      





Das URLib-Modul ist etwas, das ich sehr empfehlen kann, um mehr zu lernen.



# 9: Datum / Uhrzeit



Ein weiteres gutes Beispiel für ein Werkzeug, das im wissenschaftlichen Rechnen weit verbreitet ist, ist der Datums- und Uhrzeittyp. Sehr oft haben die Daten Zeitstempel. Manchmal sind sie sogar eine Vorhersagefunktion, mit der das Modell trainiert wird. Dieses Modul wird häufig mit dem Alias ​​dt verwendet:



import datetime as dt
      
      





Wir können jetzt Datums- und Uhrzeittypen erstellen und mit der typischen Datums- und Uhrzeitsyntax mit Eigenschaften wie Jahr, Monat und Tag arbeiten. Dies ist unglaublich nützlich, um bestimmte Datumsabschnitte in Ihren Daten neu zu formatieren, zu analysieren und damit zu arbeiten. Werfen wir einen Blick auf einige der Hauptfunktionen dieses Pakets:



import datetime as dt
now = dt.date.today()
print(now.year)
print(now.month)
      
      





# 10: zlib



Der letzte Beitrag zu dieser Liste ist das zlib-Modul. Es ist eine vielseitige Datenkomprimierungslösung mit der Programmiersprache Python. Das Modul ist äußerst nützlich bei der Arbeit mit Paketen.



import zlib
      
      





Die wichtigsten Funktionen sind hier compress () und decompress ().



h = " Hello, it is me, you're friend Emmett!"print(len(h))
t = zlib.compress(h)
print(len(t))
z = decompress(t)
print(len(z))
      
      





Abschließend möchte ich sagen, dass die Programmierung in Python aufgrund der großen Anzahl von Abhängigkeiten manchmal schwierig erscheint. Mit der Standard-Sprachbibliothek können Sie dieses Problem teilweise beheben. Darüber hinaus können Standard-Python-Tools Zeit sparen, die Codemenge reduzieren und die Lesbarkeit verbessern.



All Articles