SciPy基礎機能

11529 ワード


SciPy紹介SciPyインストールSciPy基礎機能SciPy特殊関数SciPy k平均クラスタリングSciPy定数SciPy fftpack(フーリエ変換)SciPyポイントSciPy補間SciPy入出力SciPy線形代数SciPy画像処理SciPy最適化SciPy信号処理SciPy統計デフォルトでは、すべてのNumPy関数はSciPy(ネーミングスペース)で使用できます.SciPyをインポートする場合、NumPy関数を明示的にインポートする必要はありません.NumPyの主なオブジェクトはn次多次元配列ndarrayであり,SciPyはndarray配列の上に構築され,ndarrayは単一データ型を格納する多次元配列である.NumPyでは次元を軸,座標軸の数をランクと呼ぶ.
通常,線形代数は主に行列演算を扱うが,次に,NumPyにおけるベクトル/配列と行列の基本機能を復習する.
NumPy ndarray配列
ndarrayはNumPyの中で最も重要なクラスです.
標準のPythonリスト(list)では、要素はオブジェクトです.たとえば、L=[1,2,3]では、3つのポインタと3つの整数オブジェクトが必要であり、数値演算にはリソースが浪費されます.
これとは異なり、ndarrayの要素は元のデータとして直接格納され、要素のタイプはndarrayオブジェクトの属性dtypeによって記述されます.
ndarray配列の要素がインデックスまたはスライスで返されると、dtypeに従って元のデータからPythonオブジェクトに変換され、外部で使用されます.

Pythonクラス配列オブジェクトをNumPy配列に変換
import numpy as np
list = [1,2,3,4]
arr = np.array(list)
print (arr)
print (type(arr))

しゅつりょく
[1 2 3 4]
<class 'numpy.ndarray'>

NumPy配列の作成
NumPyでは、以下に説明する組み込み関数を使用してndarrray配列を作成できます.
zeros() zeros()関数は配列を作成し、配列要素の値を0に初期化し、配列形状とデータ型を指定します.
import numpy as np
print (np.zeros((2, 3)))

しゅつりょく
[[0. 0. 0.]
 [0. 0. 0.]]

ones() ones()関数は配列を作成し、配列要素の値を1に初期化し、配列形状とデータ型を指定します.例
import numpy as np
print (np.ones((2, 3)))

しゅつりょく
[[1. 1. 1.]
 [1. 1. 1.]]

arange() arange()関数は増分配列を作成します.
import numpy as np
print (np.arange(7))

しゅつりょく
[0 1 2 3 4 5 6]

配列のデータ型
データ型オブジェクトdtypeは、配列内の要素データ型を記述するオブジェクトです.
import numpy as np
arr = np.arange(2, 10, dtype = np.float)
print (arr)
print ("       :", arr.dtype)

しゅつりょく
[ 2. 3. 4. 5. 6. 7. 8. 9.]
       : float64

linspace() linspace()関数は、指定した区間内で均一に分布する値を含む配列を作成します.
import numpy as np
print (np.linspace(1., 4., 6))

しゅつりょく
[1.  1.6 2.2 2.8 3.4 4. ]

マトリックス
行列は特殊な2次元配列で、*(行列乗算)や**(行列べき乗)などの特殊な演算子があります.
import numpy as np
print (np.matrix('1 2; 3 4'))

しゅつりょく
[[1 2]
 [3 4]]

マトリックスてんい
行列の行列を交換して得られる新しい行列を,転置行列と呼ぶ.
import numpy as np
mat = np.matrix('1 2; 3 4')
mat.T

しゅつりょく
matrix([[1, 3],
        [2, 4]])

マトリックスの共役転置
共役とは,行列の各要素が共役(複素の実部は変わらず,虚部は負)をとることである.
共役転置とは、まず共役を取り、それから転置を取ることである.
import numpy as np
mat = np.matrix('1 2; 3 4')
print (mat.H)

しゅつりょく
matrix([[1, 3],
        [2, 4]])

たんいマトリクス
単位行列は行列の乗算において、数の乗算の1のように特殊な役割を果たす.単位行列は個行列であり,左上から右下にかけての対角線(主対角線と呼ぶ)上の要素はいずれも1であり,それ以外はすべて0である.

単位行列を作成するには、次の手順に従います.
import numpy.matlib 
import numpy as np 
print (np.matlib.identity(5))

しゅつりょく
[[1. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0.]
 [0. 0. 1. 0. 0.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]

ぎゃくマトリクス
逆行列の数学的定義:行列Mおよび行列Nが存在し、M*N=行列I(Identify Matrix単位行列)の場合、行列Mと行列Nは互いに逆行列である.

行列の逆行列を求めます:
import numpy as np
mat = np.matrix('1 2; 3 4')
mat2 = mat.I
print(mat2)

しゅつりょく
[[-2.   1. ]
 [ 1.5 -0.5]]