numpy np.dot 向量点积和矩阵乘法

numpy np.dot 向量点积和矩阵乘法

#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))

发表回复

您的电子邮箱地址不会被公开。