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!