本サイトで紹介している記事をまとめた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】
Anacondaについては2020/4/30の発表で大規模な商用利用では有償となっています。個人的な利用や教育目的の使用、非営利団体での使用といったところでは無償ですが、それ以外は有償となる可能性があります。使用前によくご確認ください。
【Git】バージョン管理ソフトウェア
【Docker】コンテナ型仮想環境
データ構造
Pythonでは、様々なデータ構造を使用してプログラミングを行います。基本的なデータ構造の使用方法について紹介します。
文字列
日付・時刻
リスト (list)
タプル (tuple)
辞書 (dict)
集合 (set)
内包表記
制御
Pythonの制御では、for、while、if等を使用して動作を制御します。基本の使用方法を紹介します。
【繰り返し制御】
- for文の基本的な使い方
- while文の基本的な使い方
- range関数を用いたfor文の使い方
- enumerate関数を用いたfor文の使い方 ~インデックスと要素を取得~
- zip関数を用いたfor文の使い方 ~複数のリストをまとめて処理~
【条件分岐】
【例外処理】
関数
Pythonにおける関数の基本的な使い方について紹介します。
クラス
Pythonにおけるクラスの基本的な使い方について紹介します。
入出力
Pythonにおける入出力の基本を紹介します。
【ファイル入出力】
- ファイル入出力の基本 ~open, write, close, read, readlines~
- CSVファイルの入出力
- XMLをxml.etree.ElementTreeで読み込む方法
- JSONの読み込み/書き込み方法 ~dump, load, dumps, loads~
【コマンドライン引数】
【設定値管理 (コンフィグ)】
応用編
対話型インタプリタ (IPython)
Pythonの拡張された対話型インタプリタについて紹介します。
Collectionsモジュール
Pythonでもよく使われるCollectionモジュールの各種使い方について紹介します。
正規表現
Pythonで正規表現を扱うためのモジュールの使用方法を紹介します。
列挙型
Pythonで列挙型を扱うためのモジュールの使用方法を紹介します。
ログ管理
Pythonでログ管理するためのモジュールの使用方法を紹介します。
フォルダ監視
Pythonでフォルダ監視をするためのモジュールの使用方法について紹介します。
Pythonパッケージ作成と配布
Pythonパッケージ作成や配布に関わるライブラリの司法方法を紹介します。
外部プログラム連携 (DLL)
Pythonで外部プログラムと連携する方法を紹介します。
データベース
Pythonでデータベース処理する際の各種モジュールの使用方法を紹介します。
【Oracle】
【PostgreSQL】
【MySQL】
【SQLite】
【SQLAlchemy】Pythonのクロスデータベースライブラリ
【MongoDB】ドキュメント指向データベース
【neo4j】グラフデータベース
ネットワーク
Pythonでネットワーク関連の処理をするための関連モジュールの使用方法を紹介します。
【通信】
【Webスクレイピング】
暗号化・復号化
Pythonでの暗号化・復号化に関連するモジュールの使用方法について紹介します。
並行・並列処理
Pythonで並行・並列処理を実行するための関連モジュールの使用方法を紹介します。
【全般】
【マルチスレッド: threading
】
【マルチプロセス: multiprocessing
】
【並列処理: concurrent.futures
】
concurrent.futures
モジュールは、シンプルなAPIで簡単な並列処理が実装できる点がメリットですが、複雑な並列処理を実装したい場合には、カスタマイズ性に欠けるというデメリットも存在します。複雑な並列処理が必要な場合は、threading
やmultiprocessing
の使用をおすすめします。
非同期プログラミング
関数型プログラミング
Pythonはマルチパラダイムのプログラミング言語で様々なプログラミングスタイルをサポートしています。その中でも関数型プログラミングに関する内容について紹介します。
【全般】
【関数型プログラミングに関わる各種方法】
- Pythonを用いた関数型プログラミング
- ラムダ(lambda)関数:無名関数の使い方
- デコレータ(decorator)の基本的な使い方
- map関数の使い方の基本 ~リスト要素への関数適用~
- filter関数の使い方の基本 ~リストから条件を満たす要素を抽出~
- reduce関数の使い方の基本 ~リスト要素の畳み込み~
- partial関数の使い方の基本 ~関数の部分適用~
【型ヒント(型アノテーション)】
データ分析
全般
データ分析の全般にかかわるような概念などについて紹介します。
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の概要
- 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関連についてインストール方法などを紹介します。
自然言語処理
自然言語処理における形態素解析や構文解析に関わるモジュールの使用方法について紹介します。
画像処理
OpenCV
OpenCVは、コンピュータビジョンのライブラリです。OpenCVのPythonバインドとしてはcv2
モジュールが提供されています。PythonからOpenCVを使用する方法について紹介します。
GUI開発
PyQt
PyQtは、クロスプラットフォームに対応可能なGUIツールキットであり、Windows、Linux、Mac等様々なOSで動作可能なGUIプログラムを作成することができます。PyQtの各種使い方について紹介します。
その他 (生成AIなど)
生成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)を取得