python/numpy中数组array和矩阵matrix的区别

425 阅读2分钟

0/ 矩阵与数组的区别

     在numpy中,np.array(),实际上是ndarray,表示数组,数组可以是一维的,可以是二维的,也可以是多维的。
     在numpy中,np.mat()表示矩阵,矩阵只能是二维的,即行和列。
     所以np.matrix是np.array的一种特例,因而它继承了array的所有函数,同时还特别为matrix开发了自己新的函数。
     简言之,array可以使用的函数,matrix都可以使用,而matrix可以使用的函数array未必可以使用。

1/ 如何生成数组和矩阵

     import numpy as np
     <1>生成一维数组
             np.array([1,2,3,4])
             [1 2 3 4]
     <2>生成二维数组
             np.array([[1,2,3,4],[1,2,3,4]])
             [[1 2 3 4]
              [1 2 3 4]]

     <3>生成三维数组
             data_array = np.zeros((3,5,6),dtype=np.int)
             [
             [[0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]]
            
             [[0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]]
            
             [[0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]
              [0 0 0 0 0 0]]
              ]
              
     <4>生2维矩阵
             np.mat([[1,2,3,4]])
             [[1 2 3 4]]  # 二维矩阵,一行4列

1/矩阵之间的运算

     相同结构(同行同列)的矩阵之间可以进行加减,对应元素之间相加减
     不同结构的矩阵之间不能进行加减
     一个数据乘以一个矩阵,则是该数据乘以该矩阵中的每一个数据,不改变矩阵的行列结构
     
     矩阵之间的乘法:
         一个矩阵的列数必须等于另一个矩阵的行数,这样2个矩阵才能相乘,即(m,n) * (n,l) = (m,l)
         
     矩阵的结果也是矩阵

3/ 矩阵之间的乘法,按照矩阵的规则

     第一行*第一列,结果是第一行第一列的元素,第一行*第二列,结果是第一行第二列的元素,依此类推

4/ 数组之间的乘法