详解Python中的算术乘法、数组乘法与矩阵乘法

推荐教材:

Python数据分析、挖掘与可视化》(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年3月第6次印刷

 

图书封面:图片

 

京东详情链接:图片

主要内容:全书共264页。

配套资源:教学大纲、PPT、教案、源码、测试数据、习题答案、66课690分钟视频、智慧树网慕课、课堂管理系统。

《Python数据分析、挖掘与可视化》前3章书稿PDF免费阅读

《Python数据分析、挖掘与可视化》教学大纲(参考)

===============

(1)算术乘法,整数、实数、复数、高精度实数之间的乘法。

图片

 

(2)列表、元组、字符串这几种类型的对象与整数之间的乘法,表示对列表、元组或字符串进行重复,返回新列表、元组、字符串。

需要特别注意的是,列表、元组、字符串与整数相乘,是对其中的元素的引用进行复用,如果元组或列表中的元素是列表、字典、集合这样的可变对象,得到的新对象与原对象之间会互相干扰。

图片

 

图片

 

图片

 

(3)numpy数组与数字num相乘,表示原数组中每个数字与num相乘,返回新数组,类似的规则也适用于加、减、真除、整除、幂运算等。

图片

 

(4)numpy数组与类似于数组的对象(array-like,包括Python列表、元组和numpy数组)相乘(同样适用于加、减、真除、整除和幂运算),需要满足广播的条件:两个数组的shape属性的元组右对齐之后要求两个元组在垂直方向的两个数字要么相等、要么其中一个为1、要么其中一个对应位置上没有数字(没有对应的维度),结果数组中该维度的大小与二者之中最大的一个相等。在(3)中介绍的数组与标量的四则运算实际上也属于广播。例如,(m,n)的数组可以和(1,)、(n,)、(1,n)、(m,1)、(m,n)的数组进行相乘。

图片

 

下面再演示几种可以广播的情况:

图片

图片

 

(5)numpy数组与array-like对象的点积,通过numpy数组的dot()方法或numpy的dot()函数实现。

数组与标量相乘,等价于乘法运算符或numpy.multiply()函数:

图片

 

如果两个数组是长度相同的一维数组,计算结果为两个向量的内积:

图片

 

如果两个数组是形状分别为(m,n)和(n,)的二维数组和一维数组,计算结果为二维数组每行分别与一维数组的内积组成的数组:

图片

 

如果一个任意多维数组和一个一维数组(要求大小与多维数组最后一个维度相等)相乘,多维数组的最后一个维度分别与一维数组计算内积,计算内积的维度消失:

图片

图片

 

如果两个数组是形状分别为(m,k)和(k,n)的二维数组,表示两个矩阵相乘,结果为(m,n)的二维数组,此时一般使用等价的矩阵乘法运算符@或者numpy的函数matmul():

图片

 

如果一个n维数组和一个m(>=2)维数组进行dot()运算,第一个数组的最后一个维度与第二个数组的倒数第二个维度计算内积。

图片

 

在这种情况下,第一个数组的最后一个维度和第二个数组的倒数第二个维度将会消失,如下图所示,划红线的维度消失:

图片

 

6)numpy矩阵与矩阵相乘时,运算符*和@功能相同,都表示线性代数里的矩阵乘法。

图片

 

7)连乘,计算所有数值相乘的结果,可以使用标准库函数math.prod(),Python 3.8之后支持。

图片

 

扩展库函数numpy.prod()提供了更强大的功能。

图片

 

8)累乘,每个数字与前面的所有数字相乘,可以使用扩展库函数numpy.cumprod()

 

图片

 

温馨提示:

关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(累计印刷超过120次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1000篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过500节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习1363道客观题和260道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值