美文网首页大数据 爬虫Python AI Sql扣丁学堂Python培训
扣丁学堂解析关于Python中的Numpy矩阵操作及示例代码

扣丁学堂解析关于Python中的Numpy矩阵操作及示例代码

作者: 994d14631d16 | 来源:发表于2018-08-13 15:04 被阅读2次

  今天扣丁学堂Python培训老师给大家介绍一下关于Python中的Numpy矩阵操作及示例代码,首先通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理矩阵,就需要使用第三方提供的相关的包。

  NumPy是一个非常优秀的提供矩阵操作的包。NumPy的主要目标,就是提供多维数组,从而实现矩阵操作,下面我们一起来看一下吧。

​  NumPy'smainobjectisthehomogeneousmultidimensionalarray.Itisatableofelements(usuallynumbers),allofthesametype,indexedbyatupleofpositiveintegers.InNumPydimensionsarecalledaxes.

  基本操作

  #######################################

  #创建矩阵

  #######################################

  fromnumpyimportarrayasmatrix,arange

  #创建矩阵

  a=arange(15).reshape(3,5)

  a

  #Out[10]:

  #array([[0.,0.,0.,0.,0.],

  #[0.,0.,0.,0.,0.],

  #[0.,0.,0.,0.,0.]])

  b=matrix([2,2])

  b

  #Out[33]:array([2,2])

  c=matrix([[1,2,3,4,5,6],[7,8,9,10,11,12]],dtype=int)

  c

  #Out[40]:

  #array([[1,2,3,4,5,6],

  #[7,8,9,10,11,12]])

  #######################################

  #创建特殊矩阵

  #######################################

  fromnumpyimportzeros,ones,empty

  z=zeros((3,4))

  z

  #Out[43]:

  #array([[0.,0.,0.,0.],

  #[0.,0.,0.,0.],

  #[0.,0.,0.,0.]])

  o=ones((3,4))

  o

  #Out[46]:

  #array([[1.,1.,1.,1.],

  #[1.,1.,1.,1.],

  #[1.,1.,1.,1.]])

  e=empty((3,4))

  e

  #Out[47]:

  #array([[0.,0.,0.,0.],

  #[0.,0.,0.,0.],

  #[0.,0.,0.,0.]])

  #######################################

  #矩阵数学运算

  #######################################

  fromnumpyimportarrayasmatrix,arange

  a=arange(9).reshape(3,3)

  a

  #Out[10]:

  #array([[0,1,2],

  #[3,4,5],

  #[6,7,8]])

  b=arange(3)

  b

  #Out[14]:array([0,1,2])

  a+b

  #Out[12]:

  #array([[0,2,4],

  #[3,5,7],

  #[6,8,10]])

  a-b

  #array([[0,0,0],

  #[3,3,3],

  #[6,6,6]])

  a*b

  #Out[11]:

  #array([[0,1,4],

  #[0,4,10],

  #[0,7,16]])

  a<5

  #Out[12]:

  #array([[True,True,True],

  #[True,True,False],

  #[False,False,False]])

  a**2

  #Out[13]:

  #array([[0,1,4],

  #[9,16,25],

  #[36,49,64]],dtype=int32)

  a+=3

  a

  #Out[17]:

  #array([[3,4,5],

  #[6,7,8],

  #[9,10,11]])

  #######################################

  #矩阵内置操作

  #######################################

  fromnumpyimportarrayasmatrix,arange

  a=arange(9).reshape(3,3)

  a

  #Out[10]:

  #array([[0,1,2],

  #[3,4,5],

  #[6,7,8]])

  a.max()

  #Out[23]:8

  a.min()

  #Out[24]:0

  a.sum()

  #Out[25]:36

  #######################################

  #矩阵索引、拆分、遍历

  #######################################

  fromnumpyimportarrayasmatrix,arange

  a=arange(25).reshape(5,5)

  a

  #Out[9]:

  #array([[0,1,2,3,4],

  #[5,6,7,8,9],

  #[10,11,12,13,14],

  #[15,16,17,18,19],

  #[20,21,22,23,24]])

  a[2,3]#取第3行第4列的元素

  #Out[3]:13

  a[0:3,3]#取第1到3行第4列的元素

  #Out[4]:array([3,8,13])

  a[:,2]#取所有第二列元素

  #Out[7]:array([2,7,12,17,22])

  a[0:3,:]#取第1到3行的所有列

  #Out[8]:

  #array([[0,1,2,3,4],

  #[5,6,7,8,9],

  #[10,11,12,13,14]])

  a[-1]#取最后一行

  #Out[10]:array([20,21,22,23,24])

  forrowina:#逐行迭代

  print(row)

  #[01234]

  #[56789]

  #[1011121314]

  #[1516171819]

  #[2021222324]

  forelementina.flat:#逐元素迭代,从左到右,从上到下

  print(element)

  #...#######################################

  #改变矩阵

  #######################################

  fromnumpyimportarrayasmatrix,arange

  b=arange(20).reshape(5,4)

  b

  #Out[18]:

  #array([[0,1,2,3],

  #[4,5,6,7],

  #[8,9,10,11],

  #[12,13,14,15],

  #[16,17,18,19]])

  b.ravel()

  #Out[16]:

  #array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,

  #17,18,19])

  b.reshape(4,5)

  #Out[17]:

  #array([[0,1,2,3,4],

  #[5,6,7,8,9],

  #[10,11,12,13,14],

  #[15,16,17,18,19]])

  b.T#reshape方法不改变原矩阵的值,所以需要使用.T来获取改变后的值

  #Out[19]:

  #array([[0,4,8,12,16],

  #[1,5,9,13,17],

  #[2,6,10,14,18],

  #[3,7,11,15,19]])

  #######################################

  #合并矩阵

  #######################################

  fromnumpyimportarrayasmatrix,newaxis

  importnumpyasnp

  d1=np.floor(10*np.random.random((2,2)))

  d2=np.floor(10*np.random.random((2,2)))

  d1

  #Out[7]:

  #array([[1.,0.],

  #[9.,7.]])

  d2

  #Out[9]:

  #array([[0.,0.],

  #[8.,9.]])

  np.vstack((d1,d2))#按列合并

  #Out[10]:

  #array([[1.,0.],

  #[9.,7.],

  #[0.,0.],

  #[8.,9.]])

  np.hstack((d1,d2))#按行合并

  #Out[11]:

  #array([[1.,0.,0.,0.],

  #[9.,7.,8.,9.]])

  np.column_stack((d1,d2))#按列合并

  #Out[13]:

  #array([[1.,0.,0.,0.],

  #[9.,7.,8.,9.]])

  c1=np.array([11,12])

  c2=np.array([21,22])

  np.column_stack((c1,c2))

  #Out[14]:

  #array([[11,21],

  #[12,22]])

  c1[:,newaxis]#添加一个“空”列

  #Out[18]:

  #array([[11],

  #[12]])

  np.hstack((c1,c2))

  #Out[27]:array([11,12,21,22])

  np.hstack((c1[:,newaxis],c2[:,newaxis]))

  #Out[28]:

  #array([[11,21],

  #[12,22]])

相关文章

网友评论

    本文标题:扣丁学堂解析关于Python中的Numpy矩阵操作及示例代码

    本文链接:https://www.haomeiwen.com/subject/sykubftx.html