标量
标量(scalar):一个标量就是一个单独的数(整数或实数),不同于线性代数中研究的其他大部分对象(通常是多个数的数组)。标量通常用斜体的小写字母来表示,例如:x \mathit xx,标量就相当于Python中定义的
x = 1
向量
向量(vector):一个向量表示一组有序排列的数,通过次序中的索引我们能够找到每个单独的数,向量通常用粗体的小写字母表示,例如:x \bf xx,向量中的每个元素就是一个标量,向量中的第i ii个元素用x i x_ix
表示,向量相当于Python中的一维数组
import numpy as np
#行向量
a = np.array([1,2,3,4])
矩阵
矩阵(matrix):矩阵是一个二维数组,其中的每一个元素由两个索引来决定(A i , j A_{i,j}A
i,j
),矩阵通常用加粗斜体的大写字母表示,例如:X \boldsymbol XX。我们可以将矩阵看做是一个二维的数据表,矩阵的每一行表示一个对象,每一列表示一个特征。在Python中的定义为
import numpy as np
#矩阵
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
张量
张量(tensor):超过二维的数组,一般来说,一个数组中的元素分布在若干维坐标的规则网格中,被称为张量。如果一个张量是三维数组,那么我们就需要三个索引来决定元素的位置(A i , j , k A_{i,j,k}A
i,j,k
),张量通常用加粗的大写字母表示,例如:X \bf XX
import numpy as np
#张量
a = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
标量向量矩阵张量之间的联系
通过上面的介绍可以总结一下,标量是0维空间中的一个点,向量是一维空间中的一条线,矩阵是二维空间的一个面,三维张量是三维空间中的一个体。也就是说,向量是由标量组成的,矩阵是向量组成的,张量是矩阵组成的。
用一个比较通俗的例子可以概括为:假设你手中拿着一根棍子,标量就是我们只知道棍子的长度,但是不知道棍子指向的方向。向量就是我们除了知道棍子的长度之外还知道棍子指向的是左边还是右边,矩阵就是除了知道向量知道的信息外还知道棍子是朝上还是朝下,张量就是除了知道矩阵知道的信息外还知道棍子是朝前还是朝后。