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

進化し続けるPython事情、こっちも使えるか考えてみよう!

 進化し続けるPython事情、こっちも使えるか考えてみよう!

2022年2月10日のPythonエンジニア勉強会vol.2.0で発表した『進化し続けるPython事情、こっちも使えるか考えてみよう!』のスライド
https://tech-street.connpass.com/event/237595/
#テックストリート

More Decks by フィンテック養成コミュニティ

Other Decks in Programming

Transcript

  1. None
  2. 2013年1⽉に札幌から東京に移住。 現在は教育&HR企業でブロックチェーンを活⽤した Webプロジェクトのテックリードを担当。 北海道(苫⼩牧)⽣まれで、12歳と24歳の娘、3歳の 孫がいる。趣味は旅⾏と神社巡り。 Pythonや機械学習、ブロックチェーン、クラウド、⾦ 融、ソフトウェア開発に関するITコミュニティのスタッ フ(主にコンテンツ企画担当)や、先端技術、ビジネス や組織改⾰のイベント企画、執筆などの個⼈活動を⾏う。 コミュニティ運営スタッフ

    Start Python Club、⾦融エンジニア養成コミュニティほか多数 監修、執筆、翻訳、査読 ・Sparkによる実践データ解析 ―⼤規模データのための機械学習事例集 ・マンガと図解でスッキリわかる プログラミングのしくみ ・実践 ⾦融データサイエンス 隠れた構造をあぶり出す6つのアプローチ ・テスト駆動Python ・あたらしいPythonによるデータ分析の教科書 ・みんなのブロックチェーン ・フィンテックエンジニア養成読本 ・Python 3スキルアップ教科書 ・After GAFA 分散化する世界の未来地図 ・実践シナリオ・プランニング 阿部 ⼀也 (あべんべん) Institution for a Global Society株式会社 上席研究員 Profile
  3. Start Python Clubを運営してます 3

  4. 免責事項 4 ຊ಺༰͸ݸਓͷݟղͰ͋Δɻ ॴଐ૊৫Λ୅ද͢Δ΋ͷͰ͸͋Γ·ͤΜɻ ࢿྉ͸ͷͪ΄Ͳެ։͠·͢ɻ

  5. 5 本⽇のお話 • 1ZUIPOͷਐԽ • 1ZUIPOʹΑΔՄࢹԽ • 1ZUIPOʹΑΔσʔλαΠΤϯε ࠓճ͸ओʹɺΈΜͳͷ1ZUIPOษڧձͰొஃ͍͍ͨͩͨ ༗ࣝऀୡͷൃද͔ΒֶΜͩ಺༰Λݩʹ͓࿩͠͠·͢ɻ

  6. Pythonの進化 6

  7. TIOBE Index for February 2022 7 https://www.tiobe.com/tiobe-index/ 5*0#&*OEY͸ɺݕࡧΤϯδϯͰͷݕࡧ਺ͳͲΛ΋ͱʹ݄ճߋ৽͞ΕΔϓϩάϥϛϯάݴޠͷਓؾࢦඪ

  8. Pythonはグルー⾔語 8

  9. None
  10. Pythonソフトウェア財団 (PSF) 10 1ZUIPOͷੜΈͷ਌

  11. リリースの予定を確認する⽅法 11 IUUQTEPDTQZUIPOPSHKBXIBUTOFXJOEFYIUNM ͔Β֬ೝͰ͖·͢ɻ

  12. Python3のリリース⽇ 12 • ೥݄೔ʹ1ZUIPO͸ऴྃ • ೥͸1ZUIPO࢖ͬͯΔਓ͕ଟ͔ͬͨ • ͔Β͸ɺϦϦʔε͕೥̍ʹͳͬͨ ೥ʹҰ౓ͷϦϦʔεʹ

  13. Python3の進化(個人の嗜好で抜粋) 13

  14. Python3.0(2008-12-03) 14 ΞεΩʔ͔ΒϢχίʔυ΁ɺQSJOUจͷॻࣜɺ੔਺ͷ࢓༷ͳͲ͕มΘͬͨ

  15. Python3.8(2019-10-14) 22 GTUSJOH ηΠ΢νԋࢉࢠ x = 123 y = "abc"

    print("{} and {}".format(x, y)) # 123 and abc print("{first} and {second}".format(first=x, second=y)) # 123 and abc array = [1, 2, 3, 4, 5, 6, 7] if (n := len(array)) > 5: print(n) # 7
  16. Python3.9(2020-10-04) 23 %JDUͷϚʔδ dict1 = {"a":1, "b":2} dict2 = {"c":3,

    "d":4} dict1.update(dict2) # dict1にdict2をマージする print(dict1) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
  17. Python3.10(2021-10-04) 24 ύλʔϯϚονϯάʢ4XJUDIจͰ͸ͳ͍ʣ class Point: x: int y: int def

    location(point): match point: case Point(x=0, y=0): print("Origin is the point's location.") case Point(x=0, y=y): print(f"Y={y} and the point is on the y-axis.") case Point(x=x, y=0): print(f"X={x} and the point is on the x-axis.") case Point(): print("The point is located somewhere else on the plane.") case _: print("Not a point")
  18. Python3.11(変更の可能性あり) 25 ͍·ͷͱ͜Ζྫ֎΍Τϥʔ࣌ͷτϨʔεվળఔ౓

  19. 翻訳してまとめてる記事を発⾒! 26 https://qiita.com/ksato9700/items/e2356ea9c19c3ff8a467 Python3.5の新機能から 毎回翻訳をして Qiitaへまとめてる人がいた。

  20. 主流パッケージはここで探す 27 https://github.com/vinta/awesome-python "XFTPNFͷ1ZUIPO͕͓નΊ ྫɿ/-1ͷྫʢ೔ຊޠ/-1͸ࡌͬͯͳ͍ʣ

  21. ついでにこれも 検討しよう 28

  22. 便利なライブラリを使ってよいテストをする 29

  23. 静的な解析で品質を上げよう 30 https://github.com/vinta/awesome-python#code-analysis

  24. 型を書いて品質を上げる 32 NZQZ͸1ZUIPOͰ੩తܕνΣοΫΛߦ͏ϥΠϒϥϦ ܕࢦఆͳ͠ ܕࢦఆ͋Γ NZQZͰνΣοΫ

  25. 型 型破 。型 無 、 形無 。 33 कഁ཭ ͋·Γؔ܎ͳ͍͔΋͠Εͳ͍͚Ͳɺ͜Μͳݴ༿͕͋Γ·͢

  26. Python関係の直近発売‧発売予定の本 34

  27. Pythonによる 可視化 35

  28. 可視化パッケージ(Python) 36 Diarams

  29. 可視化パッケージ(Python) 37 https://www.python-graph-gallery.com/

  30. Django 4.0 38 https://codezine.jp/article/detail/15301

  31. Flask 39 • ඞཁ࠷௿ݶͷػೳ͚ͩΛଗ͑ͨܰྔ8FC ΞϓϦέʔγϣϯϑϨʔϜϫʔΫ https://jelvix.com/blog/django-vs-flask 'MBTL͔%KBOHP͔Ͱ໎͏ਓ͕पΓʹΘΓͱଟ͍

  32. Streamlit 40 $ pip install streamlit $ python -m streamlit.cli

    run app.py Πϯετʔϧ ࣮ߦ σʔλ෼ੳ΍"*ॲཧͳͲͷίʔυΛ؆୯ʹ8FCΞϓϦέʔγϣϯͰ͖Δɻ ʢʹଞͷਓʹ֬ೝͯ͠΋Β͑Δʣ ίʔυ΍σʔλΛमਖ਼ͨ͠Β࠶ىಈ͠ͳͯ͘΋൓ө͞ΕΔɻ
  33. Jupyter Lab 41 ͞ΒʹσεΫτοϓ൛΋͋Γ·͢ʂ • +VQZUFS 1SPKFDUͰ͸8FCϕʔεͷΠϯλϥΫ ςΟϒͳ෼ੳ؀ڥΛఏڙ͍ͯ͠Δ • +VQZUFS

    -BC͸+VQZUFS /PUFCPPLͷޙܧ൛ • +VQZUFS -BCͰ͸ෳ਺ͷλϒʢ1ZUIPOɺλʔϛ φϧ౳ʣ͕։͚Δ • Ϣʔβʔೝূ౳͕͍ͭͨ+VQZUFS )VC΋͋Δ https://jupyter.org/
  34. 分析〜Webアプリ 42 個人で分析 分析を関係者に見せる 軽量型のWebアプリ化 本格的なWebアプリ化

  35. 可視化関連の書籍(主にPython) 43

  36. 1ZUIPOʹΑΔ σʔλαΠΤϯε 44

  37. データサイエンティストのスキル 45

  38. GPUを使う(Google Colabを利⽤する) 46 https://colab.research.google.com/notebooks/gpu.ipynb (16΍516ΛແྉͰ࢖͑ΔͷͰͪΐͬͱͨ࣌͠ʹ͸ศརͰ͢ɻʢ࢓ࣄͰ͸࢖ͬͯ͸Πέͳ͍ʣ

  39. Huggingface Transformers 47 • ʮࣗવݴޠཧղʯͱʮࣗવݴޠੜ੒ʯͷ࠷ઌ୺ͷ ൚༻ΞʔΩςΫνϟʢ#&35ɺ(15ͳͲʣͱඇ ৗʹଟ͘ͷࣄલֶशࡁΈϞσϧΛఏڙ͢ΔϥΠϒ ϥϦ • σϑΝΫτͳࣗવݴޠॲཧͷਂ૚ֶशϑϨʔϜ

    ϫʔΫ
  40. PyCaret 48 https://youtu.be/s6d0_UnarMg •ίʔυ࣮૷͕ඇৗʹ؆୯ʢ਺ߦͰ࣮૷Մೳʣ •σʔλͷલॲཧ΋ࣗಈͰ࣮ࢪ •ϋΠύʔύϥϝʔλͷࣗಈ࠷దԽ͕Մೳ •৭ʑͳղੳ݁ՌΛਤͰ֬ೝ͕Մೳ σʔλͷલॲཧ΍ՄࢹԽɺϞσϧ։ൃΛ ਺ߦͷίʔυͰ࣮ݱ͢Δ"VUP.-ϥΠϒϥϦ

  41. ⽇本語NLP ライブラリ 49 ࠷ઌ୺ࣗવݴޠॲཧϥΠϒϥϦͷ࠷దͳબ୒ͱ༗༻ͳར༻ํ๏ QZDPOKQ https://youtu.be/kwC0vKGbo1s https://speakerdeck.com/taishii/pycon-jp-2020

  42. MecabからJanomeへ 50 +BOPNF͸ಋೖ͕؆୯ʢεϐʔυ͸ྼΔʣ .FDBCͷΠϯετʔϧ͸͸·Γ΍͍͢ʢಛʹ8JOEPXTʣ +BOPNF͸QJQ͚ͩͰ0,

  43. Tario 51 $ pip install toiro[all_tokenizers] Πϯετʔϧ > from tairo

    import tokenizers > available_tokenizers = tokenizers.available_tokenizers() > print(available_tokenizers) > pip install toiro[all_tokenizers] { "nagisa":{"is_available":true,"version":"0.2.7"}, "janome":{"is_available":true,"version":"0.4.1"}, "mecab-python3":{"is_available":false,"version":false}, "sudachipy":{"is_available":true,"version":"0.6.2"}, "spacy":{"is_available":true,"version":"3.2.1"}, "ginza":{"is_available":false,"version":false}, "kytea":{"is_available":false,"version":false}, "jumanpp":{"is_available":false,"version":false}, "sentencepiece":{"is_available":true,"version":"0.1.91"}, "fugashi-ipadic":{"is_available":false,"version":fals}, "tinysegmenter":{"is_available":true,"version":"0.1.0", "fugashi-unidic":{"is_available":false,"version":false} } Πϯετʔϧ https://github.com/taishi-i/toiro ܗଶૉղੳثൺֱϥΠϒϥϦ
  44. NLPのトレンドを⼿っ取り早く知りたい⼈ 52 https://ja.stateofaiguides.com/

  45. 有料ブログ:NLPのリサーチが豊富でお薦め 53 ࣗ෼͸&WFSOPUFͰ؅ཧͯ͠ௐࠪͳͲʹར༻͍ͯ͠Δ

  46. GPT-3、DALL-E 54 https://openai.com/blog/dall-e/ 論文 : https://arxiv.org/pdf/2102.12092.pdf DALL-E GPT-3 Open AI

    によって開発された超巨大言語モデル 論文 : https://arxiv.org/pdf/2005.14165.pdf (15ͷը૾൛
  47. DALL-E in Pytorch 55 (15΍%"--&͸ެ։͞Ε͍ͯͳ͍ɻ %"--&ͷ1Z5PSDI࣮૷ෳ੡൛͕͋Δ https://github.com/lucidrains/DALLE-pytorch https://github.com/lucidrains/big-sleep #JH4MFFQ https://github.com/lucidrains/deep-daze

    %FFQ%B[F
  48. AWS Lambda 56 ݱࡏαϙʔτ͍ͯ͠Δόʔδϣϯ͸ʙ ͕αϙʔτ͞Εͨͷ͸೥݄ͳͷͰ΋ಉ͡ࠒʁ

  49. AWS(SageMaker)は便利 57 https://aws.amazon.com/jp/builders-flash/202003/awsgeek-sagemaker/

  50. Amazon SageMaker Studio Lab 58 1ZUIPOݴޠ΍3ݴޠͳͲ͕࢖͑Δແྉͷ σʔλαΠΤϯεͷΦϯϥΠϯ࡞ۀ؀ڥ https://aws.amazon.com/jp/sagemaker/studio-lab/

  51. 量⼦コンピューターのトレンドも押さえよう 59 https://qiita.com/abenben/items/1ccc51cd5d9ba18b30c1 ੲɺྔࢠίϯϐϡʔλͰ෼͔Βͳ͍෦෼͕͚͋ͬͨͲɺ ͱΓ͋͑ͣΘ͔Δ෦෼͚ͩॻ͍ͯ2JJUBʹࡌͤͨΒϓϧϦΫ΋Β͑ͨɻ

  52. Github Copilot 60 0QFO"*Λར༻ͨ͠ίʔσΟϯάΞγελϯτ 74$PEF΍1Z$IBSNʹϓϥάΠϯ͕͋Δ ᶃ଍͠ࢉΛؔ਺໊ॻ͍ͯͨΒ ᶄϩδοΫ͕ࣗಈͰ ϩδοΫ͕ग़͖ͯͨ ᶅzEFGzͱॻ͍͚ͨͩͰҾ͖ࢉͷॲཧ͕ ᶆzEFGzͱॻ͍͚ͨͩͰ࣍͸ׂΓࢉ

    ᶇzEFGUFzͱॻ͍ΈͨΒςεΫؔ਺͕ީิʹ ᶈίϝϯτཝʹ΋উखʹίϝϯτͷީิ͕ͰΔ 1Z$IBSNϓϥάΠϯͷྫ Զ͸΋͏͍Βͳ͍ʁ ˞֤छϥΠηϯεͷ৘ใΛ ղੳ͍ͯ͠ΔͷͰ ෺ٞΛৢ͍ͯ͠Δ
  53. ⾃然⾔語処理の新刊など 61

  54. データサイエンスで気になる新刊 62

  55. まとめ 6 3

  56. まとめ 64 • ৽ػೳͰָʹྑ͘Ͱ͖ͳ͍͔ݕ౼͠ΐ͏ɻ • ίϯςΩετผʹՄࢹԽํ๏Λݕ౼͠Α͏ɻ • ࣗಈͰ΍ͬͯ͘ΕΔ΋ͷ͕૿͖͑ͯͨͷͰɺ ೚ͤΕΔͱ͜Ζ͸೚ͤͯຊۀʹઐ೦͠Α͏ɻ

  57. IGSではエンジニアを募集してます! 65 ৄ͘͠͸ͪ͜Β΁ https://www.green-japan.com/company/8228