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

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

@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

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