Python Data Science in Cursor: Ein umfassender Leitfaden

Data Science erfordert schnelles Experimentieren, leistungsstarke Visualisierung und reproduzierbare Workflows. Cursor vereint diese Aspekte, indem es einen erstklassigen Code-Editor mit KI-unterstützter Analyse, nativer Jupyter-Unterstützung und nahtloser Integration mit dem Python-Data-Science-Stack kombiniert. Dieser Leitfaden führt Sie durch die Einrichtung Ihrer Umgebung und die Nutzung der einzigartigen Funktionen von Cursor für pandas, NumPy, Matplotlib und darüber hinaus.
Einrichten der Data-Science-Umgebung
Eine zuverlässige Python-Umgebung ist das Fundament jedes Data-Science-Projekts. Cursor macht die Umgebungsverwaltung durch integrierte Terminal-Unterstützung und Erkennung virtueller Umgebungen einfach.
Python-Installation und virtuelle Umgebungen
Überprüfen Sie Ihre Python-Installation im Terminal von Cursor:
python --version
Erstellen Sie eine dedizierte virtuelle Umgebung für Ihr Projekt:
python -m venv .venv
source .venv/bin/activate # Unter Windows: .venv\Scripts\activate
Cursor erkennt .venv automatisch im Stammverzeichnis Ihres Arbeitsbereichs und bietet an, es als aktiven Interpreter auszuwählen. Achten Sie auf die Python-Versionsanzeige in der Statusleiste.
Installation der wichtigsten Data-Science-Bibliotheken
Installieren Sie den essenziellen Stack mit pip:
pip install pandas numpy matplotlib seaborn scikit-learn jupyterlab
Fügen Sie für Deep-Learning-Workflows PyTorch oder TensorFlow hinzu:
pip install torch torchvision torchaudio
Fixieren Sie Ihre Abhängigkeiten für Reproduzierbarkeit:
pip freeze > requirements.txt
Vermeiden Sie das Mischen von conda und pip in derselben Umgebung, es sei denn, Sie verstehen die Auswirkungen der Abhängigkeitsauflösung. Bleiben Sie bei einem Paketmanager pro Projekt, um Konflikte zu vermeiden.
Cursor für Python konfigurieren
Installieren Sie die offizielle Python-Erweiterung in Cursor für IntelliSense, Linting und Formatierung. Empfohlene Einstellungen für Data Science:
{
"python.analysis.typeCheckingMode": "basic",
"python.formatting.provider": "black",
"python.linting.enabled": true,
"python.linting.pylintEnabled": false,
"python.linting.ruffEnabled": true,
"jupyter.askForKernelRestart": false,
"jupyter.interactiveWindow.creationMode": "perFile"
}
Jupyter-Notebooks in Cursor
Jupyter-Notebooks sind zentral für explorative Datenanalyse. Cursor bietet erstklassige Notebook-Unterstützung mit KI-Assistenz, Variableninspektion und Exportfunktionen.
Notebooks erstellen und ausführen
Erstellen Sie ein neues Notebook über die Befehlspalette (Strg+Shift+P), indem Sie "Jupyter: Create New Jupyter Notebook" auswählen. Cursor öffnet die .ipynb-Datei mit einer umfangreichen Oberfläche, die Code-Zellen, Markdown und Ausgaben inline anzeigt.
Wählen Sie Ihren Kernel aus dem Dropdown-Menü oben rechts. Cursor listet automatisch alle verfügbaren Python-Interpreter und conda-Umgebungen auf.
Verwenden Sie Tastenkombinationen, um Notebook-Workflows zu beschleunigen: Shift+Enter führt die aktuelle Zelle aus, A fügt eine Zelle darüber ein und B fügt eine Zelle darunter ein, wenn Sie sich im Befehlsmodus befinden.
KI-unterstützte Zellengenerierung
Beschreiben Sie Ihr Analyseziel in einer Markdown-Zelle und bitten Sie dann die KI von Cursor, den entsprechenden Python-Code zu generieren. Zum Beispiel:
## Goal: Load the Titanic dataset, handle missing ages with median imputation,
## and visualize survival rates by passenger class
Cursor generiert:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv("titanic.csv")
df['Age'] = df['Age'].fillna(df['Age'].median())
plt.figure(figsize=(10, 6))
sns.barplot(data=df, x='Pclass', y='Survived', hue='Sex')
plt.title('Survival Rates by Passenger Class and Gender')
plt.ylabel('Survival Rate')
plt.show()
Variableninspektor und Datenbetrachter
Nach dem Ausführen von Zellen verwenden Sie den Variablen-Bereich, um DataFrames, Arrays und Modellobjekte zu inspizieren. Klicken Sie auf eine DataFrame-Variable, um einen tabellenähnlichen Datenbetrachter mit Sortierung und Filterung zu öffnen. Dies macht wiederholte df.head()-Aufrufe überflüssig.
Große DataFrames können beim Öffnen im Datenbetrachter erheblichen Speicher verbrauchen. Erwägen Sie bei Datensätzen mit mehr als einigen Millionen Zeilen eine Stichprobenentnahme oder Aggregation vor der visuellen Inspektion.
Konvertieren zwischen Skripten und Notebooks
Cursor unterstützt die Konvertierung von .py-Skripten in .ipynb-Notebooks und umgekehrt. Verwenden Sie die Befehlspalette, um "Jupyter: Export Current Python File as Jupyter Notebook" auszuführen. Dies ist nützlich, wenn Sie von der Experimentierung zu produktionsreifen Skripten übergehen müssen.
Datenmanipulation mit Pandas
Pandas ist das Arbeitspferd der Python-Datenmanipulation. Die Autovervollständigung und KI-Unterstützung von Cursor machen DataFrame-Operationen schneller und weniger fehleranfällig.
KI-generierte Datenbereinigungspipelines
Die Datenbereinigung ist oft repetitiv. Lassen Sie Cursor ganze Pipelines aus Beschreibungen in natürlicher Sprache generieren:
# Clean the sales dataset: remove duplicates, parse dates,
# standardize column names to snake_case, and filter out negative revenue
Cursor produziert:
import pandas as pd
df = pd.read_csv("sales.csv")
df = df.drop_duplicates()
df['OrderDate'] = pd.to_datetime(df['OrderDate'], errors='coerce')
df.columns = df.columns.str.lower().str.replace(' ', '_')
df = df[df['revenue'] >= 0]
Komplexe Transformationen und Gruppierung
Für fortgeschrittene Operationen wie mehrstufige Gruppierung und Fensterfunktionen glänzen die Inline-Vorschläge von Cursor:
monthly_stats = (
df.groupby([df['order_date'].dt.to_period('M'), 'region'])
.agg(
total_revenue=('revenue', 'sum'),
avg_order_value=('revenue', 'mean'),
order_count=('order_id', 'nunique')
)
.reset_index()
)
Wenn Sie komplexe Pandas-Ketten schreiben, brechen Sie sie mit Klammern in mehrere Zeilen auf. Cursor formatiert diese schön und bietet bei jedem Schritt eine bessere Autovervollständigung.
Strategischer Umgang mit fehlenden Daten
Fehlende Daten erfordern Domänenwissen. Fragen Sie Cursor nach Strategien speziell für Ihren Datensatz:
# For numeric columns: median imputation
# For categorical columns: mode imputation
# For datetime columns: forward fill
numeric_cols = df.select_dtypes(include=['number']).columns
categorical_cols = df.select_dtypes(include=['object']).columns
datetime_cols = df.select_dtypes(include=['datetime64']).columns
df[numeric_cols] = df[numeric_cols].fillna(df[numeric_cols].median())
df[categorical_cols] = df[categorical_cols].fillna(df[categorical_cols].mode().iloc[0])
df[datetime_cols] = df[datetime_cols].ffill()
Numerisches Rechnen mit NumPy
NumPy bildet das numerische Rückgrat für Python Data Science. Cursor hilft Ihnen, vektorisierte, effiziente Array-Operationen zu schreiben.
Array-Erstellung und -Manipulation
Die Autovervollständigung von Cursor für NumPy ist umfangreich. Generieren Sie Arrays und führen Sie Transformationen durch:
import numpy as np
# Create a 3D array representing image batches
images = np.random.rand(32, 224, 224, 3) # batch, height, width, channels
# Normalize pixel values to [0, 1]
normalized = (images - images.min()) / (images.max() - images.min())
# Transpose for a different library's expected format
transposed = normalized.transpose(0, 3, 1, 2) # NCHW format
Broadcasting und Vektorisierung
Vermeiden Sie Python-Schleifen, indem Sie das Broadcasting von NumPy nutzen. Wenn Sie sich nicht sicher sind, wie Sie eine Operation vektorisieren können, beschreiben Sie sie Cursor:
# Vectorized calculation of Euclidean distance from a centroid
centroid = np.array([5.0, 3.0])
points = np.random.rand(1000, 2)
distances = np.sqrt(np.sum((points - centroid) ** 2, axis=1))
Das implizite Broadcasting von NumPy kann unerwartete Formen erzeugen. Überprüfen Sie die Ausgabe-Array-Dimensionen immer mit .shape nach komplexen Operationen.
Integration mit Pandas
NumPy-Funktionen arbeiten nahtlos mit pandas Series und DataFrames:
# Apply a NumPy universal function to a DataFrame column
df['log_revenue'] = np.log1p(df['revenue'])
# Boolean indexing with compound conditions
high_value = df[
(np.abs(df['revenue'] - df['revenue'].mean()) > 2 * df['revenue'].std()) |
(df['quantity'] > 100)
]
Visualisierung mit Matplotlib und Seaborn
Effektive Visualisierung verwandelt Daten in Erkenntnisse. Die Inline-Plot-Darstellung und KI-Vorschläge von Cursor beschleunigen Ihren Visualisierungs-Workflow.
Erstellen publikationsreifer Diagramme
Cursor rendert Matplotlib-Figuren direkt unter Code-Zellen in Notebooks. Generieren Sie komplexe mehrteilige Abbildungen:
import matplotlib.pyplot as plt
import seaborn as sns
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
# Distribution plot
sns.histplot(data=df, x='revenue', kde=True, ax=axes[0, 0])
axes[0, 0].set_title('Revenue Distribution')
# Correlation heatmap
corr = df[['revenue', 'quantity', 'discount']].corr()
sns.heatmap(corr, annot=True, cmap='coolwarm', ax=axes[0, 1])
axes[0, 1].set_title('Feature Correlations')
# Box plot by category
sns.boxplot(data=df, x='category', y='revenue', ax=axes[1, 0])
axes[1, 0].set_title('Revenue by Category')
# Time series
monthly = df.groupby(df['order_date'].dt.to_period('M'))['revenue'].sum()
monthly.plot(ax=axes[1, 1], marker='o')
axes[1, 1].set_title('Monthly Revenue Trend')
plt.tight_layout()
plt.show()
Speichern Sie Abbildungen in mehreren Formaten für verschiedene Anwendungsfälle: plt.savefig('figure.png', dpi=300) für Präsentationen und plt.savefig('figure.pdf') für Publikationen.
Interaktive Visualisierungen
Für Dashboards und interaktive Exploration integrieren Sie Plotly:
import plotly.express as px
fig = px.scatter(
df, x='quantity', y='revenue', color='category',
size='discount', hover_data=['product_name'],
title='Revenue vs Quantity by Category'
)
fig.show()
Cursor rendert Plotly-Diagramme interaktiv im Notebook-Ausgabebereich, komplett mit Zoomen, Verschieben und Tooltips.
KI-vorgeschlagene Visualisierungen
Nicht sicher, welches Diagramm Sie verwenden sollen? Fragen Sie Cursor:
Ich habe einen Datensatz mit Kundenabwanderung, Vertragsdauer und monatlichen Gebühren.
Welche Visualisierungen würden Abwanderungstreiber am besten aufdecken?
Cursor könnte je nach Analysekontext Kaplan-Meier-Kurven, Kohortentabellen oder SHAP-Zusammenfassungsdiagramme vorschlagen.
Machine-Learning-Workflows
Von der Vorverarbeitung bis zur Modellbewertung optimiert Cursor die Machine-Learning-Entwicklung mit scikit-learn und darüber hinaus.
Vorverarbeitung und Feature Engineering
Verwenden Sie Cursor, um vollständige Vorverarbeitungspipelines zu generieren:
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.impute import SimpleImputer
numeric_features = ['age', 'income', 'tenure']
categorical_features = ['gender', 'region', 'plan_type']
preprocessor = ColumnTransformer(
transformers=[
('num', StandardScaler(), numeric_features),
('cat', OneHotEncoder(handle_unknown='ignore'), categorical_features)
]
)
Modelltraining und -bewertung
Cursor kann Trainingsschleifen und Bewertungsmetriken erstellen:
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print(classification_report(y_test, y_pred))
Trennen Sie Trainings- und Testdaten immer vor jeglicher Vorverarbeitung. Das Anpassen von Transformern auf den gesamten Datensatz führt zu Datenleckagen und überoptimistischen Leistungsschätzungen.
Hyperparameter-Tuning
Generieren Sie Hyperparameter-Suchgitter mit der Unterstützung von Cursor:
from sklearn.model_selection import GridSearchCV
param_grid = {
'n_estimators': [50, 100, 200],
'max_depth': [None, 10, 20, 30],
'min_samples_split': [2, 5, 10]
}
grid_search = GridSearchCV(
RandomForestClassifier(random_state=42),
param_grid,
cv=5,
scoring='f1_macro',
n_jobs=-1
)
grid_search.fit(X_train, y_train)
print(f"Best parameters: {grid_search.best_params_}")
KI-gesteuerte Datenanalyse
Die KI-Fähigkeiten von Cursor gehen über die Codegenerierung hinaus und umfassen statistisches Denken und analytische Anleitung.
Explorative Datenanalyse mit natürlicher Sprache
Laden Sie einen Datensatz hoch und bitten Sie Cursor, eine EDA durchzuführen:
Analysieren Sie die Datei customer.csv. Zeigen Sie mir die Verteilung des Customer Lifetime Value,
identifizieren Sie Ausreißer und schlagen Sie Segmente für gezieltes Marketing vor.
Cursor generiert eine Sequenz von Zellen, die deskriptive Statistiken, Visualisierungen und Clustering-Vorschläge berechnen.
Automatisierte Erkenntnisgenerierung
Für Zeitreihendaten kann Cursor Dekomposition, Anomalieerkennung und Prognosen vorschlagen:
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(df['sales'], model='multiplicative', period=12)
result.plot()
plt.show()
Analyse in Markdown dokumentieren
Data Science ist kollaborativ. Verwenden Sie Cursor, um Markdown-Zusammenfassungen Ihrer Erkenntnisse neben dem Code zu generieren:
## Key Findings
- **Revenue Distribution**: Right-skewed with a long tail of high-value transactions
- **Seasonality**: Clear Q4 peak in sales, suggesting holiday-driven demand
- **Churn Predictors**: Tenure < 6 months and monthly charges > $70 are strongest indicators
Fazit
Cursor definiert Python Data Science neu, indem es interaktives Computing, KI-Unterstützung und professionelles Code-Editing in einer einzigen Umgebung vereint. Ob Sie unstrukturierte Datensätze in pandas bereinigen, Modelle in scikit-learn trainieren oder Visualisierungen in Matplotlib erstellen – Cursor beschleunigt jeden Schritt. Meistern Sie die Jupyter-Notebook-Integration, nutzen Sie KI für die Boilerplate-Generierung und validieren Sie immer Ihre analytischen Annahmen. Mit Cursor wird Ihr Data-Science-Workflow schneller, reproduzierbarer und tief in intelligente Assistenz integriert.