在学习机器学习的过程中,会经常遇到向量、矩阵和数组这些概念,并涉及到多维度,造成许多困惑,因此进行一个总结,主要参考了:https://blog.csdn.net/qq_33419476/article/details/105546442。
向量
概念:n个有次序的数 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,⋯,an所组成的数组称为n维向量,这n个数称为该向量的n个分量,第i个数 a i a_i ai称为第i个分量。(同济大学线性代数第五版-4.1)
n维向量可写成一行,也可写成一列,分别称为++行向量++ 和++列向量++ ,也就是++行矩阵++ 和列矩阵,并规定++行向量和列向量都按矩阵的运算规则进行运算++。
n维行向量: a = ( a 1 , a 2 , ⋯ , a n ) a=(a_1,a_2,\cdots,a_n) a=(a1,a2,⋯,an)
n维列向量:
a ⊤ = ( a 1 a 2 ⋮ a n ) \mathbf{a}^\top= \begin{equation} \left( %左括号 \begin{array}{} a_1\\ a_2\\ \vdots\\ a_n \end{array} \right) %右括号 \nonumber \end{equation} a⊤= a1a2⋮an
Note: 这个解释其实是说在线性代数中,向量和矩阵其实是一回事。不同的是矩阵论阶,向量论维。
矩阵
矩阵定义:由m×n 个数 a i j a_{ij} aij(i= 1,2,...,m;j= 1,2,...,n)排成的m 行n 列的数表。 (同济大学线性代数第六版)
a 11 ⋯ a 1 n ⋮ ⋱ ⋮ a m 1 ⋯ a m n \begin{array}{c} a_{11} & \cdots &a_{1n} \\ \vdots & \ddots &\vdots \\ a_{m1} & \cdots &a_{mn} \end{array} a11⋮am1⋯⋱⋯a1n⋮amn
称为m 行n 列矩阵,简称m×n 矩。
矩阵的列向量组和行向量组都是只含有限个向量的向量组;反之,一个含有限个向量的向量组总可以构成一个矩阵。++因此可知向量可以组成矩阵,矩阵是包含向量的。++
二维矩阵:
二维矩阵的维度类似于空间向量的维数,而不是一个包含两个元素的列矩阵。所以,我们通常会说矩阵的维度是指矩阵的行数。
数组
概念:所谓数组,是有序的元素序列。
这里的概念就没有涉及到空间了,我们通常称的n维数组,这里的维度指的不是空间的维度,而是数据所构成的维度。
例如:
一维数组
[1, 2, 3, 4]
二维数组
[[1, 2],[3, 4]]
三维数组
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
++数组常用在python等编程语言中实现向量、矩阵等数据结构。++
向量空间
几何中,"空间"通常是作为点的集合,即构成"空间"的元素是点,这样的空间叫做点空间。
我们把3 维向量的全体所组成的集合叫做++3维向量空间++ 。类似的,n维向量的全体所组成的集合叫做++n维向量空间++。
Note: 这里n维向量空间的概念应该可以理解成n x n矩阵。
在同济大学线性代数第六版中,矩阵的列向量组和行向量组都是只含有限个向量的向量组;反之,一个含有限个向量的向量组总可以构成一个矩阵。例如,一个mxn矩阵的全体列向量是一个含n个m维列向量的向量组。