Data Science: Einheitliche Python-APIs für Arrays und Datenrahmen geplant

Data Science: Einheitliche Python-APIs für Arrays und Datenrahmen geplant

Das neu eingerichtete Konsortium für Python-Daten-API-Standards zielt darauf ab, einheitliche Schnittstellen für Frameworks für maschinelles Lernen und Python-Bibliotheken zu erstellen. Der Fokus liegt einerseits auf Arrays oder Tensoren und andererseits auf Datenrahmen.

Der Initiator des Konsortiums ist Quansight Labs und seine Gründungssponsoren sind Intel, Microsoft, die DE Shaw Group, Google Research und Quansight. Langfristig sollte sich das Konsortium zu einer projekt- und ökosystemübergreifenden Organisation entwickeln, die APIs und Datenaustauschmechanismen vergleicht und standardisiert.

Viele Funktionen sind auf die gleiche Weise in viele Bibliotheken integriert, jedoch mit genügend Unterschieden im Detail. In dem Blogbeitrag zu Beginn des Konsortiums sind beispielsweise die Funktionen zur Berechnung des arithmetischen Mittelwerts anhand eines Arrays aufgeführt, das in den einzelnen Bibliotheken wie folgt implementiert ist:

numpy:         
  mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
dask.array:    
  mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
cupy:          
  mean(a, axis=None, dtype=None, out=None, keepdims=False)
jax.numpy:     
  mean(a, axis=None, dtype=None, out=None, keepdims=False)
mxnet.np:      
  mean(a, axis=None, dtype=None, out=None, keepdims=False)
sparse:        
  s.mean(axis=None, keepdims=False, dtype=None, out=None)
torch:         
  mean(input, dim, keepdim=False, out=None)
tensorflow:    
  reduce_mean(input_tensor, axis=None, keepdims=None,
              name=None, reduction_indices=None, keep_dims=None)

Die Funktionen der oben genannten Bibliotheken haben die Standardeinstellung für keepdims weitgehend identische Unterschriften. Aber selbst mit denselben Signaturen haben sie manchmal unterschiedliche Semantiken, die schwieriger zu bestimmen sind. MXNet dokumentiert sogar explizit die Abweichungen von NumPy: Der Array-Parameter ist nur einer ndarray erlaubt, und der Datentyp für Zahlen ist float32.

Das Konsortium möchte zunächst die Anforderungen für die Standardisierung testen und beginnt mit einer Anforderungsentwicklung. Ziel ist es zu erkennen, in welchen Bereichen Standardisierung erforderlich ist und wie die Standards umgesetzt werden sollten.

READ  Corona-Fallstudie: Eine 70-jährige Frau ohne Symptome war 70 Tage lang infektiös

Um ein Überwachsen aufgrund zu vieler spezieller Anwendungsfälle zu vermeiden, sollte sich der Standardisierungsprozess auf die Funktionen konzentrieren, die in den meisten Bibliotheken bereits in irgendeiner Form vorhanden sind. Das Konsortium möchte auch bewerten, welche Funktionen Datenwissenschaftler in der Praxis nutzen. Es gibt eine für letztere Tool im GitHub-Repository für die Daten-API-Standards, die bestimmen, welche Python-Module ein anderes Modul verwendet.

EIN eine weitere Ressource im Repository liest und verarbeitet die öffentlich verfügbare HTML-Dokumentation für Array-Bibliotheken, vergleicht die vorhandenen Funktionen und ihre Signaturen und zeigt das Ergebnis schließlich in einer HTML-Tabelle an.

Ausgabe der mit dem API-Vergleichstool über API-Schnittmenge ermittelten APIs.

(Bild: data-apis.org)

Darüber hinaus hoffen die Initiatoren des Standardisierungsprozesses auf die Zusammenarbeit der Entwickler der wichtigen Python-Bibliotheken und -Frameworks sowie der Community. Das Konsortium plant, den RFC (Request for Comments) für die Array-APIs bis zum 15. September zu veröffentlichen und mit dem Community-Überprüfungsprozess zu beginnen. Der RFC für die Dataframe-APIs wird am 15. November folgen. Weitere Details finden Sie hier der Blogbeitrag über den Start des Konsortiums entfernen.


(Arm)

Zur Homepage gehen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert