2

I want to do the following with one vector.

a = np.array(np.arange(0, 4, 1))

I want to get a multiplicaton that results in a matrix like

 | 0  1  2  3  4
-| - - - - - - - 
0| 0  0  0  0  0
1| 0  1  2  3  4
2| 0  2  4  6  8
3| 0  3  6  9 12
4| 0  4  8 12 16

with the following i always get a scalar:

a*a
a.dot(a)
a.T*a
a*a.T
a.T.dot(a)
a.dot(a.T)
a.transpose()*a
parafux
  • 33
  • 3

2 Answers2

1

See Convert NumPy vector to 2D array / matrix

>>> a = a[:,np.newaxis]                                                                                                                       
>>> a * a.T                                                                                                                                   
array([[0, 0, 0, 0],
       [0, 1, 2, 3],
       [0, 2, 4, 6],
       [0, 3, 6, 9]])
orestisf
  • 1,396
  • 1
  • 15
  • 30
1

an even better solution woud be

a = np.array([np.arange(0, 4, 1)])
a*a.T
array([[0, 0, 0, 0],
       [0, 1, 2, 3],
       [0, 2, 4, 6],
       [0, 3, 6, 9]])
parafux
  • 33
  • 3