向量,乃数据处理之良方,以箭头或数字数组示之。但面对更繁杂的数据结构时,矩阵的应用便凸显其重要性,亦即此处需引入矩阵之概念。
矩阵者,正方形或矩形之数表也,具行、列二维度,可视作电子表格。数学语境中常见此术语,Numpy语境下则有二维数组与之对应。
在矩阵语境中,维度与向量之维数(空间维度)异。提及矩阵为二维数组时,即指其内元素呈行、列二向分布。
矩阵表示如下:
矩阵A具二行二列。若矩阵有m行n列,且数值为实,则可用如下符号示之:A∈ℝ(m×n)。
提及矩阵时,无需加粗体,但需明确行、列索引。如A_{2,1}即指第二行首列之元素。惯例中,先行索引行,后列索引列。
矩阵成分可表述如下:
图示一:矩阵为二维数组,行数常以m表示,列数n表示。其形状描述了每一维度中元素之数量。
借助Numpy,创建二维数组可用np.array()法。须注意,二维数组之创建在于恰当地使用方括号。
与向量类似,Numpy数组具有shape属性,可察其形状:行数与列数按序排列。
取矩阵元素时,需二索引:一行索引、一列索引。以Numpy为例,索引过程与向量无异,仅需指定二索引而已。以下为矩阵A之示例索引法:
[1, 2]索引得行号为1、列号为2之元素(基于零基准)。
若欲获取整列数据,可用冒号:如第一列(索引0)。类似地,获取特定行亦如法炮制。
掌握矩阵操作,对数据科学家而言是基本技能。确保数据方式无误,理解库如Sklearn、Tensorflow所需数据形状至关重要。
关于Numpy,若数组为向量(一维Numpy数组),其shape仅为单数;若为矩阵,其shape则为二数(行、列数)。例如,一维向量之shape首数为1。以双方括号[[和]]可创二维数组(矩阵)。
接下来,于数据科学基础数学中,我们将探讨矩阵乘积。矩阵乘积即两矩阵相乘得另一矩阵之运算,乃线性代数中核心运算之一。
矩阵乘积之简易情形在于其与向量之间。此可视为矩阵乘积之一例,其中向量仅含一列数值。
上图释明了矩阵与向量乘积之步骤。观矩阵首行,与向量(值3和4)行(值1和2)进行点积运算。首行之首值与首列首值相乘(1×3)加次值相乘(2×4),得(1×3 + 2×4 = 11),即矩阵首元素。
如上所示,矩阵乘积与点积密切相关。可将矩阵A拆分为三行行点积而得基本数学中数据科学之应用。
另观矩阵乘积之理解方式在于视向量为对矩阵各列加权之值。此明示向量长度需等同于应用此向量之矩阵列数。
下图可助理解此概念:向量值(3和4)可视作对矩阵各列之权重。前述标量乘法规则得与先前相同之结果。
以末例言之,A与v之间乘积可写为:此点重要,因于数据科学基础数学中详述,Av为A列之线性组合,系数即v值。观矩阵及向量形状必匹配以得乘积结果。
矩阵乘积类似矩阵向量积但适用于第二矩阵各列。于Numpy中可精确计算矩阵乘积:首个矩阵之列数须与次个矩阵之行数相配。结果矩阵之行数同首个矩阵而行数列数同次个矩阵。试之可见效。