Slide 1

Slide 1 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法 一般社団法人Pythonエンジニア育成推進協会 顧問理事 寺田 学 「Python実践試験、 Pythonデータ分析実践試験対策とデータ分析の技術解説セミナー」 2024年12月13 日

Slide 2

Slide 2 text

copyright © 2024 一般社団法人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 © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 所属組織 ● 一般社団法人Pythonエンジニア育成推進協会顧問理事 ● 一般社団法人PyCon JP Association理事 ● Python Asia Organization Founder and Board member ● 株式会社 CMSコミュニケーションズ 代表取締役 ● Python Software Foundation Fellow ● Plone Foundation Ambassador

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 講演の流れ ● Pythonバージョンの現状 ● バージョンアップで取り組んでいること ● Python実践試験に向けて ● Pythonデータ分析実践試験に向けて ● Pythonの具体的な利用シーン ● 初学者からアプリ実装ができるようになるには

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Pythonバージョン (2024年12月) Python3.13 ● Python 3.11以降を採用することが多い ● 最新のPython3.13を使う場面もある

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 環境構築とサードパーティ製パッケージ 2024年は変化があった ● Rust製ツールの台頭 ● パッケージマネージャーの乱立から集約? ● uv + ruff というAstral社のツールが盛り上がる ● uvで環境構築をすることが増えた

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. バージョンアップで取り組んでいる (1) Python 3.13の主な変更点 ● 対話モードの大幅に改善 ● よりコーディングしやすく(型ヒント関係) ● 速度アップへの試み・準備 ○ GIL除去 ○ JIT対応

Slide 14

Slide 14 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. バージョンアップで取り組んでいる (2) ● スピードアップ ● Python 3.11から取り組んでいる ● 今後も内部実装を見直し、スピードアップに期待

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Python実践試験に向けて

Slide 17

Slide 17 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. スキルマップ表 (2024年度版) 試験グレード 難易度(職種: ITSSレベル) Pythonエンジニア AIエンジニア Pythonデータエンジニア データアナリスト 実践レベル エキスパート職種:ソフトウェアディベロップメント、 応用ソフトのレベル2(申請中) 実践試験 データ分析実践試験 基礎レベル エントリー職種:ソフトウェアディベロップメント、応 用ソフトのレベル1 基礎試験 データ分析試験 参考: ナレッジ レベル – Python Zen & PEP 8 検定 Python Zen & PEP 8検定

Slide 18

Slide 18 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 実践試験 ● Pythonで実践的にプログラミングができる ● 例題 ○ for文の処理をリスト内包表記にし正しいものを選択 ○ datetime, zoneinfo を使ったコードでエラーを選択 ○ class構文の継承コードで実行されるメソッドを選択

Slide 19

Slide 19 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 実践試験の合格者のレベル Pythonのことなおまかせと言える ● Pythonの言語仕様を概ね知っている ○ 例外から内包表記やデコレーターなど ○ classの仕様 ● Pythonの標準ライブラリの幅広い知識 ○ どんなものが存在するか? ○ 基本的な使い方を知っている

Slide 20

Slide 20 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 実践試験の意図と意義 Python実践試験に合格した人の声として ● 人事からのオススメ試験となっていたので勉強、数回で合格した人の声 ● 他人のコードレビューに自身を持って答えることができるように なった ● 初学者を教える時に、厳密なことを教えられるようになった ● Pythonを深く知ることができ、自信になっている

Slide 21

Slide 21 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Pythonデータ分析実践試験に向けて

Slide 22

Slide 22 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. スキルマップ表 (2024年度版) 試験グレード 難易度(職種: ITSSレベル) Pythonエンジニア AIエンジニア Pythonデータエンジニア データアナリスト 実践レベル エキスパート職種:ソフトウェアディベロップメント、 応用ソフトのレベル2(申請中) 実践試験 データ分析実践試験 基礎レベル エントリー職種:ソフトウェアディベロップメント、応 用ソフトのレベル1 基礎試験 データ分析試験 参考: ナレッジ レベル – Python Zen & PEP 8 検定 Python Zen & PEP 8検定

Slide 23

Slide 23 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. データ分析実践試験 ● Pythonでデータ分析を実践できるデータの扱いを問う ● 例題 ○ pandas DataFrameの連結方法で正しい方法を選択 ○ データの定量的評価の間違っている方法を選択 ○ 時系列データを扱うための日付変換で正しいものを選択

Slide 24

Slide 24 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. デー分析実践試験の意図と意義 (1) ● データ分析を実践していることが重要 ● 特にpandasの使い方、NumPyの基本的な機能は把握している と考えられる ● データ分析者として重要なデータの評価についても一定の理解 が必要 ● ここは、現場で実践するうえで、重要な知識だと考えている

Slide 25

Slide 25 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. デー分析実践試験の意図と意義 (2) ● 後半パートで、さまざまなデータ形式の取り扱いを扱っている ● 基本となる、「時系列」「テキスト」「画像」を扱えることは必須 ● それ以外に、「グラフデータ」「地理空間データ」もデータ分析者と して扱えるかどうか ● エンジニアとしての幅が違うと考えて、基本的な部分だけでも理 解をして欲しい

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 具体的な利用シーン ─ 3 Streamlitを使ってChatGTP APIを利用 ● StreamlitはPython Web UIフレームワーク ● OpenAIのAPIを利用 ● Web UIで、APIが利用できる

Slide 32

Slide 32 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 具体的な利用シーン ─ 3 (コードリポジトリ ) コードリポジトリ https://github.com/terapyon/st-demo-ai-form

Slide 33

Slide 33 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 具体的な利用シーン ─ 3

Slide 34

Slide 34 text

copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 具体的な利用シーン ─ 3

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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