• 会員限定
  • 2022/04/21 掲載

Python入門(後編)NumPy、Pandas、Matplotlibなどのデータ処理ライブラリ使い方

連載:G検定対策講座

  • icon-mail
  • icon-print
  • icon-hatena
  • icon-line
  • icon-close-snsbtns
記事をお気に入りリストに登録することができます。
前編では、AIの開発やデータ分析で大活躍するPythonの特徴や人気の理由、Pythonに付属する標準ライブラリの活用法を紹介しました。後編となる本記事では、機械学習における重要なタスクである「データの処理と可視化」に特化した専門ライブラリ(NumPy、Pandas、Matplotlib)を解説します。さらに、Pillowライブラリを用いた画像処理の具体的なイメージもお伝えします。

執筆:GRI データ分析官・講師 ヤン・ジャクリン

執筆:GRI データ分析官・講師 ヤン・ジャクリン

1987年生、北京生まれ、米国東海岸出身(米国籍)、小学高学年より茨城県育ち、東京大学理学部卒、東京大学大学院理学系研究科博士課程修了(理学博士)、高エネルギー加速器研究機構にて博士研究員(素粒子物理学)を経て、2017年7月より現職。
主要実績:
2010-17 国際学会の発表15件、日本物理学会など国内学会の発表5件 Physics Review D, Physical Review Letters等の科学誌への投稿多数
2018〜 データサイエンスの講座を開設、企業向け研修サービスを開始
2019〜 Tableau Desktop Certified Associate 認定資格習得
研修内容:G検定、機械学習、深層学習、Pythonプログラミング、データ加工、可視化分析(Tableau) 他
得意技:驚異的な行動力と素粒子をも通さない隙のない話術

photo

※本記事は『ディープラーニングG検定(ジェネラリスト)最強の合格テキスト[明瞭解説+良質問題]』をもとに再構成したものです。

機械学習とデータ処理に必須の外部ライブラリ

 ここでは、外部ライブラリのうち、分析を行う前の「データ処理」の部分で最も頻繁に利用するものを紹介します。なお、機械学習におけるデータ処理の大切さについては、こちらの記事を参照してください。

NumPy
 NumPyは、多次元配列データを高速に演算することを得意とするライブラリです。ビッグデータを処理する上で演算速度は重要です。画像処理や機械学習の高度なアルゴリズムの多くは、仕様上、入力データをいったんNumPyの配列に変換し、それを引数として受け取ることが前提となっています。

Pandas
 Pandasは表形式データの処理に特化したライブラリです。分析対象となるデータの多くは表形式データ(構造化データ)です。皆さんがよく使うExcel、CSV、SQL型データベースなどが典型例です。Pandasには表形式のデータを柔軟に処理するための機能が豊富にそろっています。以下は、その一例です。

  • データの読み込み・書き出し
  • 特定の条件を満たすデータの検索・抽出・置換
  • データの結合や分割
  • さまざまな統計処理
  • 欠損値の判定と処理

Matplotlib
 Matplotlibは、データを可視化するためのライブラリです。分析プロセスの中で、データを効果的に「見える化」することによって、データの特徴、傾向、問題点などを把握でき、分析手法を的確に選べることができます。ヒストグラム、折れ線グラフ、円グラフ、散布図など多様な表現が可能で、書式設定に対するカスタマイズ性も優れています

機械学習の実装と直接関わるライブラリ
 上記以外に、機械学習を実装するときに使うPythonのオープンソースのライブラリもあります。代表的なものがscikit-learnです。

 scikit-learnは開発が活発に行われているため、改善が高速に進み、サンプルコードやサンプルデータがウェブ上で数多く見つかります。そのため、scikit-learnをインストールすれば、すぐに機械学習を体験することができます。さまざまな種類の機械学習の手法が存在する中で、どのアルゴリズムも似たような記述で利用可能であることも、scikit-learnの大きなメリットといえます。

 機械学習の一種であるディープラーニングに関しても、Pythonのライブラリやフレームワークが充実しています。有名なものとして、TensorFlowやそのラッパーであるKerasPyTorchChainerCaffeなどが挙げられます。

外部ライブラリの使い方

 前編でもお伝えしたように、ライブラリを活用することで、Pythonのシンプルさを享受しながら裏ではデータを高速に処理できます。

 Pythonはスクリプト言語であるため、コンパイル言語に比べて処理速度が劣ります。しかし、Pythonのライブラリの多くはC言語やFortranなどの高速なコンパイル言語で記述されていますので、データ処理速度の心配は無用です。

 たとえば、数値演算は「ネイティブ」のPythonだけでもできますが、高速な言語で記述されたライブラリ(たとえばNumPy)を活用すると計算が格段に速くなります。ライブラリ利用者はPythonのコードの中でライブラリを呼び出すだけなので、C言語を意識する必要はありません。

ライブラリのimport
 ライブラリを使うためには、import文でメインプログラム中に呼び込みます。何通りかの書き方があります。典型的なパターンは以下です。

from パッケージ名 import モジュール名・クラス名・関数名

 コード中で頻繁に書くライブラリの名称は、importする際にエイリアス(略名)を宣言すると便利です。たとえば、次はNumPyをエイリアス「np」としてimportする例です。略名は慣習に従うことが多いです。

画像
NumPyをエイリアス「np」としてimportする例

 以降では、前編で紹介した「Jupyter Notebook」に実装したコード例を交えて、NumPy、Pandas、Matplotlibのそれぞれの用途例を示します。

【次ページ】PandasとMatplotlibの使い方

関連タグ

関連コンテンツ

あなたの投稿

    PR

    PR

    PR

処理に失敗しました

人気のタグ

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます