今天学习到numpy基本的运算方法,遇到了一个让我比较难理解的问题。就是dot函数是如何对矩阵进行运算的。

一、dot()的使用

参考文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html

dot()返回的是两个数组的点积(dot product)

1.如果处理的是一维数组,则得到的是两数组的內积(顺便去补一下数学知识)

In : d = np.arange(0,9)
Out: array([0, 1, 2, 3, 4, 5, 6, 7, 8])
In : e = d[::-1]
Out: array([8, 7, 6, 5, 4, 3, 2, 1, 0])In : np.dot(d,e)
Out: 84

2.如果是二维数组(矩阵)之间的运算,则得到的是矩阵积(mastrix product)。

In : a = np.arange(1,5).reshape(2,2)
Out:
array([[1, 2],
       [3, 4]])

In : b = np.arange(5,9).reshape(2,2)
Out: array([[5, 6],
            [7, 8]])

In : np.dot(a,b)
Out:
array([[19, 22],
       [43, 50]])

所得到的数组中的每个元素为,第一个矩阵中与该元素行号相同的元素与第二个矩阵与该元素列号相同的元素,两两相乘后再求和。

这句话有点难理解,但是这句话里面没有哪个字是多余的。结合下图理解这句话。

3.dot()函数可以通过numpy库调用,也可以由数组实例对象进行调用。a.dot(b) 与 np.dot(a,b)效果相同。

矩阵积计算不遵循交换律,np.dot(a,b) 和 np.dot(b,a) 得到的结果是不一样的。

来源:https://www.cnblogs.com/luhuan/p/7925790.html

对NumPy中dot()函数的理解(亲测,矩阵算法)相关推荐

  1. np.dot()函数用法(亲测矩阵算法)

    Numpy中dot()函数主要功能有两个:向量点积和矩阵乘法. 格式:x.dot(y) 等价于 np.dot(x,y) ---x是m*n 矩阵 ,y是n*m矩阵,则x.dot(y) 得到m*m矩阵. ...

  2. python中size的用法.dim_对于numpy中的函数的参数dim的一点理解

    对于numpy中的函数的参数dim的一点理解 经常被dim参数搞混.试着总结了一下.记忆瞬间清晰了 以.max(dim)方法为例: >>> import numpy as np &g ...

  3. python sum函数numpy_解决Numpy中sum函数求和结果维度的问题

    使用Numpy(下面简称np)中的sum函数对某一维度求和时,由于该维度会在求和后变成一个数,所以所得结果的这一维度为空. 比如下面的例子: a = np.array([[1,2,3],[4,5,6] ...

  4. pythonreshape函数三个参数_Python Numpy中reshape函数参数-1的含义

    python numpy中reshape函数参数-1的含义,新数组的shape属性应该要与原来数组的一致,即新数组元素数量与原数组元素数量要相等.一个参数为-1时,那么reshape函数会根据另一个参 ...

  5. 详解numpy中argsort函数

    当你不了解一个函数的时候,你可以采用两种方式:一种输入来了解函数 print(help(np.argsort)) 要么就是 直接 点进函数来看函数的源代码,可能源代码都是英文,不太好理解,没有关系,我 ...

  6. sum函数python后面很多小数_解决Numpy中sum函数求和结果维度的问题

    使用Numpy(下面简称np)中的sum函数对某一维度求和时,由于该维度会在求和后变成一个数,所以所得结果的这一维度为空. 比如下面的例子: a = np.array([[1,2,3],[4,5,6] ...

  7. Python使用numpy中trim_zeros函数去除首尾0值的语法

    Python使用numpy中trim_zeros函数去除首尾0值的语法 目录 Python使用numpy中trim_zeros函数去除首尾0值的语法 #numpy中trim_zeros

  8. numpy中ravel函数、flatten函数的功能及差异

    numpy中ravel函数.flatten函数的功能及差异 >>> import numpy as np >>> a = np.arange(20).reshape ...

  9. numpy中where函数的用法

    numpy中where函数的用法 numpy.where(condition,x,y)--若满足condition,输出x,否则输出y. 举例: 例1:一维数组 >>> a = np ...

最新文章

  1. Java中一个令人惊讶的bug
  2. linux+软盘启动程序,软盘上的Linux系统方案
  3. 计算机专业好的211大学6,计算机专业好的985大学有哪些?附985211计算机大学名单排名...
  4. 跟我学 Java 8 新特性之 Stream 流(五)映射
  5. linux nginx安装
  6. django-自定义过滤器
  7. rsycn定时同步/备份异地主机文件
  8. SpringAOP-基于@AspectJ的简单入门
  9. Flink API之Source入门
  10. 医学成像中的深度学习——基于PyTorch的3D 医学图像分割
  11. 人工智能围棋战胜李世石,人工智能围棋阿尔法狗
  12. 用UCWEB浏览器上网 省流量小技巧
  13. 女生适合编程吗,有没有编程很厉害的女生?
  14. 多媒体-用windows自带录音机录音(转载)
  15. 三牛三虎过河问题--图的最短路径dijkstra算法--简单的Python实现
  16. iPhone4/4s 5.1.1版本越狱后无法连接iTunes,出现0xE8000012错误的解决方法
  17. 删除程序时弹出没有权限
  18. rtx服务器修改登录端口,rtx服务器端口设置
  19. Kindle在线推书网站 强烈推荐
  20. hp计算机如何进入启动界面,HP笔记本怎么进入BIOS设置启动方式,惠普怎么进入BIOS设置?...

热门文章

  1. C语言字符串字母移位
  2. php 从第几开始截取,php如何实现截取前几个字符
  3. crash工具解析_IDA反汇编静态调试Android平台C++的so文件Crash入门
  4. json转java对象_json转java对象
  5. 微信网页授权,获取微信code,获取access_tocken,获取用户信息
  6. Oracle中PLSQL中if语句的写法
  7. 窗口分析函数_17_计算百分位数
  8. 处理字符串_4_计算某个字符出现的次数
  9. 检索数据_11_限制返回的行数
  10. 用html5做一个简单的作品,html5 canvas 简单画板实现代码