べくとりうむ.py Written by TicTak(※現在ブログ工事中のため、見づらい点があり申し訳ないです)

【Pandas vs Numpy】この2つのpythonライブラリの違いを解説します

AI×機械学習 python

こんにちは、TAKです。
今回は、pythonライブラリの「pandas」と「numpy」の違いを解説していきたいと思います。

「どっちも学んだ方が良さそうだけど、今一つ違いがわからない」という方や、「pandasとnumpyは何が違って、どんな時に使えるの?」と疑問に思っている方も多いのではないでしょうか?

そこで今回はpandasとnumpyの概要から、学ぶことで何に活かすことが出来るのかをわかりやすく解説していきます。AIやデータサイエンス関係の勉強を始めたばかりの方も参考にしてみてください。

【こんな人に読んで欲しい記事です】

● pythonライブラリの「pandas」や「numpy」について知りたい方

● AIやDS(データサイエンス)との関係性について理解を深めたい方

以前、僕がTwitterでAIやDSとの関連性について発信したこともあるので、その点についても触れていきたいと思います。

【pythonライブラリ①】pandasを知る

pandasの目的は「データフレーム化」

pandasの大きな役割の一つとしてデータフレーム化があげられます。
これは何かというと、Excelファイルやcsvファイルといった既存ファイルや、SQLのようなデータベースを読み込み、処理しやすいように「データフレーム」として扱うことを意味します。

実際に扱ったことがない方にはイメージしにくいかと思いますが、すごく簡単に言ってしまうと、「Excelみたいなデータをpythonで扱える」ということです。僕はエンジニアではなくコンサルとして仕事をしているので、実務でExcelやcsvファイルを使う機会が多く、とても重宝しています。

つまり、実務でよく使うデータをそのままpythonで連携して扱えるので、pandasさえわかってしまえば、python知識をそのまま実務に活かすことも可能ということです。

ただ、どんなデータ形式でもOKというわけではなく、整然データに代表されるようなテーブルデータ形式で保存しておく必要があります。「整然データ」について知りたい方は、以下の記事を参考にしてみてください。

pandasは「データサイエンス向き」

これを踏まえた上で言えることは、pandasの知識はデータサイエンス領域で活かすことが出来るということです。

なぜなら、データサイエンスの本質が「データ分析を通じた顧客課題の解決」である以上、様々なデータを読み込み分析し、必要に応じて可視化出来るpandasと相性が良いからです。
(本格的に可視化する場合は、別途「matplotlibrary」や「seaborn」の利用がオススメです。)

Kaggleに代表されるデータ分析コンペでも、pandasを使ったデータ読み込みや可視化はよく使うことがあるので、自分の興味がデータ分析やデータの可視化、そしてデータサイエンスにある方は「pandas」から勉強した方が効率的かと思います。

具体的な勉強方法としては、まずは自分のレベルに合った書籍を購入して、じっくり自分のペースに合わせて学んだ方が良いでしょう。オススメ本を2つほど紹介しておきますので、参考にしてみてください。

● 基礎から学びたい方向け → [affi id=31]

● 本格的に学びたい方向け → [affi id=23]

【pythonライブラリ②】numpyを知る

numpyの目的は「処理の高速化」

次に「numpy」について見ていきましょう。
numpyの主な役割の一つとして計算処理の高速化があげられます。

そもそもnumpyというのは、配列計算を高速にすることが出来る機能を持ったライブラリです。
「pythonの標準ライブラリ」にもリストというものがありますが、numpyを使うことでコードがシンプルかつスピーディーになるという特徴を持っているので、numpyの使用が推奨されます。

詳しくは以下の記事で紹介しているので、興味ある方はチェックしてみてください。

numpyについて簡単に言ってしまえば、大量のデータを使う時に役立つツールということです。
ビッグデータを扱うときは計算スピードが非常に重要となり、そのためにnumpyが活きるということですね。

numpyは「AIモデル構築向き」

先ほどのpandasはデータサイエンスと相性が良かったですが、numpyはAIモデルの構築と相性が良いです。

なぜなら、あるタスクを解決するために構築されたAIモデルは、ビッグデータを使って学習させる必要があるためです。AIの仕組みについては以下の記事で紹介しています。

https://vector-ium.com/ai-zero-learn1/

もう少し詳しく解説すると、AIモデルの内部では「入力データ」と「パラメータ」による並列計算が人間には不可能なレベルで大量に繰り返し計算され、より良い予測結果を得られるように「学習」しています。そのため、少しでも高速に計算出来るnumpyの力が必要になるのです。

JDLAが主催するE資格の試験でも、numpyの実装力について頻繁に問われるため、AI実装力をつける観点からもnumpyとの関連性の高さがわかります。

ちなみに、E資格ではAIモデルを「ゼロ」から実装出来るかを問われますが、実務上はTensorflowやPyTorchに代表される「深層学習ライブラリ」を用いて実装することが一般的です(「E資格って何?」という方は下記記事を参考にしてください。)。

最後に、numpyについても具体的な勉強方法を紹介しておきます。

numpyを中心に学びたい方は、先ほど同様に書籍を購入してじっくり学ぶのが良いでしょう。もしE資格やAIエンジニアも視野に入れた勉強をしたい方であれば、独学は難しいのでAIに特化したプログラミングサービスを利用した方が効率的で近道になるかと思います。

● 基礎を学びたい方向け   → [affi id=31]

● E資格を目指したい方向け → [affi id=32]

さいごに

今回はpythonの「pandas」と「numpy」の違いについて紹介してきました。

ここで紹介した内容は、僕が実際にpython初心者からE資格を取得する過程で感じた経験をもとに紹介しているので、実際にはこれ以外の使い方もあるかと思います。

pythonライブラリのpandasやnumpyの「違い」や「何に使えるのか」を教えてくれる情報は意外と少ないので、初心者の方や違いがわからず悩まれている方は是非参考にしてみてください。

少しでも自分の興味や効率的な勉強方法に繋がればうれしいです。

ではまた~。