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

大人のためのPython入門in京都.pdf

kanan
February 10, 2019

 大人のためのPython入門in京都.pdf

kanan

February 10, 2019
Tweet

More Decks by kanan

Other Decks in Programming

Transcript

  1. 大人のためのPython入門
    PyLadies Caravan in 京都
    データ分析編

    View Slide

  2. ■自己紹介■
    ▶ PyLadies Caravan STAFF
    ▶ PyLadies Tokyo は、参加者としてお邪魔してます。
    ▶ 仕事はコンサルよりのデータ分析屋さん。
    ▶ お酒が好き。昨日も京都の日本酒たのしみました。
    かなん  @Addition_quince

    View Slide

  3. ※ 今日やること ※
    ■Pythonってどんな言語?
    ■jupyter notebookを使ってみよう
    ■データ分析のことはじめ
      +データの読み込み
      +データの形式を把握
      +要約統計量の算出
      +データの可視化

    View Slide

  4. はじめようPython de データ分析★

    View Slide

  5. Pythonって、どんな言語?
    Python とは
    汎用プログラミング言語で、その特徴はこんなかんじ。
    • オープンソースである
    • 文法がシンプルであり、コードが少量で済む
    • Web開発、データ解析(AI)、ゲームといった幅広い分野で使用
    • 多彩なライブラリサポートで高度な計算も容易
    『 Youtube 』 『 EverNote 』 『 Instagram 』に利用されています。

    View Slide

  6. Pythonって、どんな言語?
    Python の起源
    1991年 オランダ人のグイド・ヴァン・ロッサム氏によって開発されたプログラミング
    言語。
    名前の由来は、イギリスのテレビ局BCCが製作・放送した大ヒットコメディ番組であ

    「空飛ぶモンティ・パイソン」からきているとされる。 
    グイド・ヴァン・ロッサム (出典「wikipedia」) 
    6年以上前の1989年12月、私はクリスマス前後の週の暇つぶしのため「趣味」のプログ
    ラミングプロジェクトを探していた。オフィスは閉まっているが、自宅にはホームコン
    ピュータがあるし、他にすることがなかった。私は最近考えていた新しいスクリプト言語
    のインタプリタを書くことにした。それは、ABCからの派生であり、Unix/Cハッカーの注
    意をひきつけるかもしれないと考えた。ちょっとしたいたずら心から(『空飛ぶモンティ・パ
    イソン』の熱烈なファンだったというのも理由の1つ)、プロジェクトの仮称をPythonにし
    た。
    — グイド・ヴァンロッサム、「Programming Python」の序文

    View Slide

  7. View Slide

  8. Python特徴①:シンプルな文法!
    Python の文法は本当にシンプルなのか?
    2つの値(a, b)の最大公約数を求めるプログラムを
    Python, Java, Rubyの3つの言語で比較。
    ※最大公約数を求めるアルゴリズムはユークリッドの互除法
    を使用 
    def gcd(a, b):
    while b > 0:
    a, b = b, a % b
    return a
    def gcd(a, b)
    a, b = b, a if a > b
    until a == 0
    a, b = b % a, a
    end
    return b
    end
    private static long getKoyakusu(long a, long b) {
    long candidate = a;
    while (b % a != 0) {
    candidate = b % a;
    b = a;
    a = candidate;
    }
    return candidate;
    }
    Java  Ruby 
    Python 

    View Slide

  9. Python特徴①:シンプルな文法!
    Python の文法の特徴的な構文ルール「インデント」
    ● インデントは、行頭に空白を入れて文字を入れて字下げを行う事
    ● 同じインデントのまとまりを1つのブロックと識別
    Def hikaku(x):
      f x < 10:
        print(‘少ない’)
        else:
        print(‘たくさん’)
    1インデントは空白4
    つで表されることが
    多い

    View Slide

  10. Python特徴②:ライブラリが豊富!
    ライブラリとは、
    多彩な計算やデータ加工を可能とする、モジュール(Pythonプログラ
    ム)群。
    <例>
    ▶ datetime :日付時間処理
    ▶ math :数学計算
    ▶ numpy :行列演算
    ▶ Pandas :データ加工
    ▶ Matplotlib :グラフ描画
    ▶ scikit-learn :機械学習
    ▶ Chainer :深層学習

    View Slide

  11. Pythonの思想:The Zen of Python
    ▶ 1. Beautiful is better than ugly.
    ▶ 2. Explicit is better than implicit.
    ▶ 3. Simple is better than complex.
    ▶ 4. Complex is better than complicated.
    ▶ 5. Flat is better than nested.
    ▶ 6. Sparse is better than dense.
    ▶ 7. Readability counts.
    ▶ 8. Special cases aren't special enough to break the rules.

    View Slide

  12. Pythonの思想:The Zen of Python
    ▶ 9. Although practicality beats purity.
    ▶ 10. Errors should never pass silently.
    ▶ 11. Unless explicitly silenced.
    ▶ 12. In the face of ambiguity, refuse the temptation to
    guess.
    ▶ 13. There should be one-- and preferably only one
    --obvious way to do it.
    ▶ 14. Although that way may not be obvious at first unless
    you're Dutch.

    View Slide

  13. Pythonの思想:The Zen of Python
    ▶ 15. Now is better than never.
    ▶ 16. Although never is often better than *right* now.
    ▶ 17. If the implementation is hard to explain, it's a bad
    idea.
    ▶ 18. If the implementation is easy to explain, it may be a
    good idea.
    ▶ 19. Namespaces are one honking great idea -- let's do
    more of those!

    View Slide

  14. Pythonのバージョン:
    ▶ Python2(2系)とPython3(3系)
    ▶ Python2は2020年にはサポート終了となる
    ▶ 学習をはじめるならPython3
    ▶ 最新バージョンは Python3.7.2

    View Slide

  15. Jupyter Notebookを使って
      データ分析をやってみよう!

    View Slide

  16. (参考)エディタ
    ▶ 実際にPythonでプログラムを書くときは、エディタと呼ばれるソ
    フトウェアを使うことが多い
    ▶ みんな自分の好みのエディタをメインで使っています。
    ▶ Visual Studio Code (ビジュアルスタジオコード)
    ▶ PyCharm (パイチャーム)
    ▶ Atom (アトム)
    ▶ Notepad++ (ノートパッドプラスプラス)
    ▶ Sublime (サブライム)
    ▶ Jupyter Notebook (ジュピターノートブック)

    View Slide

  17. (参考)エディタ
    ▶ PyCharm

    View Slide

  18. 今回はJupyter Notebookを使用します
    Jupyter Notebookとは、
    ブラウザ形式のテキストエディタ。
    ノートブックと呼ばれる形式でプログラムを作成でき、
    実行結果を確認しながら作業を進めるためのツールです。
    <実行画面>
    結果表示
    処理記載

    View Slide

  19. Jupyter Notebookを使うための簡単な方法
    https://www.anaconda.com/
    Anacondaとは
    ・Pythonのディストリビューション
    ・Python本体と、Pythonでよく利用されるライブラリを
     セットにしたPythonパッケージです。

    View Slide

  20. 今回は、
    Anacondaを導入したAzure環境に
    アクセスしてJupyter Notebookを使ってい
    きます!

    View Slide

  21. (参考)describe:要約統計量
    count :件数
    mean :平均
    std :標準偏差
    min :最小値
    25% :25%点(第1四分位数)
    50% :50%点(第2四分位数、中央値)
    75% :75%点(第3四分位数)
    max :最大値

    View Slide

  22. (参考)平均と中央値(50%点)
    ・平均は少数の外れ値(異常値)に大きな影響を受ける統計量!!
    ・平均は全体の中心を表す統計量としてよく利用されるけど、
     外れ値を含んだデータでは、外れ値に引きずられる可能性があるため
     注意が必要。
    ユーザー スマホゲーム月課金額
    A 200円
    B 50円
    C 300円
    D 250円
    E 600円
    F 5,000円
    平均 :1,067円
    中央値: 275円

    View Slide

  23. (参考)パーセンタイル値
    3kg 4kg 10kg
    7kg 12kg 23kg 28kg 30kg 45kg
    体重
    25%値 50%値 75%値
    パーセンタイル値とは、データを昇順に並べた時の位置を表します。
    ※百分位で位置を表す場合にパーセンタイル値となる。
     データを昇順に並べ等分した時の位置を分位数(quantile)という。
     よく使われるのは4等分する四分位数(quartile)である。
    【四分位数】
    25%値:全データの25%が入る値 第1四分位点(Q1)
    50%値:全データの50%が入る値 第2四分位点(中央値)(Q2)
    75%値:全データの75%が入る値 第3四分位点(Q3)

    View Slide

  24. (参考)箱ひげ図
    Ω
    25%の
    データ
    25%の
    データ
    25%の
    データ
    25%の
    データ
    最大値
    第3四分位
    75%点
    中央値
    50%点
    第1四分位
    25%点
    最小値

    View Slide

  25. これからPythonをはじめるために

    View Slide

  26. 勉強をはじめるためのポイント
    ▶ 書籍やサイトは、できれば新しいほうがよい
    ▶ 書籍の難易度は自分に合ったものを選ぼう
    ▶ オンライン学習サイトもオススメ

    View Slide

  27. 勉強をはじめるためのポイント
    ▶ 躓いたり、悩んだりした時は、
     知っている人に聞くのが、最大の近道!
    ▶ Slack「PyLadies Japan」はメンバーが気軽に
     コミュニケーションを取れる場所です
    ▶ 質問したら、きっと誰かが答えてくれるので、
     是非、一緒にワイワイしましょう。

    View Slide

  28. はじめようPython Life★

    View Slide