Heim >Backend-Entwicklung >Python-Tutorial >NumPy-Arrays: Was ist der Unterschied zwischen Form (R, 1) und (R,) und wie wirkt er sich auf die Matrixmultiplikation aus?
In NumPy stoßen Sie möglicherweise auf Arrays mit Formen (R, 1) und (R,). Obwohl diese Formen ähnlich erscheinen mögen, stellen sie unterschiedliche Interpretationen der zugrunde liegenden Daten dar.
Ein Array mit der Form (R, 1) ist ein 2D-Array mit R Zeilen und einer einzelnen Spalte. Es handelt sich im Wesentlichen um einen Spaltenvektor, den man sich als Liste von R-Elementen vorstellen kann. Im Gegensatz dazu ist ein Array mit der Form (R,) ein 1D-Array mit R Elementen. Es handelt sich praktisch um eine Liste, bei der jedes Element einen Skalarwert darstellt.
NumPys Entwurfsentscheidung, (R, 1) nicht zu bevorzugen 1) Formen für die Matrixmultiplikation ergeben sich aus ihrer inhärenten Flexibilität. Durch die Berücksichtigung beider Formen können Programmierer die am besten geeignete Darstellung für ihre spezifischen Aufgaben auswählen. Während (R, 1)-Formen für die Matrixmultiplikation bequemer sind, können (R,)-Formen in anderen Kontexten vorzuziehen sein, beispielsweise beim Arbeiten mit Vektoren oder Listen von Skalarwerten.
Ohne die Arrays explizit umzuformen, gibt es alternative Ansätze zur Durchführung der Matrixmultiplikation. Beispielsweise kann die Verwendung der Funktion np.expand_dims() die gewünschte Formtransformation erreichen. Alternativ können Sie das Broadcasting nutzen, das NumPy unter bestimmten Bedingungen automatisch durchführt. Beispielsweise wird im Ausdruck numpy.dot(M[:,0], numpy.ones((1, R))) durch Broadcasting numpy.ones((1, R)) automatisch zu numpy.ones((R) erweitert , 1)).
Das obige ist der detaillierte Inhalt vonNumPy-Arrays: Was ist der Unterschied zwischen Form (R, 1) und (R,) und wie wirkt er sich auf die Matrixmultiplikation aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!