用numpy模块求矩阵转置,逆,维度,协方差矩阵及矩阵的点乘

用numpy模块求矩阵的相关问题

矩阵是机器学习中常见类型,熟练掌握矩阵在python中的实现至关重要



提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、矩阵的行列数

求矩阵的行列数,用shape方法,返回tuple类型,0位代表行数,1位代表列数

import numpy as np

#设定一个2*4的矩阵
a = np.array([[1,2,3,4],[3,4,5,6],[5,6,7,8],[7,8,9,0]])
print(a)

#求矩阵的行列数,用shape方法,返回tuple类型,0位代表行数,1位代表列数
print(np.shape(a))

[[1 2 3 4]
 [3 4 5 6]
 [5 6 7 8]
 [7 8 9 0]]
(4, 4)

二、矩阵的转置

求矩阵的转置, 用.T , 返回array类型,但不改变原变量属性

print(a.T)
print(a)

[[1 3 5 7]
 [2 4 6 8]
 [3 5 7 9]
 [4 6 8 0]]
[[1 2 3 4]
 [3 4 5 6]
 [5 6 7 8]
 [7 8 9 0]]

三、矩阵的逆

求矩阵的逆,用np.linalg.inv(),返回array类型,但不改变原变量属性

print(np.linalg.inv(a))
print(a)

[[-5.25419957e+15  1.05083991e+16 -5.25419957e+15 -4.29687500e-01]
 [ 1.05083991e+16 -2.10167983e+16  1.05083991e+16  7.59375000e-01]
 [-5.25419957e+15  1.05083991e+16 -5.25419957e+15 -2.29687500e-01]
 [-5.83333333e-01  1.06666667e+00 -3.83333333e-01 -1.00000000e-01]]
[[1 2 3 4]
 [3 4 5 6]
 [5 6 7 8]
 [7 8 9 0]]

四、矩阵的点乘

求矩阵的点乘,用np.dot(<Variable1,Variable2>),返回array类型,但不改变原变量属性

print(np.dot(a,a.T))
print(a)

[[ 30  50  70  50]
 [ 50  86 122  98]
 [ 70 122 174 146]
 [ 50  98 146 194]]
[[1 2 3 4]
 [3 4 5 6]
 [5 6 7 8]
 [7 8 9 0]]

五、协方差矩阵

求协方差矩阵,用np.cov(<二维array类型>,< rowvar=true/false>),
若rowvar为true,每一行代表一个变量;若rowvar为false,每一列代表一个变量
返回array类型,但不改变原变量属性

print(np.cov(a,rowvar = False))
print(a)

[[ 6.66666667  6.66666667  6.66666667 -3.33333333]
 [ 6.66666667  6.66666667  6.66666667 -3.33333333]
 [ 6.66666667  6.66666667  6.66666667 -3.33333333]
 [-3.33333333 -3.33333333 -3.33333333 11.66666667]]
[[1 2 3 4]
 [3 4 5 6]
 [5 6 7 8]
 [7 8 9 0]]

总结

矩阵的点乘,转置,逆,协方差矩阵以及行列数都离不开numpy模块,numpy在python中的应用可以大幅提高高维数据在python中的运算速度。如果我的分享对你有帮助,请点个赞鼓励一下。

Guess you like

Origin blog.csdn.net/dylan_young/article/details/115074862