Heim > Backend-Entwicklung > Python-Tutorial > Warum erhalte ich in NumPy die Meldung „ValueError: Festlegen eines Array-Elements mit einer Sequenz'?

Warum erhalte ich in NumPy die Meldung „ValueError: Festlegen eines Array-Elements mit einer Sequenz'?

Patricia Arquette
Freigeben: 2024-12-03 22:52:11
Original
228 Leute haben es durchsucht

Why am I getting a

ValueError: Festlegen eines Array-Elements mit einer Sequenz

NumPy-Arrays sind strukturierte Datentypen und stellen daher strenge Anforderungen an die Elemente, die sie enthalten. Wenn Sie mit mehrdimensionalen Arrays oder Arrays heterogener Typen arbeiten, kann der folgende Fehler auftreten:

ValueError: setting an array element with a sequence.
Nach dem Login kopieren

Lassen Sie uns die möglichen Gründe für diesen Fehler untersuchen und wie Sie ihn beheben können:

Erstellung eines gezackten Arrays:

Ein gezacktes Array ist ein mehrdimensionales Array, bei dem die Zeilen unterschiedlich lang sind. NumPy unterstützt keine gezackten Arrays. Um dieses Problem zu beheben, müssen Sie sicherstellen, dass die Listen, die Sie zum Erstellen des Arrays verwenden, in jeder Zeile die gleiche Anzahl von Elementen enthalten:

# Correct
numpy.array([[1, 2], [3, 4]])
Nach dem Login kopieren
# Incorrect
numpy.array([[1, 2], [2, 3, 4]])
Nach dem Login kopieren

Inkompatible Elementtypen:

Wenn Sie ein Array aus einer Liste von Elementen unterschiedlichen Typs erstellen, müssen Sie möglicherweise den Datentyp explizit angeben. Standardmäßig weist NumPy den allgemeinsten Datentyp zu, der alle Elemente aufnehmen kann. Wenn Sie jedoch versuchen, ein Element eines inkompatiblen Typs einzufügen, wird dieser Fehler auftreten.

Zum Beispiel führt der folgende Code zu einem Fehler, da das zweite Element eine Zeichenfolge ist:

numpy.array([1.2, "abc"], dtype=float)
Nach dem Login kopieren

Um dieses Problem zu beheben, können Sie entweder alle Elemente in denselben Datentyp konvertieren oder den Objektdatentyp verwenden, der Elemente beliebiger Typen zulässt:

# Convert to float
numpy.array([float(x) for x in [1.2, "abc"]])

# Use object data type
numpy.array([1.2, "abc"], dtype=object)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in NumPy die Meldung „ValueError: Festlegen eines Array-Elements mit einer Sequenz'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage