python中关于矩阵的运算

最近在用python写程序的时候,总是遇到矩阵就犯懵,于是总结了一下!不定期更新
首先,python中要进行数据的运算,需要插入运算库numpy
import numpy as np
在这里说一下几个常用的库吧:
pandas
numpy
#这两个主要是用来做数据的运算
Matplotlib
seaborn
#这两个主要用来作图等数据的可视化
sklearn #一个机器学习的库
scipy # 数据统计的库
re #正则化的库

1、创建矩阵
比如定义一个三行三列的矩阵,可以用matrix或者array,但是感觉matrix更保险
a1 = np.matrix([ [1,2,3],[3,4,5],[5,6,7] ])
a2 = np.array([ [1,2,3],[2,3,4],[5,6,7] ])
还有其他的方式不列举了
a3 = zeros( (4,5) ) #创建一个4行5列的array
a4 = ones( (4,5) ) #创建一个4行5列的array
a5 = empty( (3,4) ) #创建一个空矩阵

2、矩阵获取信息
a1.shape # 返回矩阵的行列信息
m = X.shape[0] #获取矩阵的行
m = X.shape[1] #获取矩阵的列
a1.ndim #返回矩阵的秩
a1.T #矩阵的转置
a1.H #只针对matrix,求其共轭转置
a1.I #只针对matrix,求其逆
a1.max #获取所有元素的最大值
a1.min
a1.sum #获取和
a1[1,2] #第一行第二列的元素
a1[0:3, :] #第一行到第三行的所有元素

3、运算
a1 * a2 # array是对应位置的两个矩阵元素相乘,Matrix是按照矩阵乘法来算
np.dot(a1, a2) #无论array还是matrix都是按照矩阵乘法法则来运算
np.multiply(a1, a2) # 点乘运算,就是对应位置的元素相乘
(我感觉简单的话就是 : 用点乘就用 multiply; 用矩阵乘法就用 dot)
a1**2 #计算矩阵的平方,注意当是array的时候,此时应该是对应的元素的平方
a2 = np.asmatrix(a1) #将a1转化成matrix
a2 = np.asarray(a1) #将a1转化成array
np.vstack( (a1, a2) ) #将a1和a2按列合并,就是列数不变,上下拼接
np.hstack( (a1, a2) ) #将a1和a2按行合并,就是行数不变,左右拼接

参考博客:
https://blog.csdn.net/lfj742346066/article/details/77880668
https://www.cnblogs.com/sitemanager/p/9057195.html

你可能感兴趣的:(Pyhon学习总结)