Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法

Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法

「Python実践試験、Pythonデータ分析実践試験対策とデータ分析の技術解説セミナー」
2024年12月13 日
一般社団法人Pythonエンジニア育成推進協会
顧問理事 寺田 学

Manabu TERADA

December 18, 2024
Tweet

More Decks by Manabu TERADA

Other Decks in Technology

Transcript

  1. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法

    一般社団法人Pythonエンジニア育成推進協会 顧問理事 寺田 学 「Python実践試験、 Pythonデータ分析実践試験対策とデータ分析の技術解説セミナー」 2024年12月13 日
  2. 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年,翔泳社, 監修)
  3. 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
  4. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 講演の流れ • Pythonバージョンの現状

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

    • Python 3.11以降を採用することが多い • 最新のPython3.13を使う場面もある
  6. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. バージョン間の互換性 基本的な互換性はある •

    互換性は基本的に保たれている • キーワード(予約語)追加もほぼ無い • 内部APIの変更はある • サードパーティ製パッケージの対応は別
  7. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 環境構築とサードパーティ製パッケージ 方法はさまざまだが、公式をなるべく使う •

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

    Rust製ツールの台頭 • パッケージマネージャーの乱立から集約? • uv + ruff というAstral社のツールが盛り上がる • uvで環境構築をすることが増えた
  9. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. バージョンアップで取り組んでいる (1) Python

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

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

    よりコーディングしやすく • エラーメッセージが分かりやすくなっている • 型ヒントなどで安全なコーディングができるようになる
  12. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. スキルマップ表 (2024年度版) 試験グレード

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

    • 例題 ◦ for文の処理をリスト内包表記にし正しいものを選択 ◦ datetime, zoneinfo を使ったコードでエラーを選択 ◦ class構文の継承コードで実行されるメソッドを選択
  14. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 実践試験の合格者のレベル Pythonのことなおまかせと言える •

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

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

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

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

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

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

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

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

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

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

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

    (コードリポジトリ ) コードリポジトリ https://github.com/terapyon/st-demo-ai-form
  26. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 機能分割 まずは、機能を分割していこう •

    アプリが実現したいことを機能分割 • 例えば ◦ データを読み込む ◦ データを加工する ◦ 画面に表示する • なるべく細かく分割する
  27. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 機能ごとに実装 分割された機能の役割を実装する •

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

    機能を繋げて、一連の動きにする • 何かしらのキッカケで動作するようにする • キッカケの例 ◦ クリックする ◦ スクリプトの手動起動 ◦ Webリクエスト
  29. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 動作環境の整備 どこで、どのように動作させるかを決め、環境整備 •

    動作環境を決める • 例 ◦ 独自サーバー ◦ 手元のPC ◦ サーバーレス環境 ◦ Webブラウザ • Pythonが動作する環境を作る
  30. copyright © 2024 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 師匠 or 仲間を見つけよう

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