栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy中A*B和np.dot(A,B)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy中A*B和np.dot(A,B)

总结: 一个【】是一维数组,多个【】是二维数组(矩阵)
  • A = np.array([3,4])    A是有两个元素的一维数组
  • B = np.array([[3,4]])   B是一行两列的二维数组
  • C = np.array([[3],[4]])  C是两行一列的二维数组
A*B是对应元素相乘,有广播的性质


dot(A,B)是矩阵乘法,但是遇到一维数组时,一维数组可以根据具体情况自动选择充当列向量或行向量
  • 两个一维数组相乘结果是内积
    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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/423048.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号