Pythonの拡張モジュール「NumPy」とは?インストール方法や基本的な使い方を紹介!

Pythonの拡張モジュール「NumPy」とは?インストール方法や基本的な使い方を紹介!

AI(人工知能)の進化によって近年注目度を増しているのが機械学習という、コンピューターに学習させる技術です。そして、Pythonでの機械学習の計算をより速く、効率的に行えるようにする拡張モジュールが「NumPy」です。

この記事ではNumPyの概要、またインストール方法から基本的な使い方まで詳しく解説します。

Pythonを使えるNumPyとは?

「NumPy」はプログラミング言語であるPythonの拡張モジュールです。NumPyを利用することでPythonでの数値計算をより高速に、効率的に行うことができるようになります。

Pythonは機械学習にもよく利用されるプログラミング言語で、大量のデータ処理にかかる時間もNumPyを利用することで短縮できます。Pythonについてもっと詳しく知りたい人は、ぜひとも「Pythonとは?何に使えるの?Pythonの特徴や使い道を詳しく解説!」を読んでみてください。

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

Pythonの拡張モジュールNumPyのインストール方法

つづいてNumPyのインストール方法を紹介します。

NumPyは単体でインストールすることが可能です。また、「Anaconda」というPythonのライブラリが詰め込まれたパッケージの中にも含まれているので、Anacondaをインストールすれば、NumPyも使用できる状態でPythonの環境を構築できます。

Anacondaのインストール方法は「AnacondaでPythonの環境構築!概要~インストール方法まで解説」で詳しく紹介しています。

Numpy インストール

NumPyのインストール方法

NumPyをインストールするには、以下のコマンドを打ち込みます。

$ pip install numpy

NumPyがインストールされているか、調べる方法もあります。Macであればターミナルに、Windowsであればコマンドプロンプトに、はじめは「python」と打ち込んでください。そして、pythonのコンソールになったら以下のコマンドを打ち込んでください。

$ import numpy

上記のコマンドを打ったあとに特にエラーが出なければ、NumPyはインストールされています。

また、Pythonのライブラリが詰め込まれているAnacondaをインストールすれば、NumPyだけではなく、Pythonの様々なライブラリがインストールされるので、データ解析、機械学習をしたい人にとってはとても便利です。

NumPyのインポート

NumPyのインストールしたあと、実際にNumpyを使用するには以下のコードを記述します。

import numpy as np

上記のコードで、モジュールであるNumPyをnpという名前でインポートすることができます。

■IronPythonで連携する際のNumPyのインポートについて

ここ数年、IronPythonと連携した時にNumPyがインポートの実行ができない、というエラーが発生しています。IronPythonとは.NET Framework、もしくはMONO上で動作するPythonの実装のことです。

エラーの原因は人によって違いますが、IronPythonでのロードができていないことが多いようです。

C#で「IronPython.dll」「Microsoft.Scripting.dll」の追加、そして「using IronPython.Hosting;」「using Microsoft.Scripting.Hosting;」という2つのusingを追加することでエラーが改善される可能性があります。

Python NumPyの基本的な使い方

つづいてNumPyの基本的な使い方を紹介します。

機械学習や画像処理など、大量のデータを処理する必要がある時、Pythonでは「リスト」というC言語の配列と似ている機能で処理することができます。リストは要素数が可変で要素毎のデータ型が違っていても良いため、利便性は高いのですが、処理に時間がかかるという難点があります。

Numpy 使い方

大量のデータ処理をする時の速度を上げたい時は、PythonのリストではなくNumPyの配列(ndarray)を使用します。次にndarrayのことをより詳しく解説します。

Python NumPyの基本的な使い方①arrayとは

NumPyの配列(ndarray)は、NumPyで多次元配列を扱うためのクラスで、Pythonのリストよりも高機能、そして高速で計算処理をしてくれます。クラスとは、定義した変数や関数を一括りにして扱う時に使用する概念です。

ndarrayは1次元であればベクトル、2次元は行列、3次元はテンソルを扱うことができます。ndarrayの簡単な使い方は以下のようになります。

import numpy as np
sample1 = np.array([0,1,2])
print(sample1)

上記のコードを実行すると、[0,1,2]が表示され、1次元のベクトルが作成されました。2次元の行列を作成する時は、配列をカンマで区切って記述します。

Python NumPyの基本的な使い方②where

つづいてNumPyの、指定した条件を満たす配列(ndarray)の要素番号を抽出する「where」の使い方を簡単解説します。

NumPyではwhereを「numpy.where」と記述します。

#配列(ndarray)
test1 = np.array([1,2,3,4,5])

#配列のから条件が満たされた要素番号を取得する
test2 = np.where(test1>=3)
print(test2[0])

上記のコードを実行すると、要素番号の[2,3,4]が表示されます

Python NumPyの基本的な使い方③append

NumPyの「numpy.append」は配列の末尾に新しい配列を生成できる関数です。以下がappendを使用したコードです。

#配列(ndarray)
test1 = np.array([1,2,3])
np.append(test1, [4,5])
print(test1)

上記のコードを実行すると、[1,2,3,4,5]と表示され、配列が新しく生成されているのが分かります。

Python NumPyの基本的な使い方④arrange

NumPyで範囲を指定して配列を生成したい時は、「numpy.arrage」を使用します。また、numpy.arrange(a, b)メソッドではa以上b未満の配列を生成することも可能です。以下がnumpy.arrangeを使用したコードです。

# numpy.arrageでの配列の生成
test1 = np.arrange(5)
print(test1)

上記のコードを実行すると[0,1,2,3,4]と表示されます。また、以下のような使い方もできます。

test2 = np.arrange(2, 4)
print(test2)

上記のコードを実行すると[2,3]と表示されます。

Python NumPyの基本的な使い方⑤shape

NumPyのndarrayで生成した多次元配列や行列の、各次元の要素数を表示したい時に「shape」を使用します。

以下がshapeを使用したコードです。

#配列の生成
test1 = np.array([1,2,3,4])
print(test1.shape)

上記のコードを実行すると、要素数である(4,)が表示されます。

Python NumPyの基本的な使い方⑥reshape

NumPyでは、生成した配列をnumpy.reshape(m, n)メソッドを使用すればm×n(行数m、列数n)の、配列の次元を変更することができます。以下がreshapeを使用したコードです。

#配列の生成
test1 = np.array([1,2,3,4,])
#配列の次元を変更(行数2、列数2の2次元配列に変換)
test2 = test1.reshape(2, 2)
print(test2)

上記のコードを実行すると、[[1, 2][3, 4]]と表示され、1次元配列から2次元配列に変換されているのが分かります。

NumPyを使用すればスピーディにデータ処理を行うことができ、機械学習や画像処理の処理時間が短縮されます。