NumPy入門 サンプル集

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

NumPyとは

NumPyとは、Pythonで数値計算をするならば必須といえる数値計算モジュールです。
ndarrayと呼ばれる配列オブジェクトを使って、少ないコード量で効率よく高速に数値計算を行うことが出来ます。

主な特徴

NumPyの主な特徴は以下の通りです。

特徴
配列の「要素数」「型」が固定(C言語の配列型に近い)
処理がリスト型と比べて非常に高速(APIがC言語やFortranで実装されているため)

【参考記事】【NumPy】主な特徴(メリット・デメリット)

環境構築

PythonとNumPyの環境構築を以下に整理しました。

項目
Python環境構築 Windows環境・・・Python環境を構築する方法
②Linux環境(Ubuntu ■Rasbian)・・・標準搭載されているので環境構築不要
③Mac環境・・・(´∀`) <・・・
NumPyの導入 NumPyのインストール (Windows、Linux、Ubuntu)※Pythonパッケージは不要

WinPythonなどのPythonパッケージを使えば、Python+NumPy環境を一括で導入できるので楽です。
環境構築がうまく行かない場合は、ブラウザ上ですぐに使える実行環境「Try Jupyter」や「ideone.com」もあります。(NumPyも動作)

NumPy配列の基本操作

NumPy配列の基本操作(ndarray)についてまとめました。
入門者は「【NumPy】基礎的な扱い方」から読んでいただければ良いかと思います。
尚、以後、本ページで「配列」という表記はndarray(NumPyの配列)を指すこととします。

項目
はじめに 【NumPy】基礎的な扱い方バージョンの表示
配列生成① 1次元配列2次元配列空配列(高速)全要素1①,全要素1②全要素0①全要素0②単位行列三角行列繰り返し ■対数スケール ■格子状配列データ型の指定データ型の種類
配列生成②(乱数) 一様乱数(整数)①一様乱数(整数)②正規分布標準正規分布二項分布ポアソン分布ベータ分布χ分布ガンマ分布F分布 ■ラプラス分布 ■対数正規分布 ■指数分布 ■ディリクレ分布 ■ガンベル分布 ■ロジスティック分布 ■幾何分布 ■超幾何分布
範囲生成 範囲指定間隔指定個数指定格子状配列生成
参照・代入 1次元配列への代入・参照2次元配列への参照・代入
配列操作 配列コピー次元数を変更配列のデータ型を変換書込禁止モード ■シャッフル ■ソート(昇順・降順)要素の位置をずらす
配列結合 縦に結合横に結合
配列分割 縦・横に分割
算術演算 要素同士の掛け算要素同士の割り算要素同士の割り算の余り要素の累乗
データ抽出 行の抽出列の抽出条件を満たす要素を抽出ランダム抽出①ランダム抽出②
インデックス抽出 条件を満たす要素のインデックス非0要素のインデックス最大値・最小値要素のインデックス
情報抽出 行・列数データ型対角成分0の要素数非0要素の数任意の値の要素数バイト数(全体)バイト数(1要素)次元数
配列の比較 完全一致
応用 乱数の出現率を偏らせる
参考 【Numba】NumPy+for文の高速化

グラフ描画、ファイル処理、数値計算、線形代数、信号処理

NumPyで計算した結果はMatplotlibなどのライブラリでグラフ化できます。

グラフ描画(Matplotlib)
ヒストグラム 乱数のヒストグラム
まとめ Matplotlib入門 サンプル集
ファイル処理
読込 CSV①CSV②
書込 TXTCSV
数値計算
連立方程式 連立方程式の解
三角関数 正弦余弦正接
数学関数 指数関数対数関数対数関数(底10)対数関数(底2)円周率ネイピア数eステップ関数ランプ関数シグモイド関数
統計量 合計平均分散標準偏差不偏分散不偏標準偏差偏差値最大値最小値中央値算術平均差分勾配
確率分布 正規分布標準正規分布二項分布ポアソン分布ベータ分布 ■χ分布 ■ガンマ分布F分布 ■ラプラス分布 ■対数正規分布 ■指数分布 ■ディリクレ分布 ■ガンベル分布 ■ロジスティック分布 ■幾何分布 ■超幾何分布
点推定 母平均の点推定母分散の点推定 ■母比率の点推定
区間推定 母平均の区間推定(t分布) ■母分散の区間推定(χ2分布)
検定 ■t検定 ■F検定 ■カイ二乗検定
回帰分析 最小二乗法重回帰分析直線近似曲線近似株価予測
主成分分析 主成分分析(寄与率の計算)
座標変換 直交座標→極座標
線形代数
ベクトル 加減算内積外積ノルム単位ベクトル(正規化)
行列 加減算内積外積階数(RANK)行列式転置行列固有値ベクトル
逆行列 逆行列擬似逆行列
行列分解 特異値分解SVDQR分解コレスキー分解回転行列
信号処理
フーリエ変換 高速フーリエ変換高速逆フーリエ変換スペクトル解析ローパスフィルタ(ノイズ除去)ハイパスフィルタ(ノイズ抽出)
応用例 画像のスペクトル強度解析

応用例・・・株価分析、ロボット工学

金融工学・経済
基礎 現在価値→将来価値
株価分析 移動平均線
ロボット工学
順運動学 2リンク
逆運動学 ■2リンク(幾何学) ■2リンク(収束演算①)2リンク(収束演算②)
数学 回転行列で座標変換k1sinθ+k2cosθ=k3の解
まとめ Pythonでロボットシミュレーション
参考文献
参考文献 NumPy公式ドキュメントNumPy入門 (rest term様)python/numpy(朱鷺の杜Wiki様)
まとめ NumPyでよく使う機能一覧
便利 データ処理の題材に使えるCSVファイル一覧 保存GC・DC
周波数解析 フーリエ変換
多変量解析 回帰分析①回帰分析②重回帰+MA①重回帰+MA②単回帰+MA
jsmと連携 GC・DC
まとめ Pythonで株価予測・分析
ロボット工学
順運動学 2リンク
逆運動学 ■2リンク(幾何学) ■2リンク(収束演算①)2リンク(収束演算②)
数学 回転行列で座標変換k1sinθ+k2cosθ=k3の解
まとめ Pythonでロボットシミュレーション
参考文献
参考文献 NumPy公式ドキュメントNumPy入門 (rest term様)python/numpy(朱鷺の杜Wiki様)
まとめ NumPyでよく使う機能一覧
便利 データ処理の題材に使えるCSVファイル一覧
関連記事