购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 矩阵的运算

2.2.1 矩阵的转置

矩阵的转置是指将矩阵的行和列交换位置得到的新矩阵。例如,如果有一个3行2列的矩阵A:

那么它的转置矩阵A T 就是一个2行3列的矩阵,其行元素为原矩阵的列元素,排列的结果为:

可以看出,矩阵的转置不改变矩阵的主对角线上的元素(即原矩阵中第i行第j列的元素,在转置后的矩阵中位置变为第j行第i列),但改变了矩阵中非主对角线上的元素的位置。矩阵的转置在很多数学和工程问题中都具有重要的应用。

结合生活中的例子来理解,大家可以把矩阵想象成一个二维的数据表格,就像是电影院的座位表,有排有列,每个格子里都有一个数值,代表这个位置上的数据。矩阵的转置其实就是把这个表格沿着对角线进行翻转。什么意思呢?就是说,原本在第一行第二列的数字,现在就会变成第二行第一列的数字。

用生活中的例子来说,就好比我们在看电影时,坐在座位表上第三排第四个座位,但是我们想换到第四排第三个座位,这时候就要找工作人员帮忙了。那么电影院座位表的转置就是将所有的座位行变成列,列变成行,然后我们再去找第四排第三个座位,就可以愉快地看电影啦,就像图2-5所示的这样。

图2-5 将女孩的座位换到男孩后面,就像矩阵的转置

转置矩阵在很多领域都有重要的应用,比如在机器学习中,经常会使用转置矩阵进行特征提取和数据降维等操作。所以,掌握它可不仅仅是为了看电影方便。

原理输出2.5

为了帮助大家更好地理解和消化矩阵的转置的概念,请大家在ChatGPT的帮助下,录制一个长度约为2分钟的短视频,介绍什么是矩阵的转置。

小贴士

可以参考的ChatGPT提示词如下。

“请简要介绍什么是矩阵的转置。”

“请结合生活中的例子,介绍矩阵的转置的概念。”

“假设你是一位大学老师,请用轻松易懂的语言向学生讲解矩阵的转置。”

实操练习2.5

为了让大家可以用代码的形式学习矩阵的转置,接下来大家可以让ChatGPT生成代码进行演示,并在Colab新建一个Notebook文件运行这些代码。

小贴士

要让ChatGPT生成代码,可以参考的提示词如下。

“请用Python演示矩阵的转置,需要可视化。”

“用Python可视化的方法演示矩阵的转置。”

2.2.2 矩阵的广播

矩阵广播是一种在不同形状的数组之间进行运算的方法。它允许较小的数组通过复制其条目来与较大的数组进行操作,从而使它们具有相同的形状。

在矩阵广播中,系统会尝试将较小的数组沿着缺失的维度进行复制,以匹配较大数组的形状,然后再进行计算。例如,如果一个2×2的矩阵加上一个大小为1×2的行向量,则系统会自动将行向量扩展为2×2大小,使其与第一个矩阵具有相同的形状,然后再执行加法操作。

这种广播机制可以简化代码,并提高程序的效率,因为它避免了创建多个相同形状的数组,同时也增加了代码的可读性和灵活性。

例如,你和你的朋友一起去吃饭,你们俩要合作完成不同种类食物的搭配,比如汉堡加可乐、薯条加红豆冰淇淋……但是,你和你的朋友手上的食材数量却不相等,这时候该怎么办呢?

别担心,这就是矩阵的广播过程!矩阵的广播可以让你在处理不同形状的矩阵时,自动地扩展其中一个矩阵以匹配另一个矩阵的形状。就像你和你的朋友合作,只需要将其中一个人的食物量扩大到和另一个人一样多,然后再进行搭配。

举个例子,你有6个汉堡,摆成2行,每行有3个,这就可以看成是一个2行3列的矩阵A。而你的朋友有3杯可乐,摆成1行,可以看成是1个1行3列的矩阵B。现在你们要组合出6个汉堡可乐套餐,但你朋友手里的可乐不够。这怎么办呢?不要紧,你们可以用超能力把3杯可乐变成6杯。然后把可乐也摆成2行3列的矩阵,这样就可以和汉堡矩阵一起组合成6个套餐了。而你们把原本1行3列的可乐矩阵变成2行3列的过程,就可以类比为矩阵的广播,就像图2-6所示的这样。

图2-6 将可乐“广播”来匹配汉堡的数量

原理输出2.6

为了帮助大家更好地理解和消化矩阵的广播的概念,请大家在ChatGPT的帮助下,录制一个长度约为2分钟的短视频,介绍什么是矩阵的广播。

小贴士

可以参考的ChatGPT提示词如下。

“请简要介绍什么是矩阵的广播。”

“请结合生活中的例子,介绍矩阵的广播的概念。”

“假设你是一位大学老师,请用轻松易懂的语言向学生讲解矩阵的广播。”

实操练习2.6

为了让大家可以用代码的形式学习矩阵的广播,接下来大家可以让ChatGPT生成代码演示,并在Colab新建一个Notebook文件运行这些代码。

小贴士

要让ChatGPT生成代码,可以参考的提示词如下。

“请用Python演示矩阵的广播,需要可视化。”

“用Python可视化的方法演示矩阵的广播。”

2.2.3 矩阵乘法

矩阵乘法是指两个矩阵相乘的操作。对于两个矩阵A和B,如果A的列数等于B的行数,则可以进行矩阵乘法。具体来说,设A为m×n的矩阵(即有m行、n列),B为n×p的矩阵(即有n行、p列),则它们的乘积记作C,C为m×p的矩阵,其中C中第i行第j列的元素等于A中第i行与B中第j列对应元素的乘积之和。

用通俗的语言来理解——假设你是一家餐厅的老板,经营着不同种类的菜品,比如牛排、鸡肉、青菜等。同时,你有一份菜单,上面列出了每种菜品的名称、价格和描述。

现在,你想要知道如果顾客点了牛排、青菜和土豆泥,他们需要支付多少钱。这时候,你可以去菜单上找到这些菜品对应的价格,然后把它们加起来,就能得到总价了。

这就好比是对两个向量进行内积运算,也就是简单地相乘并相加。

但是,如果你的餐厅变得越来越受欢迎,你可能会遇到更多的订单,有些订单中会有重复的菜品,比如有人点了两份牛排或者三份青菜。

这时候,你不能简单地将所有的价格加起来,因为你会计算出错误的总价。你需要将每种菜品的数量和价格相乘,再相加得到总价,就像图2-7所示的这样。

这就是矩阵乘法的过程,其中一个矩阵代表菜品和它们的价格,另一个矩阵代表每种菜品的数量。通过将这两个矩阵相乘并相加,你最终可以得到正确的总价。

图2-7 菜品的数量与价格相乘后再相加,也可以看成是矩阵乘法

所以,矩阵乘法就是一种用于处理大量数据的算法,它的原理类似于你在餐厅中计算订单价格的过程。

原理输出2.7

为了帮助大家更好地理解和消化矩阵乘法的概念,请大家在ChatGPT的帮助下,录制一个长度约为2分钟的短视频,介绍什么是矩阵乘法。

小贴士

可以参考的ChatGPT提示词如下。

“请简要介绍什么是矩阵乘法。”

“请结合生活中的例子,介绍矩阵乘法的概念。”

“假设你是一位大学老师,请用轻松易懂的语言向学生讲解矩阵乘法。”

实操练习2.7

为了让大家可以用代码的形式学习矩阵乘法,接下来大家可以让ChatGPT生成代码演示,并在Colab新建一个Notebook文件运行这些代码。

小贴士

要让ChatGPT生成代码,可以参考的提示词如下。

“请用Python演示矩阵乘法,需要可视化。”

“用Python可视化的方法演示矩阵乘法。” NN3m3Nm0KzPNdSS+mErr0WJrFWEw/avS9FhjpN8ZSTmWj1w81txwTd0//xTFczea

点击中间区域
呼出菜单
上一章
目录
下一章
×