Erstellen Sie ein neues numerisches Python-Berechnungsprojekt

Dieser Artikel ist der 18. Tag des nächsten (Lifull) Adventskalenders 2016.

Hallo, das ist Ninomiya von Digital Marketing U.

Vor kurzem haben mehrere Abteilungen des Unternehmens Projekte erstellt, die Python für die statistische Verarbeitung und numerische Berechnungen verwenden.

Bisher wurde die R-Sprache hauptsächlich von @wakuteka aus derselben Gruppe verwendet, und Dokumente und Know-how wurden als solche organisiert.

Es scheint, dass es auch einen Bedarf gab.

(Anstatt die R-Sprache zu verschlechtern, ist sie natürlich interaktiv und verwendet eine Gruppe von Bibliotheken namens tidyverse. Die R-Sprache ist für die Analyse und Visualisierung einfacher zu verwenden. Die Werkzeuge werden verwendet.)

Ich benutze Python als Hobby und hatte die Gelegenheit, an mehreren Projekten in Form von Reviews und Ratschlägen zu arbeiten (was übertrieben ist).

Ich möchte das in diesem Prozess gewonnene Wissen und die Artikel, auf die ich mich bezog, zusammenfassen.

Da wir jedoch durch Versuch und Irrtum vorgegangen sind, gibt es möglicherweise einen besseren Weg, und der Inhalt des Artikels deckt nicht die gesamte Entwicklung ab. Wenn Sie einen solchen Punkt finden, wäre ich Ihnen dankbar, wenn Sie mich in den Kommentaren informieren könnten.

Bereiten Sie die Python-Umgebung vor

Der Artikel "Entwicklungsumgebung, die mit der Absicht erstellt wurde, Python ernsthaft zu schreiben" war hilfreich.

Eine bekannte Python-Distribution namens Anaconda, die auch eine Bibliothek für Statistiken enthält, wird in der Produktion nicht verwendet. (Ich benutze es in der Entwicklungs- / Analyseumgebung.)

Wie Sie im Artikel "Physenv erforderlich oder nicht" sehen können.

Ich habe Anacondas / bin auf den Pfad gesetzt, aber die Tools von Anaconda (openssl / curl / python) verdecken die Tools des Betriebssystems. Außerdem ist es in BASH zu vorausgesetzt, und wenn Sie zsh verwenden, funktioniert es nur, wenn Sie es auf verschiedene Arten beheben.

Dies liegt daran, dass ich mir Sorgen über das Verhalten hier im tatsächlichen Betrieb gemacht habe.

Entwicklung von

Ich musste es überprüfen, also habe ich die Codierungsstandards und das Schreiben von DocStrings erneut studiert.

Als Packung ausschneiden (falls erforderlich)

Wir haben es möglich gemacht, abteilungsspezifische numerische Berechnungen mit pip mithilfe des Git-Repositorys für Gruppen zu installieren.

Zu dieser Zeit habe ich auf diese Artikel verwiesen.

Codierungskonvention

Siehe PEP8 und Google Python Style Guide. Ich denke, es wird.

Es ist jedoch schwierig, den Codierungsstandard visuell zu überprüfen, so dass es schwierig ist, ihn von Hand zu reparieren. Daher flake8 und [autopep8](https: //pypi.python) Ich benutze auch .org / pypi / autopep8) nach Bedarf. PEP8 ist jedoch ein relativ strenger Kodierungsstandard, weshalb wir gegebenenfalls mit der Konsultation fortfahren.

Hier habe ich auf den folgenden Artikel verwiesen.

Beschreibung der DocStrings

Ich habe auch DocStrings im Google-Stil geschrieben, um das Verständnis der Eingabe und Ausgabe von Funktionen und Methoden zu erleichtern. Es scheint auch andere Numpy-Stile zu geben.

Wenn Sie Typanmerkung mit Python 3.5 oder höher verwenden,

def function_with_pep484_type_annotations(param1: int, param2: str) -> bool:
    """Example function with PEP 484 type annotations.
 
    Args:
        param1: The first parameter.
        param2: The second parameter.
 
    Returns:
        The return value. True for success, False otherwise.
  
    """

Dies ist der Fall, wenn keine Typanmerkung verwendet wird.

def function_with_types_in_docstring(param1, param2):
    """Example function with types documented in the docstring.
 
    Args:
        param1 (int): The first parameter.
        param2 (str): The second parameter.
 
    Returns:
        bool: The return value. True for success, False otherwise.
 
    """

In dem von mir überprüften Code gab es jedoch eine Funktion, die mehrere Werte mit Tupel zurückgab, aber (soweit ich dies untersuchte) DocStrings im Google-Stil schien das Schreiben nicht zu unterstützen, das mehrere Werte mit Returns zurückgibt. .. Schreiben Sie auf der Grundlage dieser Stapelüberlaufantwort wie folgt Ich hab es geschafft.

import pandas as pd

def _postprocess_data(output_data, market):
    """Formatieren Sie in Daten für die Alarm- und Dateiausgabe

        Args:
            output_data (pd.DataFrame):Berechneter Datenrahmen
            market (str):Name des Immobilienmarktes

        Returns:
            tuple:Gibt die folgenden Werte als mehrere Werte zurück
                - output_data (pd.DataFrame):Ausgabedaten
                - monthly_data (pd.DataFrame):Monatliche Daten

    """

Ich habe nicht versucht, Typanmerkungen und statisches Parsen mit mypy durchzuführen, aber ich werde die Gelegenheit nutzen, es zu versuchen.

Testcode schreiben

Es war ein kleines Projekt, also schrieb ich einige einfache Tests mit unittest.

Abgesehen von unittest es scheint, dass es einige Frameworks gibt, werde ich auch dafür eine Gelegenheit schaffen.

Im Moment arbeite ich an etwas wie "Einfügen einer Funktion, die mit einem Jupyter-Notizbuch ausprobiert und fehlerhaft war, in einen Editor". Ich möchte es bei Bedarf mit TDD (so ähnlich) richtig verwenden können.

Über Pandas Datenrahmen

Wenn Sie Datenanalysen mit Python durchführen, werden Sie wahrscheinlich Pandas verwenden, um einen Datenrahmentyp wie die R-Sprache einzuführen.

In der R-Sprache können Bibliotheken wie dplyr und tidyr den Fluss der Datenverarbeitung mithilfe von Pipeline-Operatoren präzise ausdrücken, aber es scheint etwas gewöhnungsbedürftig zu sein, dasselbe mit Pandas zu tun. (Im Gegensatz zu R, das alles in einem Datenrahmen ausdrückt, wird versucht und fehlerhaft, es ordnungsgemäß mit dem Wörterbuchtyp zu verwenden.)

Dieser Artikel bietet jedoch eine gute Möglichkeit, Pandas zu schreiben. Lesen Sie ihn daher bitte, wenn Sie ihn verwenden.

Zusammenfassung

Hier ist eine kurze Zusammenfassung der Ergebnisse von Versuch und Irrtum (oder in Arbeit) in einem Python-Projekt unter Verwendung einer Datenanalysebibliothek. Ich hoffe, es hilft jemandem beim Lesen.

Der Inhalt des Artikels deckt nicht die gesamte Entwicklung ab. Wenn Sie einen solchen Punkt finden, wäre ich Ihnen dankbar, wenn Sie mich in den Kommentaren informieren könnten.

Bitte beachten Sie auch weiterhin unseren Adventskalender.

Recommended Posts

Erstellen Sie ein neues numerisches Python-Berechnungsprojekt
Erstellen Sie ein Python-Modul
Erstellen Sie eine Python-Umgebung
Numerische Berechnung mit Python
Erstellen Sie eine neue Todoist-Aufgabe aus Python Script
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
Erstellen Sie ein Wox-Plugin (Python)
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Erstellen Sie ein Python-Numpy-Array
Aufgaben zu Beginn eines neuen Python-Projekts
Erstellen Sie ein Verzeichnis mit Python
Erstellen Sie mit tkinter eine Python-GUI
Erstellen Sie einen DI-Container mit Python
Schritte zum Erstellen eines Django-Projekts
Erstellen Sie eine Python-Umgebung auf dem Mac (2017/4)
Erstellen Sie eine neue Anwendung mit Python, Django
Erstellen Sie eine virtuelle Umgebung mit Python!
Erstellen Sie eine Binärdatei in Python
Erstellen Sie eine Python-Umgebung in Centos
Erstellen Sie eine Python-Projektdokumentation in Sphinx
Erstellen Sie ein universelles Dekorationsframework für Python
5 Möglichkeiten zum Erstellen eines Python-Chatbots
Erstellen Sie eine zufällige Zeichenfolge in Python
Erstellen Sie mit Class einen Python-Funktionsdekorator
[Wissenschaftlich-technische Berechnung mit Python] Summenberechnung, numerische Berechnung
Erstellen Sie mit Python + PIL ein Dummy-Image.
Erstellen Sie eine Python-Umgebung auf Ihrem Mac
Erstellen Sie eine einfache GUI-App in Python
Erstellen wir eine virtuelle Umgebung für Python
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen wir mit Python eine kostenlose Gruppe
Befehle zum Erstellen eines neuen Django-Projekts
[Python] Erstellen Sie eine Stapelumgebung mit AWS-CDK
[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe
Erstellen Sie ein neues Diktat, das Diktate kombiniert
Erstellen Sie mit Python 3.4 einen Worthäufigkeitszähler
Erstellen Sie eine Deb-Datei aus einem Python-Paket
[Python] Erstellen Sie einen LineBot, der regelmäßig ausgeführt wird
[GPS] Erstellen Sie eine kml-Datei mit Python
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Erstellen Sie mit tkinter [Python] einen Rahmen mit transparentem Hintergrund.
[Python] Listenverständnis Verschiedene Möglichkeiten zum Erstellen einer Liste
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
Erstellen Sie in 1 Minute eine Vim + Python-Testumgebung
Erstellen Sie eine GIF-Datei mit Pillow in Python
Ich möchte eine schöne Python-Entwicklungsumgebung für meinen neuen Mac erstellen
Erstellen Sie ein C-Array aus einer Python> Excel-Tabelle
[Python] Erstellen Sie eine Liste mit verschiedenen Zeichentypen
Erstellen Sie mit Minette für Python einen LINE BOT
Ich möchte mit Python ein Fenster erstellen
Erstellen Sie in Python ein Diagramm der Standardnormalverteilung
[Wissenschaftlich-technische Berechnung mit Python] Lagrange-Interpolation, numerische Berechnung
So erstellen Sie eine JSON-Datei in Python
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird