用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中的运算速度。如果我的分享对你有帮助,请点个赞鼓励一下。