Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich ein dichtes NumPy-Array aus Listen variabler Länge?

Wie erstelle ich ein dichtes NumPy-Array aus Listen variabler Länge?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 08:32:01971Durchsuche

How to Create a Dense NumPy Array from Variable-Length Lists?

Generieren eines dichten NumPy-Arrays aus Listen variabler Länge

Die Standardkonvertierung einer Python-Sequenz, die Listen variabler Länge enthält, in ein NumPy-Array erstellt ein Array vom Objekttyp. Das Erzwingen eines anderen Datentyps löst einen ValueError aus. Dieser Artikel zeigt eine effiziente Methode zum Generieren eines dichten NumPy-Arrays vom Typ int32 durch Auffüllen fehlender Werte mit einem Platzhalter.

Um eine Listensequenz variabler Länge in ein NumPy-Array zu konvertieren, kann man itertools.zip_longest verwenden Funktion aus dem itertools-Modul. Diese Funktion durchläuft die Listen und stoppt, wenn die kürzeste Liste erschöpft ist. Es füllt fehlende Werte in längeren Listen mit einem Platzhalterwert auf, der durch das Argument fillvalue angegeben wird.

Betrachten Sie beispielsweise die folgende Sequenz von Listen variabler Länge:

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

Um ein dichtes NumPy zu generieren Um ein Array aus dieser Sequenz mit einem Platzhalterwert von 0 zu erstellen, kann man den folgenden Code verwenden:

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

Die Ausgabe dieses Codes ist ein NumPy-Array vom Typ int32, wobei fehlende Werte durch 0 ersetzt werden:

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

Diese Methode bietet eine effiziente Möglichkeit, Listen variabler Länge bei der Konvertierung in NumPy-Arrays zu verarbeiten, die Datentypkonsistenz sicherzustellen und fehlende Werte mit gewünschten Platzhaltern zu füllen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein dichtes NumPy-Array aus Listen variabler Länge?. 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