Python numpy库常用函数详解:矩阵转换、生成与运算
本文详细介绍Python中numpy库的几个核心函数,包括将列表转换为矩阵的mat函数,生成全0和全1数组的zeros与ones函数,创建单位矩阵的eye函数,以及矩阵转置.T、转为列表的tolist、转为数组的getA和求逆矩阵.I等常用操作,帮助开发者高效进行矩阵运算。
numpy库简介与核心函数概览
numpy库是Python进行数据分析和矩阵运算的重要工具,它赋予了Python类似MATLAB的矩阵处理能力。
本文将重点讲解numpy库中几个常用的基础函数及其具体用法。
矩阵转换与基础数组生成
1、mat函数
mat函数的主要功能是将目标数据转换为矩阵(matrix)类型。
import numpy as np
>>a=[[1,2,3,],
[3,2,1]]
>>type(a)
>>list
>>myMat=np.mat(a)
>>myMat
>>matrix([[1,2,3],[3,2,1]])
>>type(myMat)
>>numpy.matrixlib.defmatrix.martix
通过该函数,可以将一个普通的列表a转换为对应的矩阵类型。
2、zeros函数
zeros函数用于生成指定维度的全0数组。
>>myMat=np.zeros(3) ###生成一个一维的全0数组
>>print(myMat)
>>array([0.,0.,0.])
>>myMat1=np.zeros((3,2)) ####生成一个3*2的全0数组
>>print(myMat)
>>array([[0.,0.],
[0.,0.]
[0.,0.]])
3、ones函数
ones函数用于生成一个元素全为1的数组。
>>onesMat=np.ones(3) ###1*3的全1数组
>>print(onesMat)
>>array([1.,1.,1.])
>>onesMat1=np.ones((2,3)) ###2*3的全1数组
>>print(onesMat1)
>>array([[1.,1.,1.],[1.,1.,1.]])
4、eye函数
eye函数用于生成指定行数的单位矩阵。
>>eyeMat=np.eye(4)
>>print(eyeMat)
>>array([[1.,0.,0.,0.],
[0.,1.,0.,0.],
[0.,0.,1.,0.,],
[0.,0.,0.,1.]])
矩阵运算与类型转换方法
5、.T属性
.T作用于矩阵对象,用于获取矩阵的转置结果。
>>myMat=np.mat([[1,2,3],[4,5,6]])
>>print(myMat)
>>matrix([[1.,2.,3.]
[4.,5.,6.]])
>>print(myMat.T)
>>matrix([[1,4],
[2,5],
[3,6]])
6、tolist方法
tolist方法用于将矩阵对象转换为Python的list列表格式。
>>x=np.mat([[1,2,3],[4,5,6]])
>>print(x)
>>matrix([[1,2,3],[4,,5,6]])
>>type(x)
>>matrix
>>x.tolist()
>>[[1,2,3],[4,5,6]]
7、getA()方法
getA()是numpy.matrix类下的一个方法,用于将矩阵转换为数组,其效果等价于np.asarray(self)。
>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> x.getA()
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
8、.I属性
.I用于计算矩阵的逆矩阵,这在数值计算中非常常见。例如,对于矩阵A,若存在矩阵B使得AB=I(I为单位矩阵),则B为A的逆矩阵。
In [3]: a=mat([[1,2,3],[4,5,6]])
In [4]: a
Out[4]:
matrix([[1, 2, 3],
[4, 5, 6]])
In [5]: a.I
Out[5]:
matrix([[-0.94444444, 0.44444444],
[-0.11111111, 0.11111111],
[ 0.72222222, -0.22222222]])
In [6]: s=a.I
In [8]: a*s
Out[8]:
matrix([[ 1.00000000e+00, 3.33066907e-16],
[ 0.00000000e+00, 1.00000000e+00]])
以上就是本文介绍的全部内容,希望这些示例能对您的学习有所帮助,也欢迎大家继续支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









