AI(人工知能)の進化によって近年注目度を増しているのが機械学習という、コンピューターに学習させる技術です。そして、Pythonでの機械学習の計算をより速く、効率的に行えるようにする拡張モジュールが「NumPy」です。
この記事ではNumPyの概要、またインストール方法から基本的な使い方まで詳しく解説します。
公開日:2018年7月27日
\リンククリックでおすすめ講座が89%OFF!/
専門領域:人工知能(AI) / 生成AI / ディープラーニング / 機械学習
我妻 幸長 Yukinaga Azuma
「ヒトとAIの共生」がミッションの会社、SAI-Lab株式会社の代表取締役。AIの教育/研究/アート。東北大学大学院理学研究科、物理学専攻修了。博士(理学)。法政大学デザイン工学部兼任講師。オンライン教育プラットフォームUdemyで、十数万人にAIを教える人気講師。複数の有名企業でAI技術を指導。「AGI福岡」「自由研究室 AIRS-Lab」を主宰。著書に、「はじめてのディープラーニング」「はじめてのディープラーニング2」(SBクリエイティブ)、「Pythonで動かして学ぶ!あたらしい数学の教科書」「あたらしい脳科学と人工知能の教科書」「Google Colaboratoryで学ぶ! あたらしい人工知能技術の教科書」「PyTorchで作る!深層学習モデル・AI アプリ開発入門」「BERT実践入門」「生成AIプロンプトエンジニアリング入門」(翔泳社)。共著に「No.1スクール講師陣による 世界一受けたいiPhoneアプリ開発の授業」(技術評論社)。
…続きを読む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をインストールするには、以下のコマンドを打ち込みます。
$ 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言語の配列と似ている機能で処理することができます。リストは要素数が可変で要素毎のデータ型が違っていても良いため、利便性は高いのですが、処理に時間がかかるという難点があります。
大量のデータ処理をする時の速度を上げたい時は、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を使用すればスピーディにデータ処理を行うことができ、機械学習や画像処理の処理時間が短縮されます。
\リンククリックでおすすめ講座が89%OFF!/
評価:★★★★★
公式サイトを見る余裕がなく、基本的な処理を勉強してきましたが、アウトプットをするのが楽しくなる講座でした。ニューラルネットの基本にも立ち返ることができ、復習としてもとても有意義な講座となりました。いろいろパラメータを変えたりして、できることを増やせればと思います。
評価:★★★★★
NumPyとmatplotlibを学びなおす良い機会となりました。機械学習、深層学習については奥が深いので、いろいろとやってみたいと思います。また、Jupyter環境ではなく、Colaboratory環境と言うのも、良かったです。
最新情報・キャンペーン情報発信中