ビッグデータを使って統計分析がしたい! 【データ分析編①】

こんにちわ。井上です。

前回のブログでは、グラフが表示されることを確認しました。
そろそろデータの分析をしていきたいと思ったのですが、いつも仕事で使っているJava、PHPなどの言語とはだいぶ趣が異なっていて、とっつきにくいです。

そこで今回は、これからデータ分析をするにあたって、必ず使うパッケージについて簡単に説明していきたいと思います。

データ分析に必要となりそうなパッケージ

  • NumPy
  • pandas

以上の2つがあればほとんどの事はできるようです。
どちらも初めて聞く名前です。
それぞれを少し詳しく見ていこうと思います。

NumPyとは

NumPyは、プログラミング言語Pythonにおいて数値計算を効率的に行うための拡張モジュールである。
効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、
それらを操作するための大規模な高水準の数学関数ライブラリを提供する。

ウィキペディアより

このあと説明していきますが、Numpy ndarrayという多次元配列オブジェクトがあり、データをそこにいれて計算等をすることができます。

ndarrayの使い方

ndarrayを生成する関数には、以下のような種類があります。

array 配列型のデータを受けてndarrayを生成する。ndarrayの要素の型(dtype)は推測されたもの、または明示的に指示されたものを使う。
asarray arrayと同様にdnarrayを生成する。
arange Pythonのrange関数と同様。
ones 指定されたサイズのndarrayを、指定されたdtypeですべて「1」で生成する。
zeros 指定されたサイズのndarrayを、指定されたdtypeですべて「0」で生成する。
empty 指定されたサイズのndarrayを生成する。ただし各要素は初期化されていない。

実際のプログラムを見てみましょう。

data1 = [1.3,  2,  3,  4,  5]
arr1 = np.array(data1)
print (arr1)
#実行結果:[ 1.3  2.   3.   4.   5. ]

arr2 = np.arange(5)
print (arr2)
#実行結果:[0 1 2 3 4]

arr3 = np.ones(4)
print (arr3)
#実行結果:[ 1.  1.  1.  1.]

arr4 = np.zeros(3)
print (arr4)
#実行結果:[ 0.  0.  0.]

NumPyのデータ型

データ型には以下のものがあります。
あまりJavaと変わらないですね。

int8, int16, int32, int64 符号あり/なし整数型(数字はビット数)。
float8, float16, float32, float64 浮動小数点型。
bool 真偽値型。trueまたはfalse。
object Pythonオブジェクト型。
string_ 固定長文字列型。
unicode_ 固定長ユニコード文字列型。

pandasとは

データ解析を支援する機能を提供するライブラリである。特に、数表および時系列データを操作するためのデータ構造と演算を提供する。

ウィキペディアより

pandasには、SeriesDataFrameというデータ構造があります。
この2つのデータ構造によってデータの整形が容易になっています。

少し詳しく見てみましょう。

SeriesとDataFrame

Series 1次元の配列のようなオブジェクト。シリーズにはデータ配列とそれに関連付けられたインデックスというデータラベルの配列が含まれる。
DataFrame テーブル形式のスプレッドシート風のデータ構造を持ち、順序付けられた列を持っている。各列にはそれぞれ別の型を持たせることができる。データフレームは行と列それぞれにインデックスを持っている。

実際のプログラムを見てみましょう。

#Series
sr = Series([1,  2,  3,  4])
print (sr.values)
#実行結果:array([1,  2,  3,  4])

print (sr.index)
#実行結果:Int64Index([0,  1,  2,  3])

#DataFrame
data= {'no':['A001',  'B001',  'C001'], 
       'name':['Ace',  'Bk',  'Const'], 
       'price':[100,  150,  200]
       }
fr = DataFrame(data)
print (fr)
#実行結果:
#    name    no  price
# 0   Ace  A001    100
# 1    Bk  B001    150
# 2 Const  C001    200

まとめ

いかがでしたでしょうか。
今回紹介した中でも、特にDataFrameはデータ分析する際に必須となりそうです。
次回はもう少し詳しく見ていきたいと思います。

それではまた次回。

《関連記事》
ビッグデータを使って統計分析がしたい! 【準備編】
ビッグデータを使って統計分析がしたい! 【データ取得編】

ビッグデータを使って統計分析がしたい! 【グラフ表示編】

記事をシェア
MOST VIEWED ARTICLES