Help me with the numpy.dot
function. As it is not very clear description in the documentation. This function works the same as described in this article?
There is the following code:
Nj = 100
Nin = 100
Xin = np.zeros ((Nin, 1))
Winj = np.zeros ((Nin, Nj))
WinjT = np.transpose (Winj)
Uj = np.dot (WinjT, Xin)
In theory, you should get an array Uj with Nj rows and 1 column, but you get a two-dimensional array.
The part of the code following the initialization is forgiven, since it is not relevant to the question.
Answer 1, authority 100%
product of scalars:
In [60]: np.dot (2, 3)
Out [60]: 6
product of 1D arrays (vectors):
In [61]: a = np.array ([1, 2])
In [62]: b = np.array ([10, 11])
In [63]: np.dot (a, b)
Out [63]: 32
product of 2D arrays:
In [64]: a = np.array ([[1,2], [3,4]] )
In [65]: b = np.array ([[2,3], [4,5]])
In [66]: a
Out [66]:
array ([[1, 2],
[3, 4]])
In [67]: b
Out [67]:
array ([[2, 3],
[4, 5]])
In [68]: np.dot (a, b)
Out [68]:
array ([[10, 13],
[22, 29]])
Explanation:
10: 1 * 2 + 2 * 4
13: 1 * 3 + 2 * 5
22: 3 * 2 + 4 * 4
29: 3 * 3 + 4 * 5
Your example:
In [69]:% paste
Nj = 100
Nin = 100
Xin = np.zeros ((Nin, 1))
Winj = np.zeros ((Nin, Nj))
WinjT = np.transpose (Winj)
Uj = np.dot (WinjT, Xin)
## - End pasted text -
The result is a 2D array, consisting of 100 rows and one column:
In [70]: Uj.shape
Out [70]: (100, 1)