【Python Tech】プログラミングガイド

本サイトで紹介している記事をまとめたPythonのプログラミングガイドページです。
Pythonの文法に関わる内容ももちろん、各種ライブラリ、機械学習・ディープラーニングを含むデータ分析、GUI開発、生成AIなどについて幅広く紹介しています。
以下の目次から気になる項目を選択していただければ該当ページへのリンクを確認することができます。
入門編
全般
Pythonの命名規則やコーディングの参考になるような事項を紹介します。
環境構築
Pythonの環境構築に関わる事項を紹介します。
【インストール】
【VSCode (Visual Studio Code)】
- VSCodeのインストール方法(Windows)
- VSCodeの表示言語を日本語に設定する方法
- VSCodeでPython開発環境を準備する方法
- VSCodeの「Python Docstring Generator」拡張機能でdocstringを自動生成する
- VSCodeでGitのrebaseを実施する方法
【Pycharm】
【Anaconda】
【Git】バージョン管理ソフトウェア
【Docker】コンテナ型仮想環境
データ構造
Pythonでは、様々なデータ構造を使用してプログラミングを行います。基本的なデータ構造の使用方法について紹介します。
文字列
日付・時刻
リスト (list)
タプル (tuple)
辞書 (dict)
集合 (set)
内包表記
制御
Pythonの制御では、for、while、if等を使用して動作を制御します。基本の使用方法を紹介します。
関数
Pythonにおける関数の基本的な使い方について紹介します。
クラス
Pythonにおけるクラスの基本的な使い方について紹介します。
入出力
Pythonにおける入出力の基本を紹介します。
応用編
テスト
Python でテストをする際に有用なテスト関連モジュールについて紹介します。
対話型インタプリタ (IPython)
Pythonの拡張された対話型インタプリタについて紹介します。
Collectionsモジュール
Pythonでもよく使われるCollectionモジュールの各種使い方について紹介します。
データ圧縮/解凍
Python でデータ圧縮/解凍をするためのモジュールの使用方法を紹介します。
正規表現
Pythonで正規表現を扱うためのモジュールの使用方法を紹介します。
列挙型
Pythonで列挙型を扱うためのモジュールの使用方法を紹介します。
ログ管理
Pythonでログ管理するためのモジュールの使用方法を紹介します。
フォルダ監視
Pythonでフォルダ監視をするためのモジュールの使用方法について紹介します。
Pythonパッケージ作成と配布
Pythonパッケージ作成や配布に関わるライブラリの司法方法を紹介します。
外部プログラム連携 (DLL)
Pythonで外部プログラムと連携する方法を紹介します。
データベース
Pythonでデータベース処理する際の各種モジュールの使用方法を紹介します。
【Oracle】
【PostgreSQL】
【MySQL】
【SQLite】
【SQLAlchemy】Pythonのクロスデータベースライブラリ
【MongoDB】ドキュメント指向データベース
【neo4j】グラフデータベース
ネットワーク
Pythonでネットワーク関連の処理をするための関連モジュールの使用方法を紹介します。
暗号化・復号化
Pythonでの暗号化・復号化に関連するモジュールの使用方法について紹介します。
並行・並列処理
Pythonで並行・並列処理を実行するための関連モジュールの使用方法を紹介します。
【全般】
【マルチスレッド: threading】
【マルチプロセス: multiprocessing】
【並列処理: concurrent.futures】
非同期プログラミング
Pythonの非同期プログラミングに関する内容について紹介します。
関数型プログラミング
Pythonはマルチパラダイムのプログラミング言語で様々なプログラミングスタイルをサポートしています。その中でも関数型プログラミングに関する内容について紹介します。
データ分析
全般
データ分析の全般にかかわるような概念などについて紹介します。
NumPy
Pythonで機械学習というと必ずあがるモジュールが「NumPy」です。NumPyは大量のデータに対して高速にかつ効率的に数値計算を行うことができます。NumPyの各種使い方について紹介します。
- 配列(ndarray)の作成方法 ~array, zeros, ones, full, arange, random, randint, randn, normal, linspace, eye, empty~
- 配列(ndarray)の属性情報の確認方法 ~ dtype, size, shape, ndim, itemsize, nbytes ~
- 配列(ndarray)の要素を参照する方法
- 配列(ndarray)の形状を変更する方法 ~ reshape ~
- 配列(ndarray)の結合方法 ~ concatenate, vstack, hstack ~
- 配列(ndarray)の分割方法 ~ split, vsplit, hsplit ~
- 配列(ndarray)をソートする方法 ~ sort, argsort ~
- numpyのndarrayとPython組み込み型のlistとの違い ~なぜ分析でndarrayを使うのか~
- 「配列(ndarray)のスライス」と「Python組み込みのlistのスライス」の違い
- ユニバーサル関数(ufuncs)を用いた配列(ndarray)の計算
- 集約関数を用いた計算 ~ sum, prod, mean, median, std, var, max, min, argmax, argmin, any, all ~
- ブロードキャスト(broadcast)の基本
- ファンシーインデックス(Fancy Indexing)の基本
pandas
Pythonでの機械学習でNumPyと並んであがるモジュールが「pandas」です。pandasのデータ構造は、分析前の前処理など各種データの操作が容易にできるため分析には必須のモジュールです。pandasの各種使い方について紹介します。
- Seriesの作成方法
- Seriesのデータ選択方法
- DataFrameの作成方法
- DataFrameのデータ選択方法
- 欠損値(NaN、None)の扱いと処理方法 ~ isnull, notnull, dropna, fillna ~
- DataFrameを結合する方法 ~ merge, join ~
- DataFrameをgroupbyでグループ化して集約する方法
- DataFrameのpovot_tableでピボットテーブルを扱う
- DataFrameによるcsvファイルの入出力 ~read_csv, to_csv~
- Excelファイルを読み込む方法 ~ read_excel ~
- DataFrameで日付・時間の列を処理する方法 ~to_datetime~
- Indexの基本
- Parquetファイルの入出力
Matplotlib
データ分析の際には結果をグラフなどで可視化するといったことをよく行います。Pythonで簡単にグラフ作成などの可視化ができるモジュールが「matplotlib」です。matplotlibの各種使い方について紹介します。
scikit-learn
Pythonでの機械学習ライブラリとしてよく知られているのが scikit-learn です。scikit-learnの各種使い方について紹介します。
- LinearRegressionで線形回帰をする方法
- 線形回帰の正則化手法 ~ラッソ(Lasso)回帰、リッジ(Ridge)回帰、ElasticNet回帰~
- LogisticRegressionでロジスティック回帰をする方法
- k近傍法(k-NN)を用いたデータ分類方法
- サポートベクターマシン(SVM)の使用方法
- PCAで主成分分析をする方法
- KernelPCAでカーネル主成分分析をする方法
- 決定木(DecisionTree)とランダムフォレスト(RandomForest)の使用方法
- KMeansでk-means法によるクラスタリングをする方法
- DBSCANでクラスタリングする方法
- グリッドサーチとランダムサーチでハイパーパラメータをチューニングする方法(GridSearchCV, RandomizedSearchCV)
TensorFlow/Keras
ディープラーニング(深層学習)ライブラリとして有名な TensorFlow / Keras の各種使い方や各種ディープラーニング手法の実装、関連する数学の概念の基本について紹介します。
【TensorFlowやKerasの基本】
- 深層学習ライブラリ TensorFlow、Kerasの概要
- Keras APIでモデルを構築する色々な方法と違い(Sequential API, Functional API, Subclassing API)
- Tensor(テンソル)の作成方法
- Tensor情報の確認方法
- Tensorの要素を参照する方法
- Tensorのシャッフル方法
- Tensorの型変換方法
- Tensorの形状を変更する方法
- Tensorの軸を拡張する方法
- Tensorを転置する方法
- Tensorを用いた数値計算
- Tensorの行列積を計算する方法
- 集約関数を用いたTensorの計算
- Tensorの形状でサイズ1の次元を削除する方法
- one-hotエンコーディングの方法
- GradientTapeの自動微分による勾配の計算方法
【各種ディープラーニング手法の実装】
- CNN(畳み込みニューラルネットワーク)による画像分類の基本
- RNN(リカレントニューラルネットワーク)による時系列データ予測の基本
- 訓練済みモデルVGG16での転移学習
- 自己符号化器(AutoEncoder)の実装
- 変分自己符号化器(VAE:VariationalAutoEncoder)の実装
- DCGAN(Deep Convolutional GAN)の実装
【その他 関連情報(数学など)】
PySpark
大規模なデータを処理するためのオープンソースの分散処理フレームワークであるApache SparkのPython用APIである「PySpark」について紹介します。
MLflow
機械学習のライフサイクル管理をするための「MLflow」についてを紹介します。
Jupyter Notebook
ブラウザ上でPythonプログラムを簡単に編集、実行できる環境である「Jupyter Notebook」のインストールや使い方について紹介します。
NVIDIA CUDA/cuDNN
NVIDIAのGPUを使った並列計算のための環境であるCUDA Toolkitや関連するディープラーニングライブラリのcuDNN関連についてインストール方法などを紹介します。
因果推論
因果推論(Causal Inference)に関わる技術的内容やパッケージについて紹介します。
自然言語処理
自然言語処理における形態素解析や構文解析に関わるモジュールの使用方法について紹介します。
画像処理
OpenCV
OpenCVは、コンピュータビジョンのライブラリです。OpenCV の Python バインドとしては cv2 モジュールが提供されています。PythonからOpenCV を使用する方法について紹介します。
GUI開発
PyQt
PyQtは、クロスプラットフォームに対応可能なGUIツールキットであり、Windows、Linux、Mac等様々なOSで動作可能なGUIプログラムを作成することができます。PyQtの各種使い方について紹介します。
その他
生成AI
ChatGPT
ChatGPTは、OpenAIが開発したAIチャットサービスです。概要や関連するツールの使い方などを紹介します。
Stable Diffution
Stable Diffusionは、「入力したテキストの内容をもとに画像生成が可能な生成AI(generative ai)の一種のソフトウェアです。
OpenAI API
OpenAIが提供しているAPIの使い方に関する情報を紹介ます。
LangChain
大規模言語モデル(LLM: Large Language Model)を使用する際に便利なLangChainについて紹介します。
Databricks
データ分析基盤であるDatabricks関連について紹介します。
システムアーキテクチャ
システムアーキテクチャに関わる記事について紹介します。
Python学習のおすすめ書籍 他
Pythonを学習する際のおすすめ書籍等を紹介します。
【まとめページ】
【個別記事】
- 【独学プログラマー Python言語の基本から仕事のやり方まで】Pythonの基本だけでなく幅広くプログラマーの知識を学べる良書
- 【Pythonデータサイエンスハンドブック】Numpy, pandas, matplotlib, scikit-learnの学習に最適な良書
- 【シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全】Pythonの勉強におすすめの良書
- 【エキスパートPythonプログラミング】Pythonを深く極めるための良書
- 【Pythonによるディープラーニング】TensorFlow/Kerasによるディープラーニング実装力を向上させる
- アイデミー(Aidemy)のE資格対策講座を受けてE資格(JDLA Deep Learning for ENGINEER)を取得