Python numpy中矩阵的基本用法汇总
2019-09-13 11:52:28 来源:易采站长站 作者:于丽
3.6,矩阵的分隔和合并 (vstack hstack)
矩阵的分割,同列表和数组的分割一致
from numpy import * ''' 矩阵的分隔,同列表和数组的分隔一致''' a = mat(ones((3,3))) print(a) # 分隔出第二行以后的行和第二列以后的列的所有元素 b = a[1:,1:] print(b) ''' [[1. 1. 1.] [1. 1. 1.] [1. 1. 1.]] [[1. 1.] [1. 1.]] '''
矩阵的合并
from numpy import * a = mat(ones((2,2))) print(a) b = mat(eye(2)) print(b) # 按照列和并,即增加行数 c = vstack((a,b)) print(c) # 按照行合并,即行数不变,扩展列数 d = hstack((a,b)) print(d) ''' [[1. 1.] [1. 1.]] [[1. 0.] [0. 1.]] [[1. 1.] [1. 1.] [1. 0.] [0. 1.]] [[1. 1. 1. 0.] [1. 1. 0. 1.]] '''
3.7,矩阵,列表,数组的转换
列表可以修改,并且列表中元素可以使不同类型的数据,如下:
1 li =[[1],'hello',3]
numpy中数组,同一个数组中所有元素必须为同一个类型,有几个常见的属性:
from numpy import * a=array([[2],[1]]) print(a ) dimension=a.ndim m,n=a.shape # 元素总个数 number=a.size print(number) # 2 # 元素的类型 str=a.dtype print(str) # int32
numpy中的矩阵也有与数组常见的几个属性,他们之间的转换如下:
from numpy import * # 列表 a1 = [[1,2],[3,2],[5,2]] # 将列表转化为二维数组 a2 = array(a1) # 将列表转化成矩阵 a3 = mat(a1) # 将矩阵转化成数组 a4 = array(a3) # 将矩阵转换成列表 a5=a3.tolist() # 将数组转换成列表 a6=a2.tolist() print(type(a1)) print(type(a2)) print(type(a3)) print(type(a4)) print(type(a5)) print(type(a6)) ''' <class 'list'> <class 'numpy.ndarray'> <class 'numpy.matrixlib.defmatrix.matrix'> <class 'numpy.ndarray'> <class 'list'> <class 'list'> '''
注意:当列表为一维的时候,将他们转换成数组和矩阵后,再通过tolist()转换成列表是不相同的,这里需要做一些小小的修改,如下:
from numpy import * a1=[1,2,3] print(a1) print(type(a1)) a2=array(a1) print(a2) print(type(a2)) a3=mat(a1) print(a3) print(type(a3)) ''' [1, 2, 3] <class 'list'> [1 2 3] <class 'numpy.ndarray'> [[1 2 3]] <class 'numpy.matrixlib.defmatrix.matrix'> ''' a4=a2.tolist() print(a4) print(type(a4)) a5=a3.tolist() print(a5) print(type(a5)) ''' [1, 2, 3] <class 'list'> [[1, 2, 3]] <class 'list'> ''' a6=(a4 == a5) print(a6) print(type(a6)) a7=(a4 is a5[0]) print(a7) print(type(a7)) ''' False <class 'bool'> False <class 'bool'> '''
矩阵转换成数值,存在以下一种情况:
from numpy import * dataMat=mat([1]) print(dataMat) print(type(dataMat)) ''' [[1]] <class 'numpy.matrixlib.defmatrix.matrix'> ''' # 这个时候获取的就是矩阵的元素的数值,而不再是矩阵的类型 val=dataMat[0,0] print(val) print(type(val)) ''' 1 <class 'numpy.int32'> '''
暂时禁止评论













闽公网安备 35020302000061号