Effiziente Konvertierung von Python-Listen variabler Länge in ein dichtes NumPy-Array
Die direkte Konvertierung von Python-Listen variabler Länge in ein NumPy-Array ergibt sich in einem Array vom Typ „Objekt“, was unerwünscht sein kann. Alternativ führt der Versuch, einen bestimmten Typ mithilfe von np.array(v, dtype=np.int32) zu erzwingen, aufgrund des Vorhandenseins von Sequenzen im Array zu einer Ausnahme.
Daher ist es erforderlich, ein dichtes NumPy-Array zu erstellen Wenn Sie einen bestimmten Datentyp (z. B. int32) eingeben und fehlende Werte mit einem Platzhalter füllen, können Sie die Funktion itertools.zip_longest nutzen.
Wenn Sie beispielsweise die Eingabesequenz v = [[1], [1, 2] berücksichtigen ]] Wenn Sie itertools.zip_longest mit einem Platzhalter von 0 verwenden, können Sie wie folgt effizient ein dichtes NumPy-Array erhalten:
<code class="python">import itertools np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>
Dies erzeugt die gewünschte Ausgabe:
array([[1, 0], [1, 2]])
Hinweis Verwenden Sie für Python 2 stattdessen itertools.izip_longest.
Das obige ist der detaillierte Inhalt vonWie konvertiert man Python-Listen variabler Länge in ein dichtes NumPy-Array mit Platzhaltern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!