Seite 1 von 1

Verwirrung mit array multiplikation

Verfasst: Samstag 19. April 2014, 16:58
von MoritzMoritz
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 ?

Re: Verwirrung mit array multiplikation

Verfasst: Samstag 19. April 2014, 17:32
von 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]])

Re: Verwirrung mit array multiplikation

Verfasst: Sonntag 20. April 2014, 08:10
von Darii
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.