Website-Suche

16 fortgeschrittene Python-Tricks, die jeder Data Scientist kennen sollte


Als Data Scientist verbringen Sie wahrscheinlich einen Großteil Ihrer Zeit mit dem Schreiben von Python-Code, der dafür bekannt ist, dass er leicht zu erlernen und unglaublich vielseitig ist und fast jede Aufgabe bewältigen kann, die Sie ihm stellen.

Aber selbst wenn Sie mit den Grundlagen vertraut sind, gibt es einige fortgeschrittene Tricks, die Ihre Fähigkeiten auf die nächste Stufe heben und Ihnen helfen können, saubereren, schnelleren und effizienteren Code zu schreiben, wodurch Sie Zeit und Mühe in Ihren Projekten sparen.

In diesem Artikel untersuchen wir 10 fortgeschrittene Python-Tricks, die jeder Datenprofi kennen sollte. Ganz gleich, ob Sie sich wiederholende Aufgaben vereinfachen, Ihre Arbeitsabläufe optimieren oder einfach nur Ihren Code besser lesbar machen möchten, diese Techniken verschaffen Ihnen einen soliden Vorteil bei Ihrer Data Science-Arbeit.

1. Listen Sie Verständnisse für prägnanten Code auf

List Comprehensions ist eine pythonische Methode, um Listen in einer einzigen Codezeile zu erstellen. Sie sind nicht nur prägnant, sondern auch schneller als herkömmliche Loops.

Anstatt zum Beispiel zu schreiben:

squares = []
for x in range(10):
    squares.append(x**2)

Sie können es vereinfachen auf:

squares = [x**2 for x in range(10)]

Dieser Trick ist besonders nützlich für Datenvorverarbeitungs- und Transformationsaufgaben.

2. Nutzen Sie Generatoren für die Speichereffizienz

Generatoren sind eine großartige Möglichkeit, große Datasets zu verarbeiten, ohne zu viel Arbeitsspeicher zu verbrauchen. Im Gegensatz zu Listen, die alle Elemente im Speicher speichern, erzeugen Generatoren Elemente im laufenden Betrieb.

Zum Beispiel:

def generate_numbers(n):
    for i in range(n):
        yield i

Verwenden Sie Generatoren, wenn Sie mit großen Dateien oder dem Streamen von Daten arbeiten, um die Speicherauslastung gering zu halten.

3. Verwenden Sie zip, um über mehrere Listen zu iterieren

Die Zip-Funktion ermöglicht es Ihnen, über mehrere Listen gleichzeitig zu iterieren, was besonders praktisch ist, wenn Sie verwandte Datenpunkte koppeln müssen.

Zum Beispiel:

names = ["Alice", "Bob", "Charlie"]
scores = [85, 90, 95]
for name, score in zip(names, scores):
    print(f"{name}: {score}")

Dieser Trick kann Ihren Code vereinfachen, wenn Sie mit parallelen Datensätzen arbeiten.

4. Master-Aufzählung für die Indexverfolgung

Wenn Sie sowohl den Index als auch den Wert von Elementen in einer Liste benötigen, verwenden Sie enumerate, anstatt den Index manuell nachzuverfolgen.

Zum Beispiel:

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")

Dadurch wird Ihr Code sauberer und besser lesbar.

5. Vereinfachen Sie die Datenfilterung mit Filtern

Mit der Filterfunktion können Sie Elemente aus einer Liste extrahieren, die eine bestimmte Bedingung erfüllen.

So filtern Sie beispielsweise gerade Zahlen:

numbers = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, numbers))

Dies ist eine saubere und funktionale Methode, um die Datenfilterung zu handhaben.

6. Verwenden Sie collections.defaultdict für saubereren Code

Wenn Sie mit Wörterbüchern arbeiten, kann defaultdict aus dem Sammlungsmodul Sie davor bewahren, zu überprüfen, ob ein Schlüssel vorhanden ist.

Zum Beispiel:

from collections import defaultdict
word_count = defaultdict(int)
for word in ["apple", "banana", "apple"]:
    word_count[word] += 1

Dadurch entfallen die Notwendigkeit wiederholter if-else-Anweisungen.

7. Optimieren Sie die Datenverarbeitung mit der Karte

Die Map-Funktion wendet eine Funktion auf alle Elemente in einem Iterable an.

So konvertieren Sie beispielsweise eine Liste von Zeichenfolgen in ganze Zahlen:

strings = ["1", "2", "3"]
numbers = list(map(int, strings))

Dies ist eine schnelle und effiziente Möglichkeit, Transformationen auf Ihre Daten anzuwenden.

8. Auspacken mit *args und **kwargs

Die Entpackoperatoren von Python (*args und **kwargs) ermöglichen es Ihnen, eine variable Anzahl von Argumenten in Funktionen zu verarbeiten.

Zum Beispiel:

def summarize(*args):
    return sum(args)

print(summarize(1, 2, 3, 4))  # Output: 10

Dies ist besonders nützlich, um flexible und wiederverwendbare Funktionen zu erstellen.

9. Verwenden Sie Itertools für erweiterte Iterationen

Das itertools-Modul bietet leistungsstarke Werkzeuge für die Arbeit mit Iteratoren. Zum Beispiel kann itertools.combinations alle möglichen Kombinationen einer Liste generieren:

import itertools
letters = ['a', 'b', 'c']
combinations = list(itertools.combinations(letters, 2))

Dies ist von unschätzbarem Wert für Aufgaben wie Feature Engineering oder kombinatorische Analyse.

10. Automatisieren Sie Workflows mit contextlib

Mit dem contextlib-Modul können Sie benutzerdefinierte Kontextmanager erstellen, die sich hervorragend für die Automatisierung von Setup- und Teardown-Aufgaben eignen.

Zum Beispiel:

from contextlib import contextmanager

@contextmanager
def open_file(file, mode):
    f = open(file, mode)
    try:
        yield f
    finally:
        f.close()

with open_file("example.txt", "w") as f:
    f.write("Hello, World!")

Dadurch wird sichergestellt, dass die Ressourcen auch dann ordnungsgemäß verwaltet werden, wenn ein Fehler auftritt.

11. Pandas-Profilerstellung für schnelle Datenexploration

Das Erkunden von Datensätzen kann zeitaufwändig sein, macht es aber pandas_profiling zum Kinderspiel, da diese Bibliothek in nur einer Codezeile einen detaillierten Bericht mit Statistiken, Visualisierungen und Einblicken in Ihren Datensatz generiert:

import pandas as pd
from pandas_profiling import ProfileReport

df = pd.read_csv("your_dataset.csv")
profile = ProfileReport(df, explorative=True)
profile.to_file("report.html")

Dieser Trick eignet sich perfekt, um Datenverteilungen, fehlende Werte und Korrelationen schnell zu verstehen.

12. F-Strings für eine sauberere String-Formatierung

F-Strings, die in Python 3.6 eingeführt wurden, sind ein Game-Changer für die String-Formatierung. Sie sind prägnant, lesbar und schneller als ältere Methoden wie % formatting oder str.format().

Zum Beispiel:

name = "Alice"
age = 30
print(f"{name} is {age} years old.")

Sie können Ausdrücke sogar direkt einbetten:

print(f"{name.upper()} will be {age + 5} years old in 5 years.")

F-Strings machen Ihren Code sauberer und intuitiver.

13. Lambda-Funktionen für schnelle Operationen

Lambda-Funktionen sind kleine, anonyme Funktionen, die sich perfekt für schnelle, einmalige Vorgänge eignen. Sie sind besonders nützlich bei Funktionen wie map(), filter() oder sort().

Zum Beispiel:

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))

Lambda-Funktionen eignen sich hervorragend zur Vereinfachung von Code, wenn Sie keine vollständige Funktionsdefinition benötigen.

14. NumPy Broadcasting für effiziente Berechnungen

Mit NumPy Broadcasting können Sie Operationen für Arrays unterschiedlicher Formen ausführen, ohne dass es zu einer expliziten Schleife kommt.

Zum Beispiel:

import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6]])
result = array * 2  # Broadcasting multiplies every element by 2

Dieser Trick ist unglaublich nützlich für vektorisierte Operationen, um Ihren Code schneller und effizienter zu machen.

15. Matplotlib Subplots für Multi-Plot-Visualisierungen

Das Erstellen mehrerer Diagramme in einer einzigen Abbildung ist mit der Funktion subplots von Matplotlib einfach.

Zum Beispiel:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 2)  # 2x2 grid of subplots
axes[0, 0].plot([1, 2, 3], [4, 5, 6])  # Plot in the first subplot
axes[0, 1].scatter([1, 2, 3], [4, 5, 6])  # Scatter plot in the second subplot
plt.show()

Dies ist perfekt, um mehrere Datensätze zu vergleichen oder verschiedene Aspekte Ihrer Daten nebeneinander zu visualisieren.

16. Scikit-learn-Pipelines für optimiertes maschinelles Lernen

Die Pipeline-Klasse von Scikit-learn hilft Ihnen, mehrere Datenvorverarbeitungs- und Modellierungsschritte in einem einzigen Objekt zu verketten, was die Reproduzierbarkeit gewährleistet und Ihren Arbeitsablauf vereinfacht.

Zum Beispiel:

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('classifier', LogisticRegression())
])
pipeline.fit(X_train, y_train)

Pipelines sind ein Muss für die Organisation und Automatisierung von Machine Learning-Workflows.

Abschließende Gedanken

Diese fortgeschrittenen Python-Tricks können in Ihren Data-Science-Projekten einen großen Unterschied machen. Wenn Sie also das nächste Mal an einem Data Science-Projekt arbeiten, versuchen Sie, einen oder mehrere dieser Tricks zu implementieren. Sie werden erstaunt sein, wie viel Zeit und Mühe Sie sparen können!

Wenn Sie Ihre Data Science-Kenntnisse vertiefen möchten, finden Sie hier einige sehr empfehlenswerte Kurse, die Ihnen helfen können, Python und Data Science zu beherrschen:

  • Data Science-Spezialisierung von Coursera – Diese umfassende Spezialisierung der Johns Hopkins University deckt alles ab, von der Python-Programmierung über maschinelles Lernen bis hin zur Datenvisualisierung, was perfekt für Anfänger und Fortgeschrittene ist.
  • Python for Data Science and Machine Learning Bootcamp von Udemy – Dieser meistverkaufte Kurs auf Udemy bietet praktische Erfahrungen mit Python-Bibliotheken wie Pandas, NumPy, Matplotlib und Scikit-learn.
  • Einführung in die Datenwissenschaft mit Python von edX – Dieser Kurs der Harvard University ist eine hervorragende Einführung in die Datenwissenschaft mit Python, die Datenanalyse, Visualisierung und maschinelles Lernen abdeckt.
  • Data Science Career Track von DataCamp – Der Career Track von DataCamp bietet einen strukturierten Lernpfad mit interaktiven Übungen. Es deckt Python, SQL, maschinelles Lernen und mehr ab und ist damit eine gute Wahl für aufstrebende Datenwissenschaftler.

Wenn Sie sich für diese Kurse anmelden, erwerben Sie das Wissen und die Fähigkeiten, die Sie benötigen, um sich in der Datenwissenschaft auszuzeichnen, während Sie die in diesem Artikel behandelten fortgeschrittenen Python-Tricks anwenden.

Haftungsausschluss: Einige der Links in diesem Artikel sind Affiliate-Links, was bedeutet, dass ich möglicherweise eine kleine Provision verdiene, wenn Sie einen Kurs über sie kaufen. Dies ist für Sie ohne zusätzliche Kosten verbunden und unterstützt die Erstellung kostenloser, qualitativ hochwertiger Inhalte wie dieser.

Vielen Dank für Ihre Unterstützung!

Verwandte Artikel: