コンピューターシステム株式会社

技術BLOG

Python使ってデータ分析(前編)

言語 2019/06/28 中部担当

こんにちは。中部営業所のpopoです。

popoは主にデータ分析の業務に携わっているのですが、前々から Python使ってみようかなと思いつつ後回しになっていました。世間は機械学習ブームも手伝って Python人気が急浮上ですね。

今回良きタイミングなので、Pythonを触ってみようと思います。

 

この記事では広く浅くをモットーに次のような構成で進めていきます。

  1. Python 本体のインストール
  2. Pythonを触ってみる
  3. パッケージ管理ツール(pip)
  4. データ解析ライブラリ

Python 本体のインストール

今回は Windowsに Python3.6をインストールしてみたいと思います。2019年3月3日現在の最新バージョンは v3.7.2なんですが、TensorFlow(*1) が v3.6までしか対応していないので、v3.6をインストールしたいと思います。

*1)  TensorFlow(テンソルフロー)とは、Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリである。出典:ウィキペディア

ざっと調べてみたところAnacondaとか Jupyterとか、Pythonと周辺ライブラリ、その他ツール類をまとめてくれているパッケージが存在しているみたいですが、なにせまるっきり初めてなので、後でごちゃごちゃになるのを防ぐ意味でも素のPythonから入れていこうと思います。

Pythonのホームページから辿れるインストールの解説ページ[https://www.python.jp/install/windows/install_py3.html]を参考にしてインストールを行います。まずはPython v3.6のページ[https://www.python.org/downloads/release/python-368/]から 「Windows x86-64 executable installer」を選んでダウンロードしてください

インストール時に以下の画面で「□ Add python 3.6 PATH」にチェックを入れてください。PATHが自動で追加されます。チェックを忘れた場合はインストール完了後に Pythonのホームディレクトリと ホームディレクトリ配下の ScriptディレクトリへPATHを通せば問題ありません。

インストールは成功したようですが、なにやらPCの設定を変更しろと出ています。MAX_PATHを変更しろと書いてます。とりあえずクリックしてみます。

メッセージが消えました。。大丈夫かなぁ。

私の環境では「C:\Users\《ユーザ名》\AppData\Local\Programs\Python\Python36」にインストールされました。

環境変数も確認してみます。ちゃんと PATHも追加されたようです。

Pythonを触ってみる

インタプリタ起動

Pythonのホームページから辿れるチュートリアル[https://docs.python.org/ja/3.6/tutorial/index.html]を参考にして Pythonを触ってみます。チュートリアルの最初に「1. やる気を高めよう」ってのがあって、なんかいいコミュニティだなと感じました。PowerShell もしくはコマンドプロンプトを起動して「python」と打ってみましょう。

PS C:\Users\popo> python
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32 Type
>>>

どうやら上手く動いてくれているようです。Pythonから抜けるときは [Ctr]+[z][Enter]で抜ける事が出来ます。

まずは、簡単なところからスタートと言う事で、電卓代わりにしてみます。四則演算は +, -, *, / みたいです。余剰を求めるのは % 、小数点以下を切り捨てて整数としてくれるのが // 、べき乗は **  らしいです。

>>> 100 - 20 * 4
20
>>> (100 - 20) * 4
320
>>> 8 / 5
1.6
>>> 8 % 5
3
>>> 8 // 5
1
>>> 2 ** 7
128

お決まりのアレも行っておきましょうか。

>>> print('Hello World!')
Hello World!
>>>
>>> a = 'Hello World!'
>>> a
'Hello World!'
>>>

動いてくれているみたいです。

リスト型とタプルと集合に辞書型

さて、Pythonの構文に関して詳しくはPythonのチュートリアルのページ[https://docs.python.org/ja/3/tutorial/index.html]を確認していただくとして、ここでは後から利用するデータ解析ライブラリの予備知識としてリストやタプルに関してさらっと見ていきます。

Pyhtnでは、コンマ区切りの値 (要素) の並びを角括弧で囲んだものを配列(リスト型)としています。また、異なる型をリストに収める事も可能です。

>>> a =  ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> a
 ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> b = [1, 'a', False]
>>> b
[1, 'a', False]

プラス記号でリストを連結することも可能です。

>>> a + b
['a', 'b', 'c', 'd', 'e', 'f', 'g', 1, 'a', False]

Pyhtnでは、コロンを使う事によって複数要素を取り出すことができます。スライスと呼んでいるようです。

>>> a[2:5]
['c', 'd', 'e']
>>> a[2:]
['c', 'd', 'e', 'f', 'g']
>>> a[:]
['a', 'b', 'c', 'd', 'e', 'f', 'g']

スライスは代入にも使えます。

>>> a[1:4] = ['B', 'C', 'D']
>>> a
['a', 'B', 'C', 'D', 'e', 'f', 'g']

 

また、配列によく似たタプルというものが存在します。タプルはコンマで区切られたいくつかの値からなり、丸括弧で括って表されます。

>>> x = 100, 200, 'popo'
>>> x
(100, 200, 'popo')

タプルはネストすることも可能だし、リストを含むこともできます。

>>> y = x, (1, 'next'), ['a', 'b', 'c']
>>> y
((100, 200, 'popo'), (1, 'next'), ['a', 'b', 'c'])

タプルと配列は似ていますが、使い方は異なる様です。C言語で言うところのメンバ名を持たない構造体みたいな感じです。

タプルはアンパックすることも可能です。(リストでもアンパックは可能です)

>>> x0, x1, x2 = x
>>> x0
100
>>> x1
200
>>> x2
'popo'

Python には集合というデータ型があり、重複する要素をもたない、順序づけられていない要素の集まりだそうです。集合は中括弧もしくは set()関数を使って生成します。

>>> w = {'月', '月', '火', '水', '木', '金', '金', '土', '日'}
>>> w
{'土', '水', '木', '金', '日', '火', '月'}
>>> i = set('1234567234534')
>>> i
{'1', '2', '7', '5', '6', '3', '4'}

あともう一つ、辞書型と呼ばれるものがあります。辞書は順序付けのされていない キー(key): 値(value) のペアの集合であり、キーが (辞書の中で)一意でければならないらしいです。所謂、連想配列ですね。

>>> t = {'日本': 81, 'アメリカ': 1, 'イギリス': 44}
>>> t
{'日本': 81, 'アメリカ': 1, 'イギリス': 44}
>>> t['フィジー'] = 679
>>> t
{'日本': 81, 'アメリカ': 1, 'イギリス': 44, 'フィジー': 679}

パッケージ管理ツール(pip)

Pythonでパッケージ管理するためのpipについて少しお話ししたいと思います。

pipに関してはこちらのページ[https://docs.python.org/ja/3.6/installing/index.html]を参考にしました。

Pythonではバージョンによって推奨されるパッケージ管理ツールがいくつもあるらしいのですが、v3.4からは pipが推奨されているみたいです。まずは、pipが動くか確認してみます。

PS C:\Users\popo> pip

Usage:
  pip  [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  :
  :

動いているようです。

どんなパッケージが管理下に置かれているか確認してみます。 pip list で現在 pipで管理されているライブラリの一覧が表示されます。

PS C:\Users\popo> pip list
Package    Version
---------- -------
pip        18.1
setuptools 40.6.2
You are using pip version 18.1, however version 19.0.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

pipの管理下に入っているパッケージは pip自身と setuptoolsみたいですね。

pipの新しいバージョンが利用可能なのでアップグレードを検討してくれというメッセージが出てますが、2019年3月3日現在、v19.0.3.のpipでは TensorFlowのインストールが出来ないためアップグレードは行いませんでした。

さて、長くなってきましたので今回はここまでとします。

次回は、最後のデータ解析ライブラリについて、書きたいと思いますので宜しくお願いいたします。