Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich ein dichtes NumPy-Array mit einem bestimmten Datentyp und ausgefüllten fehlenden Werten aus einer Folge von Listen variabler Länge erstellen?

Wie kann ich ein dichtes NumPy-Array mit einem bestimmten Datentyp und ausgefüllten fehlenden Werten aus einer Folge von Listen variabler Länge erstellen?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 03:58:01644Durchsuche

How can I create a dense NumPy array with a specific data type and filled-in missing values from a sequence of variable-length lists?

Füllen fehlender Werte bei der NumPy-Array-Konvertierung

Beim Konvertieren einer Python-Sequenz von Listen variabler Länge in ein NumPy-Array wird das resultierende Array häufig beschädigt geht aufgrund der unterschiedlichen Länge der Listen von einem Objektdatentyp aus. Das Erzwingen eines bestimmten Datentyps wie int32 kann zu Fehlern führen.

Um effizient ein dichtes NumPy-Array mit einem bestimmten Datentyp und ausgefüllten fehlenden Werten zu erhalten, kann das Modul itertools verwendet werden. Insbesondere kann die Funktion „zip_longest“ verwendet werden, um die Listen mit einem Platzhalterwert aufzufüllen.

Zum Beispiel eine gegebene Sequenz v:

v = [[1], [1, 2]]

Um ein dichtes int32-Array mit Nullen als zu erstellen Platzhalter:

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>

Dieser Code erzeugt:

array([[1, 0],
       [1, 2]])

wo die fehlenden Werte im Original Die Reihenfolge wird mit Nullen aufgefüllt. Insbesondere für Python 2 lautet die zu verwendende Funktion itertools.izip_longest.

Das obige ist der detaillierte Inhalt vonWie kann ich ein dichtes NumPy-Array mit einem bestimmten Datentyp und ausgefüllten fehlenden Werten aus einer Folge von Listen variabler Länge erstellen?. 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