Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man Python-Listen variabler Länge in ein dichtes NumPy-Array mit Platzhaltern?

Wie konvertiert man Python-Listen variabler Länge in ein dichtes NumPy-Array mit Platzhaltern?

Barbara Streisand
Barbara StreisandOriginal
2024-11-03 22:03:03513Durchsuche

How to Convert Variable-Length Python Lists to a Dense NumPy Array with Placeholders?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn