10 KiB
Python @ CDS: Standards, Empfehlungen und Anleitung
Zusammenfassung
- MS Code oder Pycharm als Entwicklungsumgebung
- Conda und Pip als Paketmanager
- Standard-Packages gemäss seperatem requirements.txt file
1. Standardisierung der IDEs: VSCode oder PyCharm
VSCode
Warum VSCode? VSCode ist eine leichtgewichtige, aber leistungsstarke Open-Source-IDE, die von Microsoft entwickelt wird. Es bietet eine hervorragende Unterstützung für Python, einschließlich der Integration mit Conda-Umgebungen, Debugging, und der Möglichkeit, Jupyter Notebooks direkt innerhalb der IDE auszuführen.
Vorteile:
- Erweiterbarkeit: Es gibt zahlreiche Erweiterungen für Python-Entwicklung, wie z.B. für das Linting, Formatieren und Debuggen.
- Jupyter-Integration: Die direkte Unterstützung von Jupyter Notebooks innerhalb von VSCode erleichtert die interaktive Entwicklung.
- Leichtgewichtig: Im Vergleich zu anderen IDEs ist VSCode ressourcenschonend und schnell.
Installation und Einrichtung:
- Lade VSCode hier herunter.
- Installiere die Python-Erweiterung von Microsoft, die eine vollständige Unterstützung für Python-Entwicklung bietet.
- Aktiviere die Jupyter-Erweiterung für die Arbeit mit Notebooks.
PyCharm
Warum PyCharm?
PyCharm ist eine IDE, die speziell für Python entwickelt wurde und umfassende Unterstützung für die Python-Entwicklung bietet, einschließlich Unterstützung für wissenschaftliche Bibliotheken wie NumPy und Pandas sowie die einfache Integration mit Conda-Umgebungen. Alle Studierenden können über Jetbrains eine PyCharm Professional Lizenz unter Angabe der Studierendenmail (@stud.fhgr.ch) erhalten.
Vorteile:
- Umfangreiche Funktionen: PyCharm bietet eine leistungsstarke Autovervollständigung, Debugging und integrierte Tools für die Arbeit mit Git.
- Jupyter-Integration: PyCharm bietet mit der Professional Version eine vollständige Integration für die Arbeit mit Jupyter Notebooks und unterstützt auch Data Science Workflows.
Installation und Einrichtung:
- Lade PyCharm hier herunter.
- Wähle die Community Edition für Open-Source-Entwicklung oder die Professional Edition für zusätzliche Features.
- Richte deine Python-Umgebung ein (Conda oder pip-Umgebung) und installiere benötigte Plugins für Jupyter-Unterstützung.
Jupyter Notebook Jupyter Notebooks sind eines der am häufigsten verwendeten Werkzeuge in der Data Science und Machine Learning Entwicklung. Durch die Integration in VSCode oder PyCharm haben die Studierenden die Möglichkeit, in einer einheitlichen Entwicklungsumgebung zu arbeiten, ohne ständig zwischen verschiedenen Anwendungen wechseln zu müssen.
2A Installation des CDS Environment -- Version 1.0 --
- Installiere Anaconda oder Miniconda**
- Anaconda / Miniconda herunterladen: Gehe zur offiziellen Anaconda-Website und lade die Version herunter, die zu deinem Betriebssystem passt (Windows, macOS oder Linux). Achtet dabei auf die Auswahl der Software zur richtigen Prozessorarchitektur eurer Installationsgerätes, bspw. Apple silicon, Intel X86-64, ARM64.
- Anaconda installieren: Folge den Installationsanweisungen für dein Betriebssystem.
- Erstelle eine neue Conda-Umgebung namens "CDS"
- Öffne das Terminal (oder Anaconda Prompt auf Windows).
- Erstelle eine neue Umgebung namens CDS mit Python 3.10:
conda create —name CDS python=3.10
3) Aktiviere die neue Umgebung
- Aktiviere die neu erstellte Umgebung:
conda activate CDS
4) Installiere den Package-Manager "pip"
- Installation eines abgeschlossenen pip in die Conda Umgebung, damit auch die pip-Pakete in die Umgebung installiert werden
conda install pip
- Installiere die Pakete aus der Datei requirements.txt
- Sorge dafür, dass du dich im gleichen Verzeichnis wie deine requirements.txt-Datei befindest. Navigiere zu diesem Verzeichnis:
cd /Pfad/zu/Deinem/Projek
pip install -r requirements.txt
- Überprüfe die Installation
- Um sicherzustellen, dass alle Pakete korrekt installiert wurden, kannst du eine Liste aller installierten Pakete anzeigen lassen:
conda list
2B Packet-Manager
Standardisierung auf pip & conda
-
Warum Pip und Conda?
pipundcondasind zwei der am häufigsten verwendeten Paketmanager in der Python-Entwicklung. Sie bieten umfassende Lösungen zur Verwaltung von Abhängigkeiten, Bibliotheken und Entwicklungsumgebungen: -
Pip: Pip ist der Standard-Paketmanager für Python und wird direkt mit Python installiert. Es wird für die Installation von Paketen aus dem Python Package Index (PyPI) verwendet.
-
Conda: Conda ist ein Paketmanager und Umgebungsmanager in einem. Es wird vor allem mit Anaconda und Miniconda genutzt und bietet eine breite Unterstützung für das Installieren und Verwalten von Abhängigkeiten, einschließlich solcher, die nicht Python-spezifisch sind (z.B. Bibliotheken in C/C++).
Vorteile der Verwendung von Conda:
-
Umgebungsverwaltung: Conda bietet eine einfache Möglichkeit, isolierte Umgebungen zu erstellen und zu verwalten, was besonders nützlich ist, wenn verschiedene Projekte unterschiedliche Versionen von Python oder Abhängigkeiten erfordern.
-
Plattformübergreifend: Conda funktioniert sowohl unter Windows, macOS als auch Linux, was die Entwicklung auf mehreren Plattformen erleichtert.
-
Einfache Integration mit Pip: Pip und Conda können in einer Umgebung zusammen verwendet werden. Conda wird verwendet, um Pakete zu installieren, die auf C-Abhängigkeiten angewiesen sind, während pip verwendet werden kann, um alles aus PyPI zu installieren.
Best Practices:
- Verwende Conda für die Verwaltung der Python-Version und für Bibliotheken, die spezielle C-Abhängigkeiten erfordern (z.B. NumPy, Pandas, Matplotlib).
- Verwende Pip, um Pakete zu installieren, die über Conda nicht verfügbar sind, oder um Pakete direkt von PyPI zu beziehen.
- Installiere zuerst Pakete mit Conda, dann ergänze mit Pip, falls notwendig:
- conda install numpy pandas
- pip install transformers
3. Hier ist eine kurze Beschreibung der wichtigsten Pakete
-
NumPy: Eine grundlegende Bibliothek für wissenschaftliches Rechnen in Python, die Unterstützung für große, mehrdimensionale Arrays und Matrizen sowie eine Vielzahl mathematischer Funktionen bietet, um mit diesen Arrays effizient zu arbeiten.
-
Pandas: Bietet leistungsstarke Datenstrukturen wie DataFrames, die für die Analyse und Bearbeitung von Daten in Tabellenform nützlich sind. Ideal für die Handhabung und Analyse großer Datenmengen.
-
Matplotlib: Eine Bibliothek zum Erstellen von statischen, animierten und interaktiven Visualisierungen in Python. Häufig für Diagramme und Grafiken verwendet.
-
Seaborn: Eine auf Matplotlib aufbauende Visualisierungsbibliothek, die speziell auf statistische Grafiken ausgerichtet ist. Sie bietet eine einfachere Schnittstelle zur Erstellung ansprechender Diagramme.
-
Scikit-Learn: Eine Bibliothek für maschinelles Lernen, die einfache und effiziente Tools für Data Mining und Datenanalyse bereitstellt. Enthält Algorithmen für Klassifizierung, Regression, Clustering und mehr.
-
SciPy: Bietet Funktionen für wissenschaftliches Rechnen, einschließlich Algorithmen für numerische Integration, Optimierung und lineare Algebra.
-
Statsmodels: Eine Bibliothek für statistische Modelle und Hypothesentests. Sie bietet Klassen und Funktionen zur Schätzung und Überprüfung statistischer Modelle, wie Regressionen oder Zeitreihenanalysen.
-
JupyterLab: Eine webbasierte Entwicklungsumgebung, die Jupyter Notebooks unterstützt und sich für interaktive Programmierung und Visualisierung eignet.
-
Plotly: Eine Bibliothek für interaktive Datenvisualisierung, die eine einfache Erstellung von 3D-Grafiken, Dashboards und Diagrammen ermöglicht.
-
Requests: Eine einfache, aber leistungsstarke HTTP-Bibliothek, die es ermöglicht, Daten von Webseiten zu senden oder abzurufen (z.B. für APIs).
-
BeautifulSoup: Ein Werkzeug zur Extraktion von Daten aus HTML- und XML-Dateien. Wird häufig für Web-Scraping verwendet, um Inhalte von Webseiten zu extrahieren.
-
Lxml: Eine leistungsstarke Bibliothek für das Parsen von XML- und HTML-Dokumenten, die in Kombination mit BeautifulSoup verwendet wird, um Webseiten effizient zu analysieren.
-
Pillow: Eine Bildverarbeitungsbibliothek, die Bilddateien öffnen, manipulieren und speichern kann. Nützlich für Aufgaben wie das Anpassen oder Bearbeiten von Bildern.
-
Openpyxl: Wird verwendet, um Excel-Dateien zu lesen und zu schreiben. Ideal für den Umgang mit Excel-Daten innerhalb von Python.
-
XGBoost: Eine sehr effiziente und flexible Implementierung von Gradient Boosting, die sich gut für Machine-Learning-Wettbewerbe und anspruchsvolle Datenanalysen eignet.
-
LightGBM: Eine gradientenverstärkte Bibliothek für schnelle und genaue Vorhersagen. Entwickelt für große Datensätze mit geringer Latenz.
-
TensorFlow: Eine Open-Source-Plattform für maschinelles Lernen, die es ermöglicht, tiefgehende neuronale Netze zu trainieren und Modelle zu implementieren.
-
Keras: Eine benutzerfreundliche API für die Entwicklung neuronaler Netze. Sie läuft auf TensorFlow und ist ideal für die schnelle Entwicklung von Deep-Learning-Modellen.
-
PyTorch: Eine beliebte Open-Source-Bibliothek für maschinelles Lernen, die besonders für das Entwickeln und Trainieren von neuronalen Netzwerken verwendet wird.
-
Transformers: Eine Bibliothek, die fortgeschrittene maschinelle Lernmodelle für die Verarbeitung natürlicher Sprache (NLP) bereitstellt. Besonders bekannt für ihre Implementierung von BERT, GPT und anderen Transformer-Modellen.
-
NLTK (Natural Language Toolkit): Eine Sammlung von Bibliotheken und Programmen für die Verarbeitung natürlicher Sprache, einschließlich Tokenisierung, Parsing und Textklassifikation.
-
SpaCy: Eine schnelle und effiziente NLP-Bibliothek für industrielle Zwecke, die auf moderne maschinelle Lerntechniken zurückgreift und speziell für die Verarbeitung großer Textmengen entwickelt wurde.