Python -- numpy マトリックス処理

作者: リン・ハーン小さな夢作成日: 2017-01-12 12:47:58,更新日:

Pythonの numpy マトリックス処理

注:NumPyはNumarrayの後継者であり,NumArrayを代替するために使用されている.SAGEはNumPyといくつかの他のツールを統合した数学ソフトウェアパッケージであり,Magma,Maple,Mathematica,Matlabなどのツールを代替することを目指している. 今日,私はネットでNumPyについての説明を探し,NumPyで逆行列を検索してみたのですが,中国語では何も見つかりませんでした. フォーラムでは,Pythonで逆行列を検索する方法について質問されました. 誰も答えませんでした. そこで,NumPyの公式ドキュメントを見つけました.

  • 1,マトリックス (matrix) オブジェクト

    マトリックス型はndarray型を継承し,したがってndarrayのすべてのデータ属性および方法を含んでいる.マトリックス型とndarray型には6つの重要な違いがある.これらの違いが,あなたがマトリックスオブジェクトを配列として操作するときに,予期せぬ結果をもたらす.

    • 1) マトリックスオブジェクトは,Matlab 式の文字列,つまりスペースで区切られた列で分数で区切られた文字列を使用して作成できます.

    • 2) マトリックスオブジェクトは常に二次元である.これは,例えば,m.ravel (m.ravel) の返却値が二次元であり,メンバーが選択した返却値も二次元である.したがって,配列の振る舞いは,配列とは本質的に異なる.

    • 3) マトリックス型の掛け算は,配列の掛け算を覆うもので,マトリックスによる掛け算を用います. マトリックスから返される値を受け取ったときに,これらの関数の意味を理解していることを確認してください. 特に,実は,関数asyarray (m) は,もしmマトリックスであるならば,一行列を返します.

    • 4) マトリックス型式は,前回の式を覆い,行列の式を使用している.この事実に基づいて,また,行列の式を参数として使用した場合にasanarray[...]を呼び出すことは,上記と同じであることを思い出してください.

    • 5) マトリックスデフォルトのarray_priorityは10.0である.したがって,ndarrayとマトリックスオブジェクトを混合した操作は常にマトリックスに戻す.

    • 6) マトリックスには,計算を容易にするいくつかの特有の属性があります.

      • (a).T -- 自分自身の位置に戻る

      • (b).H - 自身の共鳴の位置を戻す

      • ©.I -- 逆行列に戻る

      • (d).A -- 2次元配列の 1 つのビューが,自分のデータを返します. (何もコピーしていません)

        マトリックスクラスはndarrayのPythonサブクラスであり,この実装を学習して自分のndarrayサブクラスを構築することもできます. マトリックスオブジェクトは,他のマトリックスオブジェクト,文字,文字列,または他のndarrayの参数に変換できるものを使用して構築することもできます. さらにNumPyでは,matmatrixの別名です.

  • 例1: 文字列を使って行列を構成する

    import numpy as np
    a=np.mat('1 2 3; 4 5 3')
    print (a*a.T).I
    [[ 0.29239766 -0.13450292]
    [-0.13450292  0.08187135]]
    
  • 例2: ネストの配列を使って行列を構成する

    np.matrix([[  1.+0.j,   5.+0.j,  10.+0.j],
          [  1.+0.j,   3.+0.j,   0.+4.j]])
    
  • 例3: 配列を使って行列を作ります

    np.mat( np.random.rand(3,3) ).T
    np.matrix([[ 0.81541602,  0.73987459,  0.03509142],
          [ 0.14767449,  0.60539483,  0.05641679],
          [ 0.43257759,  0.628695  ,  0.47413553]])
    

    マトリックス ((data,dtype=None,copy=True)) 参数dataで送信されたデータをマトリックスに変換する.dtypeがNoneである場合,データ型はデータの内容によって決定される.copyがTrueである場合,データ内のデータをコピーする.そうでない場合は元のデータバッファーを使用する.データバッファリング領域が見つからない場合,もちろんデータのコピーも行われます.注意:マトリックスマトリックスは実際にはタイプです.候会调用matrix.new(matrix,data,dtype,copy) ともいった単語があります. マット 単にマトリックスの一つの別名である. アスマトリックス (dtype=None) 複製されていないデータを返します. これはマトリックス (=data, dtype, copy=False) と等しいです. Bmat (obj,ldict=None,gdict=None) 文字列,ネストの配列,または配列 (array) を使ってマトリックスを作成する.このコマンドは,他のオブジェクトからマトリックスを作成することを許可する.このコマンドでは,obj が文字列であるときのみ,ldict と gdict の参数を使用します.この参数がローカルとモジュールの辞書です.もしあなたがそれらを提供していない場合は,これらはシステムによって提供されます.

    A=np.mat('2 2; 2 2'); B=np.mat('1 1; 1 1');
    print(np.bmat('A B; B A'))
      [[2 2 1 1]
       [2 2 1 1]
       [1 1 2 2]
       [1 1 2 2]]
    

翻訳者:スー・フランク


もっと