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
Patricia ArquetteOriginal
2024-12-03 22:52:11235Durchsuche

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.

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]])
# Incorrect
numpy.array([[1, 2], [2, 3, 4]])

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)

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)

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!

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