我是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)
我知道如何解决这个问题?
答案 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]])