#1. np.dot(a, b), 其中a为一维的向量,b为一维的向量,当然这里a和b都是np.ndarray类型的, 此时因为是一维的所以是向量点积。 import numpy as np a = np.array([0, 1, 2]) b = np.array([1, 2, 3]) # 0*1 + 1*2 + 2*3 print(np.dot(a, b)) # 8
#2. np.dot(a, b), 其中a为二维矩阵,b为一维向量,这时b会被当做一维矩阵进行计算。 import numpy as np a = np.array([[1,2],[1,2]]) b = np.array([1,2]) print("a " + str(a.shape)) print("b " + str(b.shape)) print(np.dot(a, b)) # 1*1 + 2*2, 1*1 + 2*2 print(np.dot(b, a)) # 1*1 + 2*1, 2*2 + 2*2 #当一维数组在右边时,不论是否转置,会默认变成p行1列的矩阵,即p*1(右边就必须竖着) #当一维数组在左边时,不论是否转置,会默认变成1行p列的矩阵,即1*p(左边就必须横着)
#3. np.dot(a ,b), 其中a和b都是二维矩阵,此时dot就是进行的矩阵乘法运算。 import numpy as np a = np.array([[1,2],[1,2],[1,2]]) b = np.array([[1,2],[1,2]]) print("a " + str(a.shape)) print("b " + str(b.shape)) print(np.dot(a, b))