Slide 1

Slide 1 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Pythonエンジニアになるためのテクニ カルハイライトと学習方法 ─Pythonを業務で使ってみよう─ 一般社団法人Pythonエンジニア育成推進協会 顧問理事 寺田 学 「Pythonとデータ分析で初学者から中級者になるためのセミナー」 2023年12月20 日

Slide 2

Slide 2 text

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年,翔泳社, 監修)

Slide 3

Slide 3 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 所属組織 ● 一般社団法人Pythonエンジニア育成推進協会顧問理事 ● 一般社団法人PyCon JP Association理事 ● 株式会社 CMSコミュニケーションズ 代表取締役 ● Python Software Foundation Fellow ● Plone Foundation Ambassador

Slide 4

Slide 4 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Python技術支援のコンサルサービス (株)CMSコミュニケーションズのサービス

Slide 5

Slide 5 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 講演の流れ ● Pythonバージョンの現状 ● バージョンアップで取り組んでいること ● 用途別定番ライブラリ ● ライブラリの具体的な利用シーン ● 初学者からアプリ実装ができるようになるには

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Pythonバージョン(2023年12月) Python3.12 ● Python 3.10以降を採用することが多い ● 最新のPython3.11はようやく使い始めている

Slide 8

Slide 8 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Pythonのバージョンとサポート期間 年1回リリース&5年サポート https://devguide.python.org/versions/

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. バージョンアップで取り組んでいること

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. バージョンアップで取り組んでいる(2) ● よりコーディングしやすく ● エラーメッセージが分かりやすくなっている ● 型ヒントなどで安全なコーディングができるようになる

Slide 14

Slide 14 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 用途別定番ライブラリ

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 用途別定番ライブラリ ─ 3 Webシステム ● Webフレームワーク Django / Flask / FastAPI ● UIフレームワーク(データ分析可視化) Streamlit / Gradio ● O/Rマッパー SQLAlchemy

Slide 18

Slide 18 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 用途別定番ライブラリ ─ 4 ツール系 ● Excel操作 openpyxl ● HTMLスクレイピング BeautifulSoup4 ● AWS操作 awscli / boto3

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. ライブラリの具体的な利用シーン

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 具体的な利用シーン ─ 1 ログの分析で使うライブラリ ● 日付操作 標準ライブラリ datetime ● データ分析 pandas ● データ出力 openpyxl ● 可視化 Matplotlib ● 機械学習 scikit-learn

Slide 23

Slide 23 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 具体的な利用シーン ─ 2 定期的にCSVファイルを取得してデータ登録 ● CSVファイルを取得 ● データを確認してDBにデータ登録 ● 完了時にメールを送信する ● エラー時はアラートを送信する

Slide 24

Slide 24 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 具体的な利用シーン ─ 2 CSVファイルからデータ登録で使うライブラリ ● CSVファイル 標準ライブラリ csv ● DBへの登録 SQLAlchemy ● メール送信 標準ライブラリ smtplib

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 動作環境の整備 どこで、どのように動作させるかを決め、環境整備 ● 動作環境を決める ● 例 ○ 独自サーバー ○ 手元のPC ○ サーバーレス環境 ○ Webブラウザ ● Pythonが動作する環境を作る

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. ご清聴 ありがとうございました。

Slide 34

Slide 34 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 師匠 or 仲間を見つけよう ひとりで勉強するには限界がある ● 師匠を見つけよう ● 仲間を見つけよう ● 一緒に勉強し切磋琢磨できるとよい ● 自分のやっていることに自信が持てる ● カンファレンスや勉強会に積極的に参加

Slide 35

Slide 35 text

copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. PyCon APAC 2023 約700人規模の現地イベント ● https://2023.pycon.jp/ ● 日程: 10/26(金)〜28(日) 開催済み ● 2024も秋にPyCon JP開催予定 ● 当協会はGoldスポンサー

Slide 36

Slide 36 text

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