python中dot函数总结
本文结合其他博主的一些介绍总结了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函数总结相关推荐
- python中pop函数_Python中的Pop函数
python中pop函数 什么是弹出功能? (What is the pop function?) The method pop() removes and returns the last elem ...
- 技术图文:举例详解Python中 split() 函数的使用方法
背景 这篇文章主要介绍Python中的split()函数的使用方法,split()函数通常用于将字符串切片并转换为列表,需要的朋友可以参考一下. 技术分析 Python中有split()和os.pat ...
- python中eval()函数的使用
python中eval()函数的使用 python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果. 函数定义: eval(expression, globals=None, l ...
- Python中eval函数的表达式如何使用
这篇文章主要介绍了Python中eval函数的表达式用法示例,文中通过示例对比来为大家进行详细的讲解,有需要的朋友可以借鉴参下,希望有所帮助 eval 是干嘛的? 解析字符串表达式并执行,并返回一个值 ...
- python中add函数_如何使用python中的add函数?
之前向大家介绍过python中的求和函数sum函数,numpy中的sum函数,对于数组可以指定维度进行相加.numpy中还有另一种求和运算方法,即add函数.add函数不仅作用于numpy中加法运算, ...
- format函数python的顺序_[转载] Python中format函数用法
Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...
- python中remove函数是什么意思,python中pop函数和remove函数有什么区别
python中pop函数和remove函数有什么区别 发布时间:2020-12-10 09:36:18 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下python中pop函数和remove函 ...
- python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...
文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式. 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建. 'a'->追加,写到文件末尾 'b'- ...
- python使用del保留字定义一个函数-python中自定义函数的保留字是
基本使用(推荐学习:Python视频教程)def function_name(parameters): expressions Python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数 ...
- 从Python中readline()函数读取的一行内容中去掉换行符\n
从Python中readline()函数读取的一行内容中含有换行符\n,很多时候我们需要处理不含有换行符的字符串,此时就要去掉换行符\n. 方法是使用strip()函数. 例子如下: file = o ...
最新文章
- 二叉树:二叉搜索树的创建和插入
- 1.5 成员方法的声明和调用,形参,实参
- 论文浅尝 | 远程监督关系抽取的生成式对抗训练
- 开关问题(POJ-1830)
- 解决ModuleNotFoundError: No module named ‘_curses‘错误
- php缩略图代码,php 缩略图实现函数代码_php
- poj3349找相同的雪花(哈希)
- 管家婆普及版_昆明逸马软件 — 管家婆普及版新手入门指南
- 网站性能优化的10种方法
- Ps 快速更改头发颜色
- 初创期企业运营必备手册-工具包-绩效考核方法工具包
- java 滑杆和进度条_进度条 和 滑条
- python爬取B站评论制作词云
- centos虚拟机重启网卡命令
- 小程序实现滚动加载(懒加载)
- error: [xxxxxxx/qrc_resource.cpp] Error 1
- 靶场发展态势③美国防部赛博安全靶场(IAR/CSR)
- mos管 rl_MOS管放大电路
- Spark - Illegal pattern component: XXX 与org.apache.commons.lang3.time.FastDateFormat incompatible
- CLIP: 打通文本图像迁移模型的新高度
热门文章
- python getmenu不到菜单句柄_Python and Menu[编程点滴1]
- JS网页特效实例:让网页前进和后退
- 本科论文的标准格式是什么样的?
- p4:MATLAB安装出现license checkout failed, license Manager Error-8 如何解决?
- 嵌入式数据库和数据库服务器的区别
- SequoiaDB巨杉数据库-配置
- xposed绕过模拟器检测_绝地求生刺激战场怎么避开模拟器检测?避开模拟器检测方法分享...
- layui 汉字乱码_layui table中文乱码
- Note: the configuration keeps the entry point 'XXX', but not the descriptor class 'XXX'
- 钉钉windows端多开软件_电脑便签需要下载吗?电脑上用什么桌面便签软件工具好...