ダウンロード サンプルファイル (741.0 B)
データ解析でよく使われるPythonライブラリ
データ解析でよく使われるPythonの下記のライブラリをそれぞれ紹介します。
- NumPy(数値計算)
- pandas(データ解析)
- matplotlib(データ可視化)
NumPy(数値計算)
NumPyは数値計算をPythonよりも高速に行うことができるライブラリです。Pythonはインタープリタ型のスクリプト言語ですので、C言語のような低級言語と比べるとパフォーマンスは良くありません。NumPyは内部実装でC言語を利用することにより高速化しています。例えばPythonのループではなくCのループを用います。また、メモリ上で連続した領域に格納されるためCPUを効率よく使用できます。
下記のコードでは、Pythonの標準機能での計算とNumPyによる計算をそれぞれ行っています。
import random
import numpy as np
%precision 3
n = 10000
x = [random.random() for _ in range(n)]
y = [random.random() for _ in range(n)]
x[:3],y[:3]
z = [x[i] + y[i] for i in range(n)]
print("Python標準機能での計算:")
%timeit [x[i] + y[i] for i in range(n)]
xnp = np.array(x)
ynp = np.array(y)
znp = xnp + ynp
znp[:3]
print("NumPyによる計算:")
%timeit xnp + ynp
結果は下記のように表示されます。計算結果は同じですが、計算結果は2桁以上の差でNumPyが速い結果になっています。
Python標準機能での計算: 995 µs ± 12.2 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) NumPyによる計算: 4.76 µs ± 59.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
pandas(データ解析)
データ解析向けのライブラリであるPandasはデータフレームを扱うことができます。データフレーム(data frame)は、表形式のデータを抽象化したオブジェクトです。スプレッドシートにおける1つのシート、あるいはデータベースにおける1つのテーブルを、まるごと1つのオブジェクトにしたものです。
表形式のデータは縦・横の2次元の配列です。「配列の配列」によりデータフレームを作成できます。
import pandas as pd
df = pd.DataFrame({'男': [11, 21, 31],
'女': [13, 23, 33]},
index=['東京', '大阪', '福岡'])
df
Jupyter NotebookではPandasのデータフレームは、テーブルとして表示します。上記の実行結果は下記のように表示されます。
Pandasのデータフレームを利用することにより、Pythonによるデータの加工や集計が効率的にできるようになります。
matplotlib(データ可視化)
MatplotlibはMATLAB風の描画を行うライブラリです。MATLABは数値計算の特にアカデミックな分野ではデファクトとして使われている描画ツールです。
Jupyter NotebookではMatplotlibを用いることで、出力したグラフをNotebook内に表示させることが可能になります。'%matplotlib inline'という行を記載する必要があります。
import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.arange(0,20,0.1) y = np.sin(x) plt.plot(x,y)
上記の実行結果は下記のように表示されます。
まとめ
Pythonによるデータ解析の場面でよく使われるツールであるJupyter Notebookを中心にデータ解析環境を整える方法を紹介しました。
次回以降は今回紹介したツールやライブラリを用いながら具体的なデータ解析の手順など解説を予定しています。
- 修正履歴
-
- 2018/07/05 11:39 サンプルファイルを更新しました。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- この記事の著者
-
WINGSプロジェクト 西 潤史郎(ニシ ジュンシロウ)
< WINGSプロジェクト について>有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 山田...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
