Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich in NumPy den Fehler „Operanden konnten nicht zusammen gesendet werden'?

Warum erhalte ich in NumPy den Fehler „Operanden konnten nicht zusammen gesendet werden'?

DDD
DDDOriginal
2024-12-19 18:38:09156Durchsuche

Why Am I Getting a

Den Fehler verstehen: „Operanden konnten nicht zusammen übertragen werden“ in NumPy

Bei der Arbeit mit NumPy-Arrays ist es wichtig, darauf zu achten Array-Formen, um Übertragungsfehler zu vermeiden. Im angegebenen Szenario ist der Fehler „ValueError: Operanden konnten nicht zusammen mit Formen übertragen werden“ aufgetreten.

Dieser Fehler tritt auf, weil die Operatoren von NumPy, wie z. B. *, standardmäßig elementweise Operationen ausführen. Wenn die Arrays jedoch unterschiedliche Formen haben, versucht NumPy, sie zu übertragen, was zu Kompatibilitätsproblemen führen kann.

Broadcasting-Regeln und Kompatibilität

Broadcasting beinhaltet die Erweiterung der Dimensionen eines Arrays oder beide Arrays, um sie für elementweise Operationen kompatibel zu machen. Abmessungen der Größe 1 oder fehlende Abmessungen können übertragen werden.

In Ihrem Fall hat X die Form (97, 2) und y die Form (2, 1). Die Übertragung der Dimensionen würde Folgendes zur Folge haben:

  97    2
   2    1

Wie Sie sehen können, gibt es Konflikte zwischen der ersten Dimension (97 und 2). Gemäß den Übertragungsregeln müssen die widersprüchlichen Dimensionen gleich sein oder eine davon sollte 1 sein.

Beheben des Übertragungsfehlers

Um dieses Problem zu beheben, müssen Sie sicherstellen dass die Abmessungen der Arrays kompatibel sind. In Ihrem Fall können Sie das Skalarprodukt von NumPy verwenden, das eine Matrixmultiplikation durchführt:

X.dot(y)

Die Matrixmultiplikation folgt verschiedenen Kompatibilitätsregeln und stellt sicher, dass die Anzahl der Spalten im ersten Array mit der Anzahl der Zeilen im zweiten übereinstimmt Array. Da X 2 Spalten und y 2 Zeilen hat, ist die Matrixmultiplikation gültig, was zu einem Vektor mit der Form (97, 1) führt.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in NumPy den Fehler „Operanden konnten nicht zusammen gesendet werden'?. 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