シェアする

  • このエントリーをはてなブックマークに追加

NumPy入門 サンプルプログラム集

スポンサーリンク
ビッグバナー(上2)

この記事では、Python言語とNumPyで数値計算処理を行う方法とサンプルコードについて入門者向けに使い方を解説します。

NumPyとは

NumPyは、Pythonの最も代表的な数値計算モジュールです。
(Python使うならインストールするのは当たり前なレベル)
多次元配列を使って、高速かつ少ないコード量で効率よく数値計算を行うことが出来ます。
(ベクトルや行列の計算も可能)

NumPyの導入

PythonにNumPyをインストールする方法は下記事で紹介しています。
NumPyのインストール (Windows、Linux、Ubuntu)
Try Jupyterの使い方:ブラウザ上の実行環境(環境構築が面倒くさい人向け)

Pythonの基本文法に関しては下記事で紹介しています。
Python入門 基本文法

NumPyのサンプルプログラム集

NumPyのサンプルプログラムを、項目別に以下にまとめました。

配列生成

【基本】
1次元配列:numpy.array([1, 0, 1])
2次元配列:numpy.array([[1, 2], [3, 4], [5, 6]])
範囲を指定:numpy.arange(1, 5)
範囲間隔を指定:numpy.arange(1, 5, 2)
範囲個数を指定:numpy.linspace(1, 2, 5)
配列を高速に生成:numpy.empty(m, n)
格子状配列の生成:numpy.meshgrid(x, y)
配列のコピー:ndarray.copy()
配列の次元数を変更:X.reshape(m, n)m×nの行列に変換
データ型を設定して配列生成:numpy.array([1, 0, 1], dtype=’float64′)
配列のデータ型を変換:ndarray.astype(‘float64’)
データ型の種類一覧
要素が全て1の配列生成:numpy.ones(m, n)
要素が全て0の配列生成:numpy.zeros(m, n)
単位行列の配列生成:numpy.eye(m)
三角行列の配列生成:numpy.tri(m, n)
同じ要素が繰り返す配列を生成:numpy.repeat
配列同士を縦に結合:numpy.vstack(A, B)
配列同士を横に結合:numpy.hstack(A, B)
要素同士の掛け算:A * B
要素同士の割り算:A / B
要素同士の割り算の余り:A % B
要素の累乗:A**2

【情報抽出】
配列の大きさ(行数列数):ndarray.shape
配列のデータ型を取得表示
配列の対角成分を取得:numpy.diag(A)

【三角関数】
正弦:numpy.sin(array)
余弦:numpy.cos(array)
正接:numpy.tan(array)

【その他の関数】
指数関数 :numpy.exp(array)
対数関数 :numpy.log(array)

方程式

連立方程式の解:numpy.linalg.solve(A, B)

データ探索

条件を満たす要素を抽出:ndarray[ numpy.where(条件式) ]
条件を満たす要素番号を抽出:numpy.where(条件式)

統計学

【基本】
合計:numpy.sum(X)
平均 :numpy.average(X)
分散 :numpy.var(X)
標準偏差 : numpy.std(X)
不偏分散 :
不偏標準偏差 :
偏差値 :
最大値 : numpy.amax(X)
最小値 : numpy.amin(X)
中央値 : numpy.median(X)
算術平均 : numpy.mean(X)
差分 : numpy.diff(X)
勾配 : numpy.gradient(X)

【確率分布】
正規分布 :numpy.random.normal(mu, sigma)
標準正規分布 :numpy.random.randn(n)
二項分布 :numpy.random.binomial(n, p)
ポアソン分布 :numpy.random.binomial(lam)
ベータ分布 :numpy.random.beta(a,b)
χ分布 :
ガンマ分布 :numpy.random.gamma(2,2,10)
F分布 :numpy.random.f(num, den, n)
ラプラス分布 :
対数正規分布 :
指数分布 :
ディリクレ分布 :
ガンベル分布 :
ロジスティック分布 :
幾何分布 :
超幾何分布 :

【点推定】
母平均の点推定 :
母分散の点推定 :
母比率の点推定 :

【区間推定】
母平均の区間推定(t分布) :SciPyも必要
母分散の区間推定(χ2分布) :

【検定】
t検定 :
F検定 :
カイ二乗検定 :

【回帰分析】
最小二乗法 :np.linalg.lstsq(A,Y)
重回帰分析 :np.linalg.lstsq(e.T, o)

線形代数

【ベクトル】
ベクトルの加減算 :a + b, a – b
ベクトルの内積 :numpy.dot(a, b)
ベクトルの外積 :numpy.cross(a, b)
ベクトルのノルム :numpy.linalg.norm(a)
単位ベクトル(正規化) :a/numpy.linalg.norm(a)

【行列】
行列の加減算 :A + B, A – B
行列の内積 :numpy.dot(A, B)
行列の外積 :numpy.cross(A, B)
階数(RANK) :numpy.rank(A)
行列式 :numpy.linalg.det(A)
転置行列 :numpy.array.T
逆行列 :numpy.linalg.inv(A)
擬似逆行列
固有値ベクトル :numpy.linalg.eig(A)
特異値分解SVD :numpy.linalg.svd(A)
QR分解 :numpy.linalg.qr(A)
コレスキー分解:numpy.linalg.cholesky(A)
回転行列

他言語の入門記事

Python入門
C言語入門
Java入門
C#入門
Javascript入門
PHP入門
VBAマクロ入門
Processing入門

スポンサーリンク
レクタングル(下2)
レクタングル(下2)