Python - numpy 行列演算

作成日:: 2017-01-12 12:47:58, 更新日::
comments   0
hits   4036

Python - numpy 行列演算

注:NumPyはNumarrayの後継者であり,NumArrayの代わりとして使用されている.SAGEは,NumPyと他のいくつかのツールに基づいて統合された数学ソフトウェアパッケージであり,Magma,Maple,Mathematica,Matlabなどのツールを置き換えることを目指しています. 今日はNumPyについてネットで検索して,NumPyで逆行列を検索してみようと思ったのですが,中国語の情報は見つかりませんでした. フォーラムで,Pythonで逆行列を検索する方法を尋ねても,誰も答えませんでした. そこでNumPyの公式文書を見つけました. その中の小さなセクションは,マトリックスオブジェクトの紹介でした.

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

matrix型はndarray型に継承され,したがってndarrayのすべてのデータ属性と方法を含んでいる. matrix型とndarray型には6つの重要な違いがあり,arraysがMatrixオブジェクトとして動作するときに,これらの違いが予期せぬ結果をもたらす.

    1. Matrix オブジェクトは,空白で区切られた列,分数で区切られた文字列であるMatlab スタイルの文字列を使用して作成できます.
    1. マトリックスオブジェクトは常に二次元である。これは,m.ravel (() の返される値が二次元であり,メンバーが選択した返される値も二次元であり,したがって序列の振る舞いはarrayとは本質的に異なる。
    1. マトリックス型の掛け算は,arrayの掛け算を覆い,マトリックスによる掛け算操作を使用する.マトリックスで返される値を受信するときに,これらの関数の意味を理解していることを確認してください.特に,実際に関数asanyarray(m) は,m がマトリックスである場合,マトリックスを返します.
    1. マトリックス型の演算は,以前の演算を覆い,マトリックスによるを用いることもある.この事実に基づいて,マトリックスによるを参数として用いるとasanarray (((…) と呼び出すと,上記と同じことを思い出してください.
    1. マトリックスのデフォルトのarray_priorityは10.0であるため,ndarrayとmatrixオブジェクトの混合操作は常にマトリックスを返します.
    1. マトリックスには,計算を容易にするいくつかの特有の属性があります.
    • (a) .T – 変位に戻る

    • (b) .H – 自身の共振転移に戻る

    • © .I – 逆行列を返します

    • (d) .A – 2次元数列の1つの視点を返します.

    Matrix クラスは,ndarray の Python 子クラスであり,この実装を学習して,自分のndarray 子クラスを構築することもできます.Matrix オブジェクトは,他の Matrix オブジェクト,文字列,または,ndarray のパラメータに変換できる他の要素を使用して構築することもできます.また,NumPy で,matはmatrixの別名です.

  • 例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]])

Matrix( data, dtype=None, copy=True ) 参数データで入力されたデータはマトリックスに変換されます。 dtype がNone であれば,データ型はデータの内容によって決定されます。 copy がTrue であれば,data内のデータがコピーされ,そうでなければ元のデータバッファが使用されます。 データのバッファゾーンが見つからない場合は,もちろんデータのコピーも行われます。 注意:マトリックスマトリックスは実際にはタイプですので,インスタンスを構成するときに matrix.new (((matrix, data, dtype, copy) を呼び出します。 Mat マトリックスの別名だ Asmatrix(data, dtype=None) 複製されていないデータを返します. matrix ((data, dtype, copy=False) に等しい. Bmat(obj, ldict=None, gdict=None) 文字列,組み込みの序列,または数列 ([array]) を使ってマトリックスを作成する。このコマンドは,他のオブジェクトからマトリックスを作成することを許可する。この中で,objが文字列である場合にのみ,パラメータldictとgdictが使用されます.この2つのパラメータは,局所とモジュールの辞書です。もしそれらを提供しなければ,これらはシステムによって提供されます。

  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]]

投稿者:su frank 投稿日: