Pythonはデータ分析・AI開発において、多様なライブラリ・フレームワークに対応しており、注目を集めているプログラミング言語です。
とくにpythonとデータ分析は相性がよく、ライブラリを活用することで、数十行程度のシンプルなコードで高度なデータ分析が実現できるため、ライブラリの学習は必要不可欠です。
中でも、数値計算に特化したライブラリで、数値計算の処理速度の向上やコードの簡素化ができるNumpyはAI開発や機械学習でよく活用されています。
とはいえ、世の中にはNumpyの学習教材が溢れており、何をどのような本で学習を始めてよいか迷っている方もいらっしゃるのではないでしょうか?
そこで本記事では現役データサイエンティストとして日々データ分析に携わっている経験をもとに、Numpyを学習する際のおすすめの参考書を詳しく解説をしていきます。
監修者
經田 原弘
東京大学大学院新領域創成科学研究科複雑理工学専攻修了。大学時代は3次元の医療データの平滑化処理を研究テーマとし、大学院時代はJAXAと協業し、月探査機かぐやの衛星データから、月面上の水の存否について調査していた。新卒では株式会社リクルートにてレコメンドシステムの開発等に従事し、現在は製造業系スタートアップにてデータサイエンティストとして勤務。応用情報技術者試験・E資格合格者。
Numpyとは?
まずはNumpyとは一体なにで、学ぶことでどんなメリットがあるかの確認から始めていきましょう。
Numpy(ナンパイ)はPythonで数値計算を行うためのライブラリで、Pythonのデータ分析・機械学習でよく活用されるライブラリのひとつです。Pythonのデータ分析・機械学習で活用されるその他の重要ライブラリは主に以下の4つです。
ライブラリ | 機能 |
---|---|
pandas | データ処理においてデータの操作・加工・集計・可視化などを行う |
Numpy | 数値計算において高速で効率的な配列処理を行う |
Matplotlib | さまざまなグラフを描画を行う |
scikit-learn | 機械学習のモデル構築や評価、データの前処理などを行う |
とくに、Numpyはデータ分析、機械学習、画像処理、信号処理、統計解析などの分野で広く使用されています。
さらに、Numpyはほかのライブラリやフレームワークと組み合わせて使用することで、より高度な数値計算やデータ分析を行うことができるので、多くのデータサイエンティストがNumpyを活用しています。
データサイエンティストがNumpyを学習するメリット
データサイエンティストがNumpyを学習するメリットは主に以下の2つがあるといえます。
- ループ文を削除して数値計算の処理速度の向上・コードの簡素化ができる
- AI開発や機械学習に応用できる
メリット①:ループ文を削除して数値計算の処理速度の向上・コードの簡素化ができる

PythonはC言語やJAVAと比較してループ処理が非常に遅いというデメリットがありますが、Numpyを使用することでfor文などのループ文を削除できるので、Pythonの標準機能よりも高速で効率的に数値計算の処理ができます。
たとえば、Pythonのリスト活用すると、2つのベクトルの要素ごとの和を計算する場合、for文を使う必要があります。
a = [1, 2, 3]
b = [4, 5, 6]
# 要素ごとの和を計算する
result = []
for i in range(len(a)):
result.append(a[i] + b[i])
print(result) # [5, 7, 9]
同じ計算をNumpyを使ってループ文を使わないコードで書く場合、次のようになります。
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 要素ごとの和を計算する
result = a + b
print(result) # [5 7 9]
このように、Numpyではループ文を削除することで、処理速度を向上させることができます。
さらに、ループ文を削除することで、コードの簡素化ができます。これにより、コードの可読性が向上したり、メンテナンスが容易というメリットもあるため、データサイエンティストがNumpyを学習するのはメリットになるといえるでしょう。
メリット②:AI開発や機械学習に応用できる

AI開発や機械学習では大量のデータを処理し、高速に演算を行う必要があります。
Numpyは高速な数値演算を行うライブラリなので、多次元配列の操作や線形代数の演算を簡単に行うことができます。そのため、AI開発や機械学習でモデルの実装するときにNumpyが非常に有効です。
たとえば、機械学習においてよく使用されるモデルであるSVMモデル(サポートベクターマシン)を実装するときNumpyを活用します。
Numpyを活用することで、カーネル関数を使って入力データとサポートベクターとの類似度を計算することができるようになります。
このほか、モデル作成するうえで欠かせない特徴量の生成やパフォーマンスの最適化においてもNumpyは活用されているので、データサイエンティストにとって必要不可欠なライブラリといえるでしょう。
Numpyでできること
ここからはNumpyでできることをより具体的に見ていきましょう。
活用例①:多次元配列を活用した処理
Numpyは多次元配列を扱うことができるため、データ処理や機械学習の場面でよく使われています。
たとえば、多次元配列を活用する処理には以下のようなものがあります。
活用場面 | できること |
---|---|
データの解析 | 多次元配列を使用して、データの平均値、分散、標準偏差などの統計情報を計算することができる |
機械学習の実装 | 多次元配列を使用して、ニューラルネットワークの重みやバイアスを表現することができる |
データの変換 | 多次元配列を画像データに変換して、画像処理を行うことができる |
高速な演算 | 行列演算やテンソル演算など線形代数の計算ができる |
上記の活用場面はほんの一例であり、ほかにもデータ分析・AI開発・機械学習で活用できる処理が多くあります。
活用例②:フーリエ変換を行う
Numpyは高速な演算速度を利用してフーリエ変換を行うことができます。フーリエ変換は音声認識、画像処理、信号処理、通信など、さまざまな分野で活用されています。
たとえば、以下のようなときフーリエ変換を活用しています。
- 音声信号処理
音声信号を周波数ドメインで分析するためにフーリエ変換が使用されます。これにより、特定の周波数帯域での音量の変化を検出したり、異常な音を検出したりすることができます。
- 画像処理
画像を空間領域から周波数領域に変換することで、画像の周波数成分を分析することができます。これにより、画像の特徴抽出、フィルタリング、ノイズ除去などができます。また、画像圧縮や画像認識にも応用されています。
上記のほかにもフーリエ変換はさまざまな処理で活用されています。さらに、Numpyは多くのPythonライブラリで利用できるので、フーリエ変換を行うとき、ほかのライブラリとの連携がしやすいというメリットもあります。
Numpyを学習する参考書の選び方
Numpyを学べる本は非常に多く出版されています。
自分に適した参考書を見つけるために、「選び方」を確認しておきましょう。まずは参考書を選ぶ際に必ずチェックしておきたい「3つのポイント」をご紹介します。
- 自分のレベルに合った内容かどうか
- ほかのライブラリとの連携についても学べる
- サンプルコードが豊富で実務で活用しやすい
自分のレベルに合った内容かどうか

Numpyの学習本は数多くあり、超入門レベルから専門技術書レベルまでさまざまな本が売られています。
初学者向けと謳いながらも、数学・統計などの関連知識を要したり、専門的な説明が多い本もあり、自身のレベルと参考書のレベルとマッチしているかをよく吟味する必要があります。
たとえば、Numpyの初心者向けの参考書では、配列の操作、スライシング、インデックス参照や操作方法などNumpyの基礎知識を中心に学習します。
一方、上級者向けの参考書では、CythonやNumbaなどのNumpyを高速化するためのライブラリの使い方・配列操作の最適化・メモリ使用量の最適化などを学習できます。
自身のNumpyスキルを判断するヒントとして、編集部ではNumpyスキルを3段階に分けた表を作成しました。
Numpyのレベルとスキルセット
レベル | できること |
---|---|
初級レベル | ・配列の形状を変更できる ・配列の算術演算やブロードキャストを利用できる ・配列の要素をスライシングやインデックス参照で抽出できる |
中級レベル | ・配列の転置や結合などの形状操作ができる ・配列の要素を条件に基づいてフィルタリングできる ・ユニバーサル関数を利用した高速な要素演算ができる |
上級レベル | ・高度な最適化テクニックを使い、高速な計算を行える ・CythonやNumbaなどのNumpyを高速化するライブラリを活用できる ・配列操作において、メモリ使用量の最適化や並列処理を行うことができる |
たとえば、初学者でブロードキャストやスライシングで学習が止まっている方は、ほかのライブラリの連携や最適化の前にNumpy配列の学習から始めたほうが効率の良い学習になります。
このように自身のNumpyレベルを確認しながら、ひとつひとつを正しい順番で段階的に学んでいくと学習効率がよくなることが期待できます。
まずは上記表を参考に現在のNumpyスキルを把握して、適切なレベルの参考書を選びましょう。
ほかのライブラリとの連携についても学べる

Numpyはほかのライブラリと組み合わせることで、より高度な数値計算やデータ分析ができるようになります。
たとえば、Numpyをほかのライブラリと連携すると以下のようなことができます。
ライブラリ | Numpyと連携してできること |
---|---|
Pandas | データベースからデータを読み込み、Numpy配列に変換した後、 Pandasデータフレームに変換し、データの前処理や分析を行う |
Matplotlib | Numpy配列からグラフを作成し、データの分布や関係性をグラフ化する |
Scikit-learn | Numpy配列から特徴量を抽出し、機械学習アルゴリズムを適用する |
このほかにもCython・CUDA・Daskなどさまざまなライブラリと連携することができます。
Pythonでできることの幅が広がったり、効率的にPythonを扱えるようになるので、ほかのライブラリとの連携を学べる参考書を選ぶことは重要なポイントといえます。
サンプルコードが豊富で実務で活用しやすい

3つ目のポイントはサンプルコードが豊富で実務で活用しやすいことです。
初学者にとっては、Numpyの基本機能や使い方がわからないことが多く、どのように利用するかがわかりにくいことがあります。そこで、サンプルコードを参考にして、Numpyの基本機能や使い方について理解を深めることが重要です。
たとえば、Numpyの機能である「スライシング」を文章で説明すると、以下のようになります。
スライシング:配列の中において、特定の範囲の要素を抜き出す際に利用する機能
次にサンプルコードで具体例を用いた解説を見ていきましょう。
スライシングにより特定の範囲の要素を取得することができます。下記のprint(a[1:, :2]) は「1行目から最後の行まで、1列目から2列目までの範囲を取得する」というコードで、”:”を使用することで、範囲を指定することができます。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 1行目から最後の行まで、1列目から2列目までの範囲を取得する
print(a[1:, :2]) # [[4 5] [7 8]]
# 全ての行に対して、2列目を取得する
print(a[:, 1]) # [2 5 8]
サンプルコードを用いることで、どのような記号がどのような意味を持っているのかが明確になるため実務で活用しやすくなります。
また、サンプルコードを実際に手を動かして入力することで、参考書で学習した内容が理解できているかどうか明確になり、効率的に学習を進めることができます。
Numpyを学習するおすすめ参考書6選
ここからは編集部が厳選したNumpyを学べる良書を紹介していきます。
【Numpy学習前の基礎固めにおすすめ】Pythonスタートブック
Python初学者がいきなりNumpyの学習を始めると専門用語も多く、つまずく場合もあるかもしれません。
そのため、Pythonの基礎知識に不安のある方は本書でPythonの基礎固めをしましょう。
本書はPythonの特徴や活用方法の説明にはじまり、データ構造や条件分岐など、Pythonでプログラム作成するための必須知識まで順序立てて体系的に学ぶことができます。
体系的に学ぶことで、ひとつひとつの知識を関連付けて学べるので、学習内容が頭に残りやすくなります。そのため、Numpyの学習に進んだとき、Pythonの基礎知識で手戻りせずに学習を進めることができます。
【初級者におすすめ】Pythonによるデータ分析入門 第2版 ―Numpy、pandasを使ったデータ処理
本書はPythonの基礎知識を解説したのち、 ①Numpyの基本的な使い方 ②ほかのライブラリと連携させたデータ処理・グラフ化の手法 の2つを学べるので、Numpy初学者の方に非常におすすめです。
Numpyについては、配列の作成・スライス・演算など基礎内容から、行列計算・乱数生成・フーリエ変換処理など高度な数値計算に必要な内容まで幅広くカバーしています。
そのため、本書1冊でNumpyの基礎から応用まで網羅的に学習できるといえます。
また、pandasを連携させたデータ処理の手法やMatplotlibと連携させたグラフ化の手法なども学習できるので、実務ですぐに活用できるNumpyスキルを身に付けることができます。
さらに、CSVファイルからデータを読み込み、データの前処理や集計を行う方法など実践的な例題も多くあるため、手を動かしながら学習をすすめたい方にもおすすめです。
【中級者におすすめ】Pythonデータサイエンスハンドブック ―Jupyter、Numpy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習
本書はPythonのデータ分析と機械学習を行うときに活用するライブラリを中心に解説しているので、今後Pythonでデータ分析・機械学習のスキルを高めていきたい方に非常におすすめです。
Numpyを使った配列作成・ブロードキャスト・スライシング・行列計算などの基本知識に加えて、Numpyを使った高度な数値計算の手法も学習できます。
たとえば、音声信号処理・時系列データ解析で用いられるフーリエ変換、統計解析・機械学習で用いられる乱数生成なども学ぶことができ、データ分析・機械学習の応用に役立ちます。
また、プログラムの解説にはJupyter Notebookを使用しており、読み手が手軽に実行環境を構築できるようになっているので、実際に手を動かしながら学習できます。
【上級者におすすめ】現場で使える!Numpyデータ処理入門 機械学習・データサイエンスで役立つ高速処理手法
本書はNumpyのデータ処理に必要な線形代数、確率分布など数学や統計学の基礎知識も併せて学習できるので、Numpyを使ったデータ処理を本質から理解したい方に非常におすすめです。
Numpyについては配列作成・ブロードキャスト・スライシング・行列計算などの基本知識からNumpyを使った高度な数値計算の手法までNumpyについて基礎から応用まで学習できます。
とくに、機械学習にNumpyを応用するための手法を中心に解説しているので、Numpyと機械学習の橋渡しとして本書を活用できます。
本書の前半部分ではPythonに関する基礎知識も解説しているので、Python初学者でもつまずきにくくなっているので、手戻りなく学習を進められるでしょう。
【中級~上級者向け】Numpyによるデータ分析入門 ―配列操作、線形代数、機械学習のためのPythonプログラミング
本書はNumpyを使った配列操作や線形代数の基礎から、機械学習におけるNumpyの使い方までを解説しているので、本書1冊でデータ分析・機械学習の基礎を固めることができます。
たとえば、線形回帰を使った価格予測モデルの作成方法やクラスタリングの手法などデータ分析・機械学習に欠かせないNumpyスキルを学ぶことができます。
また、実際のデータをもとに解説が進むため、学習内容をすぐに実務で活かすことができます。
ただし、Pythonの基本文法や統計学の知識を必要とする解説も多く、Python初学者はつまずく可能性もあるため、Pythonや統計学の基礎知識がある方に非常におすすめです。
【中級〜上級者向け】現場で使える! Python科学技術計算入門 Numpy/SymPy/SciPy/pandasによる数値計算・データ処理手法
本書はシミュレーションや価格予測などのモデル作成をするときにデータサイエンティストがよく活用するNumpy・Sympy・Scipy・pandasの4つのライブラリを網羅的に解説しています。
4つのライブラリについて豊富なイラストやサンプルコードを見ながら学習できるので、各ライブラリの仕組みやコードをイメージしやすく、手戻りなく学習を進めることができます。
さらに、本書の後半ではCythonとNumbaを用いたPythonコードの高速化も学習でき、実行処理の効率化も学習したいという方には非常におすすめです。
ただし、本書もPythonの基本文法や統計学に関する解説はないため、Pythonや統計学の基礎知識を有していると、手戻りなく学習を進めることができるでしょう。
まとめ
Numpyを学習する参考書の選び方のポイントやおすすめ参考書を紹介してきました。自分に合った参考書は見つかったでしょうか。
Numpyはコードを簡素化できたり、AI・機械学習に応用できるライブラリなので、データサイエンティストを目指す方にNumpyの学習は非常に有益です。本記事が学習を始めるきっかけになれば幸いです。
編集部ではPythonに関連する記事も公開しています。Pythonに興味のある方はぜひこちらの記事もご覧ください。

