「Pythonとデータ分析で初学者から中級者になるためのセミナー」 2023年12月20 日

Pythonエンジニアになるためのテクニ
カルハイライトと学習方法
─Pythonを業務で使ってみよう─

一般社団法人Pythonエンジニア育成推進協会
顧問理事 寺田 学

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

自己紹介

寺田 学 (Manabu TERADA)●

Pythonエンジニア●

Podcast 「terapyon channel」(https://podcast.terapyon.net)●

主な関連書籍（共著・監修・監訳）○

Pythonデータ分析 実践ハンドブック（ 2023年，インプレス，共著）○

Pythonによるあたらしいデータ分析の教科書 第2版 （2022年，翔泳社，共著）○

Python実践レシピ（2022年，技術評論社，共著）○

Python FlaskによるWebアプリ開発入門 物体検知アプリ &機械学習APIの作り方 （2022年，翔泳社，監修）

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

所属組織
●

一般社団法人Pythonエンジニア育成推進協会顧問理事●

一般社団法人PyCon JP Association理事●

株式会社 CMSコミュニケーションズ 代表取締役●

Python Software Foundation Fellow●Plone Foundation Ambassador

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

Python技術支援のコンサルサービス(株)CMSコミュニケーションズのサービス

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

講演の流れ● Pythonバージョンの現状● バージョンアップで取り組んでいること● 用途別定番ライブラリ● ライブラリの具体的な利用シーン● 初学者からアプリ実装ができるようになるには

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

Pythonバージョンの現状

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

Pythonバージョン(2023年12月)

Python3.12● Python 3.10以降を採用することが多い● 最新のPython3.11はようやく使い始めている

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

Pythonのバージョンとサポート期間
年1回リリース＆5年サポート

https://devguide.python.org/versions/
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

バージョン間の互換性
基本的な互換性はある● 互換性は基本的に保たれている● キーワード（予約語）追加がたまにある● 内部APIの変更はある● サードパーティ製パッケージの対応は別
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

環境構築とサードパーティ製パッケージ
方法はさまざまだが、公式をなるべく使う● 公式インストーラーがオススメ● venv + pip でほとんど可能● 公式dockerを使うことも増えている● wheel化されたパッケージも多い
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

バージョンアップで取り組んでいること

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

バージョンアップで取り組んでいる(1)● スピードアップ● Python 3.11から取り組んでいる● 条件によっては1.5倍早くなっている● 今後も内部実装を見直し、スピードアップに期待● GIL関係のリファクタリング
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

バージョンアップで取り組んでいる(2)● よりコーディングしやすく● エラーメッセージが分かりやすくなっている● 型ヒントなどで安全なコーディングができるようになる

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

用途別定番ライブラリ

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

用途別定番ライブラリ ─ 1
インストーラー・パッケージインストール● Python公式インストーラー● Dockerイメージ● venv + pipcopyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

用途別定番ライブラリ ─ 2
データ分析や科学技術計算● データ型やデータ分析ツール NumPy / pandas● 科学技術計算 SciPy● 可視化ツール Matplotlib / Plotly● 機械学習ツールキット scikit-learn● ディープラーニング TensorFlow / PyTorchcopyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

用途別定番ライブラリ ─ 3Webシステム● Webフレームワーク Django / Flask / FastAPI● UIフレームワーク（データ分析可視化） Streamlit / Gradio● O/Rマッパー SQLAlchemy

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

用途別定番ライブラリ ─ 4ツール系● Excel操作 openpyxl● HTMLスクレイピング BeautifulSoup4● AWS操作 awscli / boto3

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

用途別定番ライブラリ ─ 5開発系
● Webブラウザから実行 JupyterLab● 型チェック mypy
● 静的リンター Flake8 → Ruff
● コードフォーマッター black → Ruff
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

ライブラリの具体的な利用シーン

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

具体的な利用シーン ─ 1
ログの分析をPythonで行う● ログファイルをPythonのopen関数で読み込む● 1行の中身を分割して、リストのリストを作る● pandasで読み込み● 必要な情報だけを抽出● 可視化やExcelファイルに書き出し● 機械学習などを用いて、異常検知
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.具体的な利用シーン ─ 1
ログの分析で使うライブラリ● 日付操作 標準ライブラリ datetime● データ分析 pandas● データ出力 openpyxl● 可視化 Matplotlib● 機械学習 scikit-learn
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

具体的な利用シーン ─ 2
定期的にCSVファイルを取得してデータ登録● CSVファイルを取得● データを確認してDBにデータ登録● 完了時にメールを送信する● エラー時はアラートを送信する

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

具体的な利用シーン ─ 2
CSVファイルからデータ登録で使うライブラリ● CSVファイル 標準ライブラリ csv● DBへの登録 SQLAlchemy● メール送信 標準ライブラリ smtplib

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

具体的な利用シーン ─ 3
データ分析のPoCを試してみたい● JupyterLabで実験的に試行錯誤● データ加工● データの評価● 各種Webサイトから情報取得● 結果をWebページにする
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

具体的な利用シーン ─ 3
データ分析のPoCで使うライブラリ● JupyterLab● データ加工 pandas / NumPy● データの評価 NumPy / Matplotlib / Plotry● 各種Webサイトから情報取得 BeautifulSoup4● Webページを作るなら Streamlit
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

初学者からアプリ実装ができるようになるにはcopyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

機能分割
まずは、機能を分割していこう● アプリが実現したいことを機能分割● 例えば○ データを読み込む○ データを加工する○ 画面に表示する● なるべく細かく分割する
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

機能ごとに実装分割された機能の役割を実装する● 機能ごとに「入力」と「出力」を決める● 入力に対して、処理をコーディングする● 出力をする or データ保存などを行う● 入力をパラメータで渡さなくても良い● まずは、一つずつ機能を作る
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

機能を繋げる
機能を繋げて、アプリとしての動きを実現● 機能を繋げて、一連の動きにする● 何かしらのキッカケで動作するようにする● キッカケの例○ クリックする○ スクリプトの手動起動○ Webリクエスト
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

動作環境の整備
どこで、どのように動作させるかを決め、環境整備● 動作環境を決める
● 例
○○
○
○

独自サーバー
手元のPC
サーバーレス環境
Webブラウザ● Pythonが動作する環境を作るcopyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

アプリ実装のまとめ
一つずつ確実に!

● 機能分割● 機能ごとに実装● 機能を繋げる● 動作環境の整備
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

ご清聴ありがとうございました。

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

師匠 or 仲間を見つけよう

ひとりで勉強するには限界がある
●
●
●
●
●

師匠を見つけよう
仲間を見つけよう
一緒に勉強し切磋琢磨できるとよい
自分のやっていることに自信が持てるカンファレンスや勉強会に積極的に参加

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

PyCon APAC 2023
約700人規模の現地イベント● https://2023.pycon.jp/● 日程: 10/26(金)〜28(日) 開催済み
● 2024も秋にPyCon JP開催予定● 当協会はGoldスポンサー

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.

Q&A
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved.