np.dot

时间:2018-02-22 11:02:59

标签: numpy matrix-multiplication np

我是python中的新手,我试图将2d矩阵与1d矩阵相乘。我使用np.dot来做它,但它给了我一个错误的输出。我试图这样做:

#X_train.shape = 60000
w = np.zeros([784, 1])
lista = range (0, len(X_train))
for i in lista:
    score = np.dot(X_train[i,:], w)
print score.shape

OUT-> (1L)

输出应为(60000,1)

我知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你应该完全避免使用for循环。实际上,np.dot应该在N-dim数组上工作并在内部进行循环。参见例如

In [1]: import numpy as np

In [2]: a = np.random.rand(1,2)  # a.shape = (1,2)

In [3]: b = np.random.rand(2,3)  # b.shape = (2,3)

In [4]: np.dot(a,b)
Out[4]: array([[ 0.33735571,  0.29272468,  0.09361096]])