NumPy 速查表
NumPy システムは、Python のオープンソース数値計算拡張機能です。このツールは、大規模な行列の保存と処理に使用でき、Python 自体の入れ子になったリスト構造(行列を表すためにも使用できます)よりもはるかに効率的です。
説明
arr を NumPy 配列オブジェクトとして使用します。
モジュールのインポート
import numpy as npインポート/エクスポート
| np.loadtxt(‘file.txt’) | テキストファイルから読み込む |
| np.genfromtxt(‘file.csv’,delimiter=’,’) | CSV ファイルから読み込む |
| np.savetxt(‘file.txt’,arr,delimiter=’ ‘) | テキストファイルに書き込む |
| np.savetxt(‘file.csv’,arr,delimiter=’,’) | CSV ファイルに書き込む |
配列の作成
| np.array([1,2,3]) | 1次元配列 |
| np.array([(1,2,3),(4,5,6)]) | 2次元配列 |
| np.zeros(3) | 長さ3のすべて 0 の1次元配列 |
| np.ones((3,4)) | すべての値が 1 の 3x4 配列 |
| np.eye(5) | 対角線上が 1 で他が 0 の 5x5 配列(単位行列) |
| np.linspace(0,100,6) | 0 から 100 まで等間隔に 6 つの値を配置した配列 |
| np.arange(0,10,3) | 0 から 10 未満まで、ステップ 3 の配列(例: [0,3,6,9]) |
| np.full((2,3),8) | すべての値が 8 の 2x3 配列 |
| np.random.rand(4,5) | 0 から 1 の間のランダムな浮動小数点の 4x5 配列 |
| np.random.rand(6,7)*100 | 0 から 100 の間のランダムな浮動小数点の 6x7 配列 |
| np.random.randint(5,size=(2,3)) | 0 から 4 の間のランダムな整数の 2x3 配列 |
属性の検査
| arr.size | 配列要素の総数を返す |
| arr.shape | 配列の次元を返す |
| arr.dtype | 配列内の要素の型を返す |
| arr.astype(dtype) | 配列要素の型を dtype に変換する |
| arr.tolist() | 配列をリストに変換する |
| np.info(np.eye) | np.eye のドキュメントを表示する |
コピー/ソート/リシェイプ
| np.copy(arr) | arr を新しいメモリにコピーする |
| arr.view(dtype) | arr 要素のビューを型 dtype で作成する |
| arr.sort() | arr をソートする |
| arr.sort(axis=0) | arr の特定の軸をソートする |
| two_d_arr.flatten() | 2次元配列を 1次元に平坦化する |
| arr.T | arr を転置する(行が列になり、その逆も同様) |
| arr.reshape(3,4) | データを変更せずに、arr を 3行 4列にリシェイプする |
| arr.resize((5,6)) | arr の形状を 5x6 に変更し、新しい値を 0 で埋める |
要素の追加/削除
| np.append(arr,values) | arr の末尾に値を追加する |
| np.insert(arr,2,values) | インデックス 2 の前に arr に値を挿入する |
| np.delete(arr,3,axis=0) | arr のインデックス 3 の行を削除する |
| np.delete(arr,4,axis=1) | arr のインデックス 4 の列を削除する |
結合/分割
| np.concatenate((arr1,arr2),axis=0) | arr2 を行として arr1 の末尾に追加する |
| np.concatenate((arr1,arr2),axis=1) | arr2 を列として arr1 の末尾に追加する |
| np.split(arr,3) | arr を 3 つのサブ配列に分割する |
| np.hsplit(arr,5) | 5 番目のインデックスで arr を水平に分割する |
インデックス作成/スライス/サブセット作成
| arr[5] | インデックス 5 の要素を返す |
| arr[2,5] | インデックス [2][5] の 2次元配列要素を返す |
| arr[1]=4 | インデックス 1 の配列要素に値 4 を代入する |
| arr[1,3]=10 | インデックス [1][3] の配列要素に値 10 を代入する |
| arr[0:3] | インデックス 0, 1, 2 の要素を返す(2次元配列の場合:行 0, 1, 2 を返す) |
| arr[0:3,4] | 行 0, 1, 2 の列 4 の要素を返す |
| arr[:2] | インデックス 0, 1 の要素を返す(2次元配列の場合:行 0, 1 を返す) |
| arr[:,1] | すべての行のインデックス 1 の要素を返す |
| arr<5 | ブール値を持つ配列を返す |
| (arr1<3) & (arr2>5) | ブール値を持つ配列を返す |
| ~arr | ブール配列を反転する |
| arr[arr<5] | 5 未満の配列要素を返す |
スカラー数学
| np.add(arr,1) | 各配列要素に 1 を加算する |
| np.subtract(arr,2) | 各配列要素から 2 を減算する |
| np.multiply(arr,3) | 各配列要素に 3 を乗算する |
| np.divide(arr,4) | 各配列要素を 4 で除算する(ゼロ除算の場合は np.nan を返す) |
| np.power(arr,5) | 各配列要素を 5 乗する |
ベクトル数学
| np.add(arr1,arr2) | arr1 に arr2 を要素ごとに加算する |
| np.subtract(arr1,arr2) | arr1 から arr2 を要素ごとに減算する |
| np.multiply(arr1,arr2) | arr1 に arr2 を要素ごとに乗算する |
| np.divide(arr1,arr2) | arr1 を arr2 で要素ごとに除算する |
| np.power(arr1,arr2) | arr1 を arr2 のべき乗に要素ごとに累乗する |
| np.array_equal(arr1,arr2) | 配列が同じ要素と形状を持っている場合に True を返す |
| np.sqrt(arr) | 配列内の各要素の平方根を計算する |
| np.sin(arr) | 配列内の各要素の正弦(サイン)を計算する |
| np.log(arr) | 配列内の各要素の自然対数を計算する |
| np.abs(arr) | 配列内の各要素の絶対値を計算する |
| np.ceil(arr) | 最も近い整数に切り上げる |
| np.floor(arr) | 最も近い整数に切り下げる |
| np.round(arr) | 最も近い整数に四捨五入する |
統計情報
| np.mean(arr,axis=0) | 特定の軸に沿った平均値を返す |
| arr.sum() | arr の合計を返す |
| arr.min() | arr の最小値を返す |
| arr.max(axis=0) | 特定の軸の最大値を返す |
| np.var(arr) | 配列の分散を返す |
| np.std(arr,axis=1) | 特定の軸の標準偏差を返す |
| arr.corrcoef() | 配列の相関係数を返す |