在咱们这儿,把那个方块格子的集合体叫个实词,叫“矩阵”就差不多。
你想想看,这玩意儿不像我们买的超市货架,也不像图书馆里那一摞规整的砖头。它更像是一堆被规整裁剪过的砖块,拼在一起,能搭出各种怪的墙,也能拼出能飞起来的飞机。
有时候它是个死板的长方形框框,有时候它可能是个螺旋形的圆,就连可能是个无限延伸的网。 说它是“死板”的,大约是出于要是不加料,它就是个空盒。你往盒子里一塞,就是一堆数字。
要是这堆数字是整个的,比如从左上角一直铺到右下角,那它就是个整个的矩阵,像一张铺满地面的地图。
这时候,你走到哪一行,哪一列,就能知道那里有啥。但要是是缺了块头的,比如右上角少了一块,那这就叫“半矩阵”,那你能干嘛呢?你得猜,你得琢磨,这缺的一块到底是不是关键。 要是这堆数字不是整个的,而是每个格子都只有一点点信息,要么每个格子都是个空白的,那这堆东西就有点不好说了。
这时候你得按行跑,按列跑。你从左上角往右走,这一列的数字代表你走的那条路的长度。你从左下角往上走,这一行的数字代表你那一行的高度。
这时候,矩阵就是个庞大的导航图,它告诉你啥时候该转弯,啥时候该加速。
要是它是个死胡同,那它就是个死路;要是它是个死叉路口,那它就是个迷宫。 说到矩阵里的“数”,得先说说它如何变。在咱们日常人话里,我们说数字是 1, 2, 3, 4……这实际上是自然数。但在矩阵里,数字是个角色。它能够是个整数,比如 5,那它就是个整数。它能够是个小数,比如 3.14,那它就是个小数。它也能够是负数,比如 -2,那它就是负数。就连,它也能够是分数,比如 1/2,要么根号 2,要么 e 自然常数。
这些不同的数字类型,在矩阵里就像衣服的颜色。红衣服、蓝衣服、绿衣服穿在矩阵的格子里,颜色不一样,但道理是一样的,都是数字。
有时候,矩阵里的数字会形成变化,这叫“运算”。
比方说,你把两个矩阵拼起来,要么乘以一个系数,这时候矩阵里的数字就变了。就像你手里的钞票,拿多了就变多了,拿少了就变少了,但本质还是那张纸。 再聊聊结构。矩阵的结构实际上挺随意的。它不一定非要是矩形的。你能够是个三角形,像金字塔一样,上面宽下面窄;也能够是个菱形,像风筝一样;就连能够是连成一片的网状结构,像蜘蛛网。
这种网状结构在计算机科学里特别常见,出于网络就是网啊。在王老师的教程里,矩阵是个矩形,只有两边的边长相等。但在咱们这儿,矩阵就是个容器。
不管它是个啥形状,只要能装得进数据,它就是个矩阵。数据填进去,不管是多还是少,不管全还是半,它过日子都在。 举个实例子。想象你有个数据表格。
第一行是 1, 2, 3;第二行是 4, 5, 6。
这时候,你把它放到大一点的表格里,填空了,变成 4 列,那它就变成了一个 3 行 4 列的矩阵。
这时候,第一个数字是 1,第二个是 2,第三个是 3,第四个是 4。
要是你再加一行,变成 5 行,那它就是个 5 行 4 列的矩阵。
这时候,原来的 4 和 5 还是原来的 4 和 5,只是位置变了。就像你在纸上画个数字 4,把自己手里的笔拿开,纸上就空了,但这 4 还在纸的某个位置。
有时候,矩阵里的数字代表的是距离。
比方说,你从起点到终点,走了 100 步,那就是 100。走了 1.5 小时,那就是 1.5。
有时候,它代表的是概率。
比方说,掷骰子,1 出现的概率是 1/6,那 1 就是一个概率矩阵里的元素。
有时候,它代表的是温度。0 度冰,100 度热,那 50 度就是 50。 再细究一下数据的归类。矩阵里的数据有好多种说法。有的老师叫它“数值”,有的叫它“元素”,还有的叫它“项”。
反正意思差不多,就是那堆摆在格子堆里的东西。有的叫它“标量”,出于每个格子只有一样东西;有的叫它“向量”,出于每个格子是一小截数据。
实际上这没啥忒大区别,就是看你如何看。
你看成是一堆格子,那它就是一群标量;你看成是一个个独立的单位,那它就是一个个向量。 还有,矩阵里的数字有时候是整数,有时候是小数。
比如 2.5 和 5/2,在矩阵里它们是一回事。
有时候是分数,比如 1/2。
有时候是根号,比如根号 2。
有时候是无限循环小数,比如 0.333……在矩阵里,它们都能站在那儿,只是长相不一样。
有时候它们还是负数,比如 - 5。
有时候它们是复数,比如 1 + 2i,也就是 1 加 2 的虚数。
这些不同的形态,在矩阵里都叫“数字”要么“矩阵元素”。它们就是数字。 再说说矩阵的功能。它有啥用?它就是个容器,也是个工具。它能把一堆乱七八糟的数据整理成规整的格式。
比方说,你在公司里做数据录入,可能每天要填几十张表,每张表里可能都有几十行数据,那是啥?那是个矩阵。你只需求把这些表拼在一起,要么把它们转换成一行行的一堆数字,那立马就是个矩阵。它能处理这种整理工作。它能做加法、乘法、除法、做转置、做求和、做平均数。它能化简一堆复杂的表格,让你一眼就能看清楚哪行好,哪列不中,哪儿该合并,哪儿该拆分。 在机器学习里,矩阵特别关键。出于机器学习就是把一堆乱糟糟的数据,变成一堆矩阵,然后让机器去算。机器一看,嘿,这里面全是数字,全是格子,全是数据。它先把这些数据放进矩阵里,然后利用矩阵运算,比如矩阵乘法,让机器去找规律。
有时候,矩阵是个输入,有时候,矩阵是个输出。
比如你输入一张图片,那这图片就变成了一堆像素的矩阵。机器算完,它就告诉你这张图里有啥,要么这张图里形成了啥。 再聊聊矩阵里的“运算”。矩阵最酷的地方在于它能自己动。你能够随意往它里塞数据,它自己也能动。
比方说,你把一个矩阵加到另一个矩阵上,它自己就会变成一个新的矩阵。
这就像两个人手拉手,两个人都有东西,拉手之后,手就变成了一个整体。
这个整体,就是运算后的结局。它可能比原来的两个都大,可能比原来的都小。它可能形状转变了。
比方说,你有一个 3 行 4 列的矩阵,你给它乘以一个 2 行 3 行的矩阵,那结局就是一个 3 行 4 列的矩阵了。3 行 4 列,没变。但要是你乘以一个 2 行 2 行的矩阵,那结局就是 2 行 4 列了,形状变了。
这说明矩阵里的运算,有时候是“加法”,有时候是“乘法”,有时候是“乘法”里再“加法”。它是个灵活的家伙,不仅能加,还能乘,还能做除法。 还有,矩阵里的数字有时候会被用来做“特征值”。
比方说,你有一个复杂的机器,运行起来挺复杂,它内部的各种状态变化能够用一个矩阵来表示。
然后,你就去算这个矩阵的“特征值”。特征值是啥?就是它能代表啥。
有时候,它能告诉你机器的运行状态是稳定的,有时候能告诉你机器的运行状态是不稳定的。
这就像你听歌,有时候歌是调得准的,有时候歌是调得歪的。矩阵的运算,就是帮你听清楚,有没有调好。 再说说数据的具体内容。矩阵里的数据,有时候是离散的,比如 1, 2, 3;有时候是连续的,比如 0, 1, 2, 3, 4, 5;有时候是概率的,比如 0.1, 0.2, 0.3;有时候是统计量的,比如均值、方差;有时候是函数的,比如 sin(3.14), cos(3.14)。
这些不同的内容,在矩阵里都叫“数据”要么“元素”。它们就是数据。它们就是矩阵里的东西。它们能够是整数,能够是小数,能够是分数,能够是负数,能够是正数,能够是复数。它们的形态万千,但本质都是一样的。 最终,总结一下。矩阵这个东西,在咱们这儿,就是个填了数据的格子堆。它可能是矩形,可能是正方形,可能是三角形,可能是网状。它里的数字能够是整数,能够是小数,能够是分数,能够是负数,能够是正数,能够是复数。它有自己的运算,能加、能乘、能变。它是个容器,是个工具,是个数据格式。它能把乱七八糟的数据整理成规整的格式,让人一看就知道哪行好,哪列不中,哪儿该合并,哪儿该拆分。在机器里,矩阵是قلب(核心),是心脏。
没有矩阵,数据就是一堆散沙;有了矩阵,数据就变成了有形的、可计算的、可操作的实体。
不管它形状如何变,不管数据如何变,它就是个矩阵。它就是个装着数据的盒子,里面装着数字,装着逻辑,装着一切。