Skip to content

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() 配列の相関係数を返す