生成元素在某一连续范围内的任意形状的矩阵
np.array(range(left, right)).reshape(row, col)
# left, right分别是范围的最小最大值,np.array()使之变成一维向量
# np.reshape()可以改变向量矩阵形状,前提是大小必须符合元素数量
对角矩阵
除对角线外其他项都是0的矩阵
v = np.array([1, 8, 4])
np.diag(v)
单位矩阵
对角线都为1的矩阵
np.eye(n) # 直接填对角线的项数,生成n×n的矩阵
阿达玛积 Hadamard Product
两个矩阵对应位置上的元素进行相乘
a = np.array(range(4)).reshape(2, 2)
b = np.array(range(4, 8)).reshape(2, 2)
a * b
点积
通常意义上的矩阵乘法
np.dot(a, b)
将数组转为矩阵
不改变输出格式,但性质发生变化
np.asmatrix(a)
将对角矩阵拆分为对角向量和单位矩阵
v, e = np.linalg.eig(a) # a为对角矩阵
对角矩阵的幂运算
对对角线上各个值的幂运算
以下求3次方举例
a*a*a
a**3
(a**2)*a
a@a@a
求对角矩阵的逆
np.linalg.inv(a)
a = np.matrix(a)
a.I
关于np.asmatrix和np.matrix的区别
Unlike matrix
, asmatrix
does not make a copy if the input is already a matrix or an ndarray
对原矩阵改动某一元素时,asmatrix跟随变化,而matrix不会改变
x = np.array([[1, 2], [3, 4]])
matrix = np.matrix(x)
asmatrix = np.asmatrix(x)
print(matrix)
print(asmatrix)
# 改变原矩阵某一元素
x[0][0] = 5
print(matrix)
print(asmatrix)