numpy matrixとndarrayの違い

2480 ワード

バージョン:2.7.10
例:
A=np.array([[1,2],[3,4]])
B=np.array([[5,6],[7,8]])

C=np.mat([[1,2],[3,4]])
D=np.mat([[6,7],[8,9]])

1.ndarray任意の次元matで2次元のみ
#  
A=np.array([[[1,2]]])
#  
B = np.mat([[[1,2]]]) 

2.行列乗算
ndarray: 
    1. np.dot      (        )
        A.dot(B)=np.dot(A,B) 
          :
            array([[19, 22],
                  [43, 50]])
     2 A*B=np.multiply(A,B) (         )

       :
     array([[ 5, 12],
            [21, 32]])
matrix:

    1. C*D=np.dot(C,D)=C.dot(D)  (        )
      :
    matrix([[22, 25],
           [50, 57]])
    2. np=np.multiply(C,D)  (         )
      :
        matrix([[6, 7],
                [8, 9]])

3.matrixとndarrayの交換
1.matrix->ndarray  (  matrix   A    np.asarray()  )
    E=C.A
    E=np.asarray(C)
    #  E A      ,   A  E       

2.ndarray->matrix (  np.asmatrix()  )
    E=np.asmatrix(A)

4.matrixとarrayはobjectsの後に付けることができる.Tはその転置を得る.しかしmatrix objectsは後で追加することもできる.H fは共役行列を得る、加算.Iは逆行列を得る.
5.**演算子の役割も異なります.aはmatrixであるため、a**2はa*aを返し、行列の乗算に相当します.cはarrayで、c**2は相当して、cの中の元素は1つずつ平方を求めます
6.numpyのarrayとnumpyのmatrixの最大の違いは、帰約演算を行うとarrayの次元数が変化するが、matrixは常に2次元に保たれることである.例えば以下に平均値を求める演算
>>> C
matrix([[1, 2],
        [3, 4]])
>>> C.mean(1)
matrix([[1.5],
        [3.5]])
>>> A
array([[1, 2],
       [3, 4]])
>>> A.mean(1)
array([1.5, 3.5])
>>>