关于numpy库的一些函数使用的记录

生成元素在某一连续范围内的任意形状的矩阵

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)

你可能感兴趣的:(Python,numpy,python,机器学习)