Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Pythonエンジニアになるためのテクニカルハイライトと学習方法
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Manabu TERADA
December 20, 2023
Technology
0
160
Pythonエンジニアになるためのテクニカルハイライトと学習方法
「Pythonとデータ分析で初学者から中級者になるためのセミナー」
2023年12月20 日
Python EDイベント
Manabu TERADA
December 20, 2023
Tweet
Share
More Decks by Manabu TERADA
See All by Manabu TERADA
オープンソースを安心して利用するために
terapyon
1
82
CMSツールPloneでAAL2対応への挑戦
terapyon
0
60
PythonエンジニアになるためのテクニカルハイライトとPython実践試験学習方法
terapyon
0
62
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
840
近年の PyCon 情勢から見た PyCon APAC のまとめ
terapyon
0
470
Desktop Apps Made Easy: Python Web UI Frameworks with Streamlit and Stlite
terapyon
1
110
Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法
terapyon
0
4.6k
各種大学向けにSSO対応サイト(SP)構築の事例紹介
terapyon
0
110
コンテンツタイプとUMLで考えるPlone開発(1)
terapyon
0
180
Other Decks in Technology
See All in Technology
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
150
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
400
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
0
180
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
190
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
3
300
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
350
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.6k
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
OpenShiftでllm-dを動かそう!
jpishikawa
0
140
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
140
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
440
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
79
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Rails Girls Zürich Keynote
gr2m
96
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Are puppies a ranking factor?
jonoalderson
1
2.7k
Everyday Curiosity
cassininazir
0
130
Believing is Seeing
oripsolob
1
58
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
87
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Transcript
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. Pythonエンジニアになるためのテクニ カルハイライトと学習方法 ─Pythonを業務で使ってみよう─
一般社団法人Pythonエンジニア育成推進協会 顧問理事 寺田 学 「Pythonとデータ分析で初学者から中級者になるためのセミナー」 2023年12月20 日
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 + pip
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 用途別定番ライブラリ ─ 2
データ分析や科学技術計算 • データ型やデータ分析ツール NumPy / pandas • 科学技術計算 SciPy • 可視化ツール Matplotlib / Plotly • 機械学習ツールキット scikit-learn • ディープラーニング TensorFlow / PyTorch
copyright © 2023 一般社団法人Pythonエンジニア育成推進協会 all rights reserved. 用途別定番ライブラリ ─ 3
Webシステム • 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