- A = np.array([3,4]) A是有两个元素的一维数组
- B = np.array([[3,4]]) B是一行两列的二维数组
- C = np.array([[3],[4]]) C是两行一列的二维数组
-
两个一维数组相乘结果是内积
A = np.array([3,4]) D = np.array([1,2])
dot(A,D)返回11 -
矩阵A的第1维的元素个数(列数)必须和矩阵B的第0维的元素个数(行数)相等。
-
虽然一维数组可以自动选择充当行/列向量,但当A是二维矩阵、B是一维数组时,对应维度的元素个数要保持一致的原则依然成立。否则报错。
a = np.array([1, 2]) # 有两个元素的一维数组 b = np.array([[3], [4]]) # 两行一列的矩阵 print(np.dot(b, a)) # 报错
这里(2,1) ✖️ (2,) 维度不匹配
但(2, )✖️(2,3)维度匹配,此时前面的一维数组自动选择充当列向量,所以一维数组是后面因数时比较麻烦,要特殊处理
- np.dot(a,b)和a.dot(b)等价
- [1,2]既可以做行向量也可以是列向量,而[[1,2]]就只能是行向量了,而[[1],[2]]只能是列向量
- 一维数组的shape返回结果是元组,因为一维数组也要返回和多维数组一致的结果,即返回元组
所以A.shape是(2, ),意思是A是有两个元素的一维数组,而不是有两行的矩阵
参考链接:
https://blog.csdn.net/wqtltm/article/details/79882928
https://blog.csdn.net/Moelimoe/article/details/100004920



