どらちゃんのポッケ

R・統計・技術メモなど勉強ログ置き場

pythonによるデータ分析入門を写経していく(その1)

pythonによるデータ分析入門

以下のようなモチベーションで、この本を読んで、写経していくことにする

  • R以外の統計解析・機械学習の引き出しを増やしたい
  • pythonを使えるようになりたい

本の環境はpython2系で行っていたが、私はpython3系でとりあえずスタートしてみる。メモ。

このシリーズは何回になるのだろうか・・・。

ipythonとpandasの起動確認

  • ipython3 --pylab
    • pylabモードとは?
    • matplotlibをipythonで実行するためのモード?
    • ipythonで起動したあとでモジュールを読み込むのとの違いは何でしょうか?

動作確認

import pandas
plot(arange(10))

f:id:sleeping_micchi:20140403002428p:plain

データの読み込み

In [9]:path ='usagov_bitly_data2012-03-16-1331923249.txt'
In [10]:open(path).readline()
Out[10]: '{ "a": "Mozilla\\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\\/535.11 (KHTML, like Gecko) Chrome\\/17.0.963.78 Safari\\/535.11", "c": "US", "nk": 1, "tz": "America\\/New_York", "gr": "MA", "g": "A6qOVH", "h": "wfLQtf", "l": "orofrog", "al": "en-US,en;q=0.8", "hh": "1.usa.gov", "r": "http:\\/\\/www.facebook.com\\/l\\/7AQEFzjSi\\/1.usa.gov\\/wfLQtf", "u": "http:\\/\\/www.ncbi.nlm.nih.gov\\/pubmed\\/22415991", "t": 1331923247, "hc": 1331822918, "cy": "Danvers", "ll": [ 42.576698, -70.954903 ] }\n'

In [18]: records = [json.loads(line) for line in open(path)]

リスト内包

    >>> aray = [1, 2, 3]
    >>> [x*2 for x in aray]
    [2, 4, 6]
  • やっていること
    1. arayの配列から最初の値をxに代入し、x*2を実施。その結果をアウトプットの配列に追加
    2. arayの配列から2つ目の値をxに代入し、x*2を実施。その結果をアウトプットの配列に追加
    3. ・・・(繰り返し)・・
    4. 結果の配列を返す

Rでいうapply関数っぽい

配列へのアクセス

    In [23]: records[0]['tz']
    Out[23]: 'America/New_York'

    In [24]: print  records[0]['tz']
      File "<ipython-input-24-6121f27427c5>", line 1
        print  records[0]['tz']
                     ^
    SyntaxError: invalid syntax

    In [25]: print(records[0]['tz'])
    America/New_York

Rと同じ。ただし、pythonは先頭が0、Rは先頭が1となる。注意。

python2.x VS python3.X

参考:http://www.python-izm.com/contents/basis/difference_in_version.shtml

  • python3系ではprint関数
    • 2:print hoge
    • 3:print(hoge)
  • python3系ではunicode型のみ
    • python3系でu'hoge'とする必要ない