Pythonプログラミングの例と実践ガイド(目次)
【概要】Pythonを用いたデータ処理、時系列データ処理、機械学習、地図処理、ゲーム開発(Cocos2d/pygame)、OpenCV、Python拡張、環境構築、ネットワーク処理、ファイル処理、開発ツールなど、Flask、Dash など実践的なプログラミング例を網羅的に紹介する技術ガイドである。
【目次】
【外部リソース】
- Pythonの公式サイト: https://www.python.org
- 東京大学の「Pythonプログラミング入門」: https://utokyo-ipp.github.io/IPP_textbook.pdf
- ITmedia社の「Pythonチートシート」の記事: https://atmarkit.itmedia.co.jp/ait/articles/2004/20/news015.html
データ処理と分析
基本操作
- Pandasデータフレームの表示、形、次元数の確認(Python、pandas、Irisデータセットを使用)(Google Colaboratoryへのリンク有り)
- Pandasデータフレームの基本情報の表示、散布図、要約統計量、ヒストグラム(Python、pandas、matplotlib、seaborn、Irisデータセット、titanicデータセットを使用)(Google Colaboratoryへのリンク有り)
- ポケモンデータセット(CSVファイル)の読み込みと散布図(Python、pandas、matplotlib、seabornを使用)
集計と問い合わせ
- Pandasデータフレームの集計集約(グループごとの数え上げ、最大、最小、平均、中央値、和)(Python、pandas、matplotlib、seaborn、Irisデータセット、titanicデータセットを使用)(Google Colaboratoryへのリンク有り)
- SQL問い合わせ(Python、pandas、pandasqlを使用)
時系列データ処理
- Pythonで現在日時の取得、秒の切り捨て、日時の引き算
- Pythonで文字列を日時データに変換、時分秒の切り捨て、日時の比較、日時データの数え上げ
- Pythonで日時と流量のデータを扱う(作成中)
- 時系列データのプロット(Python、matplotlib、seabornを使用)(Google Colaboratoryへのリンク有り)
データ合成と数値近似
- CSVデータの合成(Python、random-csv-generatorを使用)
- 分散共分散行列からデータ生成(Python、Google Colaboratoryを使用)
- データの並びx、yを3本の線分で近似
外部データソース
別ページに記載している: オープンデータ、データファイル処理(Excelファイル、オープンデータのAPI)
機械学習
次元削減
- Irisデータセットの主成分分析プロット(Python、matplotlib、seabornを使用)
- CIFAR-10、CIFAR-100、MNIST、Fashion-MNISTデータセットの主成分分析プロット(Python、matplotlib、seabornを使用)
- Irisデータセットの次元削減(t-SNE、Isomap、Spectral Embedding、LLE、kernel approximation法)(Python、scikit-learnを使用)
クラスタリング
- k-means、Mean Shiftクラスタリング(Python、Google Colaboratoryを使用)
- VBGMM(Variational Bayesian Gaussian Mixture)を用いたクラスタリング(Python、scikit-learnを使用)
画像・映像処理(OpenCV)
OpenCVとPythonを使用した画像処理,ビデオ処理,および関連技術の解説リンク集.画像表示,色空間変換,ノイズ除去,2値化,輪郭抽出などの基本的な処理から,ステレオマッチング,顔検出,イメージスティッチングなどの高度な技術まで.
画像処理の基礎(OpenCV,Python使用)
- OpenCV で画像の表示(OpenCV,Python を使用)
- OpenCV でカラー画像を濃淡画像に変換(OpenCV,Python を使用)
- OpenCV で RGB から LAB への色空間の変換(OpenCV,Python を使用)
- OpenCV でカラーヒストグラム(Python を使用)
- OpenCV でヒストグラム平坦化(OpenCV,Python を使用)
- OpenCV で画像のノイズ除去(OpenCV,Python を使用)
- OpenCV で濃淡画像を使う(イメージヒストグラム,ヒストグラム平坦化,ノイズ除去,2値化,輪郭抽出)(OpenCV,Python を使用)
- OpenCV でOTSU の方法による 2値化(OpenCV,Python を使用)
- OpenCV で適応的 2値化(OpenCV,Python を使用)
- OpenCV でオープニングによる 2値画像からの小領域除去(OpenCV,Python を使用)
- 2値画像の領域から面積などを求める(OpenCV,Python を使用)
- OpenCV で Canny エッジ(OpenCV,Python を使用)
- OpenCV で HoG 特徴量(OpenCV,Python を使用)
- OpenCV で点や線の描画(OpenCV,Python を使用)
- OpenCV でマウスイベント(OpenCV,Python を使用)
前景背景分離とセグメンテーション(OpenCV,Python使用)
動画処理とカメラの活用(OpenCV,Python使用)
- OpenCV でビデオカメラ画像の表示(Python を使用)
- カメラ画像を枠なし表示(Python, OpenCV を使用)
- OpenCV でビデオカメラ画像の表示,ファイル書き出し,濃淡画像処理(Python を使用)
トピックス:カメラ画像の表示,カラー画像から濃淡画像への変換,動画ファイルの書き出し・ヒストグラム平坦化,OTSU の方法による2値化,輪郭抽出 - OpenCV でビデオのフレーム間差分,トラッキングビジョン,オプティカルフロー(Python を使用)
高度な応用(OpenCV,Python使用)
- OpenCV でステレオマッチング(OpenCV,Python を使用)
- カメラのステレオマッチング(OpenCV,Python を使用)
- OpenCV で顔検出(OpenCV,Python を使用)
- OpenCV でイメージ・スティッチング(OpenCV,Python を使用)
地図処理
- マーカー付きのOpenStreetMap地図(Python + leaflet.js + foliumを使用)
キーワード: OpenStreetMap、Python、leaflet.js、folium、タイル地図、マーカー
- マーカーとイメージポップアップ付きのOpenStreetMap地図(Python + leaflet.js + foliumを使用)
- 緯度経度などのデータファイルから、マーカーとイメージポップアップ付きのOpenStreetMap地図プログラムを生成
- foliummapod
Webアプリケーション開発
Flask
- Flask のインストール, 動作確認
Windows と Ubuntu 環境での Flask のインストールと動作確認の手順を説明している.Python の準備,Flask のインストール,基本的な Web サーバの動作確認,ルーティングと変数の機能確認までを段階的に解説している.
- Flaskのインストール、Webサーバを動かしてみる
Dash
- Dash のインストールと動作確認
DashはPythonで作られたWebアプリケーションフレームワークで,インタラクティブなグラフや表の表示が可能である.WindowsとUbuntuでのインストール手順,基本的な使用方法,データの定期更新機能の実装方法を説明している.
- Python のデータフレームを Web ページに表示(Dash を使用)
周辺ツール・連携
ゲーム・GUI開発
環境構築
Cocos2d
Pythonでキーボード、マウス、線や四角形描画を行う。
WindowsでのCocos2d、pygame、pygletのインストールは別ページ »で説明している。
- Cocos2dを使ってみる
- Cocos2dのイベント、キーコード、イベントハンドラ、アクション
- Cocos2dで、オブジェクトの属性を乱数で変化させる
- Cocos2dで動きのシミュレーション
- Cocos2dサンプルプログラム
- Cocos2dを用いたスプライト表示