Pipy – jede Ressource (Website/Skript usw.), um Popularitätsmetriken für einen Benutzer zu finden, um ein relevantes Paket zu identifizieren

Ich möchte die "am besten geeignete" Python-Bibliothek für mein Problem identifizieren. Ich bin dieser Aufgabe/Anforderung so oft begegnet, dass ich dachte, dass ich sie vielleicht hier stellen kann.

Angenommen, ich möchte einen "Kalman-Filter" (eine beliebte disziplinübergreifende Berechnungsroutine) in meiner Anwendung implementieren und natürlich vorhandene professionelle Bibliotheken verwenden. Eine Metrik/Kriterium, über die ich gerne Bescheid weiß, bevor ich viel Zeit investiere (Dokumentation lesen usw.), ist ein Maß für den Popularitätsindex der Community. (Vielleicht eine Bewertung wie Github-Sterne oder Download-Zähler wie die Fileexchange-Website von Mathworks.)

Der Suchbegriff „Kalman Filter“ auf PyPi lieferte etwa 15 Ergebnisse, was zu großer Verwirrung führte, in welche ich meine Zeit investieren sollte.

Gibt es eine Möglichkeit (vielleicht ein Python-/Shell-Skript?), um einen Einblick in die Peer-Review-/Qualitäts-/Download-Statistiken eines Pakets/einer Bibliothek aus dem Python-Paketarchiv https://pypi.python.org zu erhalten, basierend auf der Suche eines Benutzers Schnur?

Antworten (1)

Es gibt ein paar Metriken, die ich mir als ersten Durchgang ansehen würde:

  1. Versionsnummer - normalerweise ein Indikator für die Reife.
  2. Vorhandensein und Vollständigkeit von Metadaten auf der PyPi-Seite.
  3. Informationen auf der PyPi-Seite
  4. Informationen auf der Projekthomepage

In Ihrem Beispiel gibt die Suche nach Kalman-Filter Folgendes zurück:

  • Kalman 0.1.3 16 Kalman-Filter
  • filterpy 1.0.0 14 Kalman-Filterung und optimale Schätzbibliothek
  • pykalman 0.9.5 12 Eine Implementierung des Kalman-Filters, des Kalman-Smoother und des EM-Algorithmus in Python
  • adskalman 0.3.6 8 Kalman-Filterroutine
  • ikalman 0.2.0 8 Python-Anbindungen für die ikalman-c-Bibliothek
  • Calman 0.0.1 4 Bleiben Sie ruhig mit Kalman-Filtern
  • KF 0.1.3 4 Fondsperformance-Tracker
  • PyBayes 0.3 4 Python-Bibliothek für rekursive Bayes'sche Schätzung (Bayes'sche Filterung)
  • pydlm 0.1.1.9 4 Eine Python-Bibliothek für das Bayes'sche dynamische lineare Modell zur Zeitreihenmodellierung
  • control 0.7.0 2 Bibliothek für Python-Steuerungssysteme
  • impyute 0.0.4 2 Bibliothek der verschiedenen Imputationsalgorithmen; Methoden zum Umgang mit Mehrdeutigkeiten und zum Umgang mit fehlenden Daten.
  • normal 0.1.1 2
  • pyda 1.0 2 pyda ist ein allgemeines objektorientiertes Datenassimilationspaket
  • scikit-kinematics 0.6.0 2 Python-Dienstprogramme für Bewegungen im 3D-Raum
  • scikits.statsmodels 0.3.1 2 Statistische Berechnungen und Modelle zur Verwendung mit SciPy
  • starman 1.0.0 2 Eine Bibliothek, die nützliche Algorithmen implementiert, wenn versucht wird, den wahren Zustand eines oder mehrerer Systeme im Laufe der Zeit in Gegenwart von verrauschten Beobachtungen zu verfolgen.
  • testbeam_analysis 0.0.1 2 Eine leichte Teststrahlanalyse in Python und C++.
  • tracktotrip 0.4.6 2 Track-Verarbeitungsbibliothek

Von diesen würde ich zuerst filterpy und pykalman betrachten.

filterpy

Dies hat eine gute Dokumentation auf der pypi-Seite, vollständige Metadaten, eine Dokumentationsseite auf pythonhosted und das Auschecken der GitHub-Seite hatte 339 Commits von 11 Mitwirkenden, 22 Veröffentlichungen, einen aktiven Issue-Tracker mit mehr geschlossenen als offenen Tickets.

pykalman

Keine Dokumentation auf der PyPi-Seite, minimale Metadaten, ein Link zu einer Dokumentation, aber nicht zur Quelle. Beim Auffinden der Quelle bemerke ich 40 Commits von 5 Mitwirkenden, mehr offene als geschlossene Tickets und die Installationsanweisungen, die easy_install anstelle von Pip verwenden lassen mich an der Ausgereiftheit des Projekts zweifeln.

Andere

Ein kurzer Scan der anderen zeigt, dass auf den PyPi-Seiten von PyBayes von scikits.statsmodels ziemlich vollständige Informationen vorhanden sind, sodass sie möglicherweise auch einen Blick wert sind. Einige der anderen Zusammenfassungen der obersten Ebene scheinen darauf hinzudeuten, dass sie den Begriff zwar erwähnen, sich aber auf Bereiche spezialisiert haben, die nicht benötigt werden.

Abschluss

Ich würde dann eingehender über Filterpy lesen, um zu sehen, ob es meine Anforderungen erfüllt.

Warum würden Sie sich zuerst Filterpy und Pykalman ansehen?
@albert - sie sind beide bei oder in der Nähe von V 1.0 oder höher und alle anderen in der Nähe von oder über V 1.0 haben eine kurze Beschreibung, die zeigt, dass sie für etwas anderes bestimmt sind.
Beachten Sie, dass dies nicht 100 % ist, da einige hervorragende Pakete immer noch niedrige Versionsnummern haben, aber es ist ein vernünftiger Ausgangspunkt.