本文结合其他博主的一些介绍总结了dot函数运算过程

基本简介

dot函数为numpy库下的一个函数,主要用于矩阵的乘法运算,其中包括:向量内积、多维矩阵乘法和矩阵与向量的乘法。

1. 向量内积

向量其实是一维的矩阵,两个向量进行内积运算时,需要保证两个向量包含的元素个数是相同的。

例1:

import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7])

y = np.array([2, 3, 4, 5, 6, 7, 8])

result = np.dot(x, y)

print(result)

输出结果:

168

计算过程就是将向量中对应元素相乘,再相加所得。即普通的向量乘法运算。

2. 矩阵乘法运算

注意:

1.数组的运算是元素级的,数组相乘的结果是各对应元素的积组成的数组,而对于矩阵而言,需要求的是点积

2.两个矩阵(x, y)如果可以进行乘法运算,需要满足以下条件:

x为 m×n 阶矩阵,y为 n×p 阶矩阵,

则相乘的结果 result 为 m×p 阶矩阵。例子如下

例2:

import numpy as np

x = np.array([[1, 2, 3],

[3, 4, 4]])

y = np.array([[0, 1, 1, 1],

[1, 2, 0, 1],

[0, 0, 2, 1]])

result = np.dot(x, y)

print(result)

print("x阶数:" + str(x.shape))

print("y阶数:" + str(y.shape))

print("result阶数:" + str(result.shape))

结果为:

[[ 2 5 7 6]

[ 4 11 11 11]]

x阶数:(2, 3)

y阶数:(3, 4)

result阶数:(2, 4)

下面我们来分析一下一维数组到多维数组之间的运算过程

2.1如下单个数的dot函数运算所示:

np.dot(5,8)
40

2.2如下一维数组的dot函数运算所示:

#如果arr1和arr2都是一维数组,那么它返回的就是向量的内积

arr1=np.array([2,3])

arr2=np.array([4,5])

np.dot(arr1,arr2)

#23

如图所示:

2.3如下二维数组的dot函数运算所示:

#如果arr5 和arr6都是二维数组,那么它返回的是矩阵乘法

arr5=np.array([[2,3],[4,5]])

arr6=np.array([[6,7],[8,9]])

np.dot(arr5,arr6)

"""

array([36,4],

[64,73])

"""

运算过程如下所示:

2.4如下二维数组与三维数组的dot函数运算:

#arr7二维数组与arr8三维数组的dot函数矩阵运算

arr7=np.array([[2,3,4],[5,6,7]])

arr8=np.array([[0,1,2],[3,4,5],[6,7,8]])

np.dot(arr7,arr8)

"""

array([33,42,51],[60,78,96])

"""

2.5如下多维数组的dot函数运算所示:

#多维数组的dot函数矩阵运算

arr12=np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])

arr13=np.array([[0,1,2],[3,4,5],[6,7,8]])

np.dot(arr12,arr13)

"""

array([15,18,21],

[42,54,66],

[69,90,111],

[96,126,156])

"""

注意:

dot()函数可以通过NumPy库调用,也可以由数组实例对象进行调用。例如:a.dot(b) 与 np.dot(a,b)效果相同。但矩阵积计算不遵循交换律,np.dot(a,b) 和 np.dot(b,a) 得到的结果是不一样的。

python中dot函数总结相关推荐

  1. python中pop函数_Python中的Pop函数

    python中pop函数 什么是弹出功能? (What is the pop function?) The method pop() removes and returns the last elem ...

  2. 技术图文:举例详解Python中 split() 函数的使用方法

    背景 这篇文章主要介绍Python中的split()函数的使用方法,split()函数通常用于将字符串切片并转换为列表,需要的朋友可以参考一下. 技术分析 Python中有split()和os.pat ...

  3. python中eval()函数的使用

    python中eval()函数的使用 python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果. 函数定义: eval(expression, globals=None, l ...

  4. Python中eval函数的表达式如何使用

    这篇文章主要介绍了Python中eval函数的表达式用法示例,文中通过示例对比来为大家进行详细的讲解,有需要的朋友可以借鉴参下,希望有所帮助 eval 是干嘛的? 解析字符串表达式并执行,并返回一个值 ...

  5. python中add函数_如何使用python中的add函数?

    之前向大家介绍过python中的求和函数sum函数,numpy中的sum函数,对于数组可以指定维度进行相加.numpy中还有另一种求和运算方法,即add函数.add函数不仅作用于numpy中加法运算, ...

  6. format函数python的顺序_[转载] Python中format函数用法

    Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...

  7. python中remove函数是什么意思,python中pop函数和remove函数有什么区别

    python中pop函数和remove函数有什么区别 发布时间:2020-12-10 09:36:18 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下python中pop函数和remove函 ...

  8. python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...

    文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式. 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建. 'a'->追加,写到文件末尾 'b'- ...

  9. python使用del保留字定义一个函数-python中自定义函数的保留字是

    基本使用(推荐学习:Python视频教程)def function_name(parameters): expressions Python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数 ...

  10. 从Python中readline()函数读取的一行内容中去掉换行符\n

    从Python中readline()函数读取的一行内容中含有换行符\n,很多时候我们需要处理不含有换行符的字符串,此时就要去掉换行符\n. 方法是使用strip()函数. 例子如下: file = o ...

最新文章

  1. 二叉树:二叉搜索树的创建和插入
  2. 1.5 成员方法的声明和调用,形参,实参
  3. 论文浅尝 | 远程监督关系抽取的生成式对抗训练
  4. 开关问题(POJ-1830)
  5. 解决ModuleNotFoundError: No module named ‘_curses‘错误
  6. php缩略图代码,php 缩略图实现函数代码_php
  7. poj3349找相同的雪花(哈希)
  8. 管家婆普及版_昆明逸马软件 — 管家婆普及版新手入门指南
  9. 网站性能优化的10种方法
  10. Ps 快速更改头发颜色
  11. 初创期企业运营必备手册-工具包-绩效考核方法工具包
  12. java 滑杆和进度条_进度条 和 滑条
  13. python爬取B站评论制作词云
  14. centos虚拟机重启网卡命令
  15. 小程序实现滚动加载(懒加载)
  16. error: [xxxxxxx/qrc_resource.cpp] Error 1
  17. 靶场发展态势③美国防部赛博安全靶场(IAR/CSR)
  18. mos管 rl_MOS管放大电路
  19. Spark - Illegal pattern component: XXX 与org.apache.commons.lang3.time.FastDateFormat incompatible
  20. CLIP: 打通文本图像迁移模型的新高度

热门文章

  1. python getmenu不到菜单句柄_Python and Menu[编程点滴1]
  2. JS网页特效实例:让网页前进和后退
  3. 本科论文的标准格式是什么样的?
  4. p4:MATLAB安装出现license checkout failed, license Manager Error-8 如何解决?
  5. 嵌入式数据库和数据库服务器的区别
  6. SequoiaDB巨杉数据库-配置
  7. xposed绕过模拟器检测_绝地求生刺激战场怎么避开模拟器检测?避开模拟器检测方法分享...
  8. layui 汉字乱码_layui table中文乱码
  9. Note: the configuration keeps the entry point 'XXX', but not the descriptor class 'XXX'
  10. 钉钉windows端多开软件_电脑便签需要下载吗?电脑上用什么桌面便签软件工具好...