Verwirrung mit array multiplikation

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MoritzMoritz
User
Beiträge: 10
Registriert: Dienstag 4. März 2014, 22:32

Samstag 19. April 2014, 16:58

ich dachte * wird elementweise angewandt:

Code: Alles auswählen

a = np.array( [1,2,3])
b = np.array( [ [1], [2], [3] )
b*a
a*b
in beiden Fällen:
array([[1, 2, 3],
[2, 4, 6],
[3, 6, 9]])

das gleiche Ergebnis wie np.multiply(b,a)
Elementweise wäre doch np.dot ?
Wie kann ich mir Spalten und Zeilenvektoren in Python bzw. numpy vorstellen ?
BlackJack

Samstag 19. April 2014, 17:32

@MoritzMoritz: Bei ``b * a`` wird jedes Element von `b` mit `a` multipliziert. Es wird nicht jedes Element von `b` mit dem einzelnen Element von `a` am selben Index multipliziert.

Code: Alles auswählen

In [32]: a * b[0]
Out[32]: array([1, 2, 3])

In [33]: a * b[1]
Out[33]: array([2, 4, 6])

In [34]: a * b[2]
Out[34]: array([3, 6, 9])

In [35]: a * b
Out[35]: 
array([[1, 2, 3],
       [2, 4, 6],
       [3, 6, 9]])
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Sonntag 20. April 2014, 08:10

MoritzMoritz hat geschrieben:Wie kann ich mir Spalten und Zeilenvektoren in Python bzw. numpy vorstellen ?
Der Name deutet es ja eigentlich schon an. numpy.array produziert keinen Vektor wie du ihn aus dem Matheunterricht kennst. Für genauere Informationen RTM.
Antworten