このブログではデータサイエンスに関わる情報を発信しています。
今回からデータ分析、機械学習に必須のnumpyの使い方講座を開催します。
まず第一回目は、numpyの概要と、ndarrayの生成方法を解説します。
まず、ndarrayが何なのか?その点を理解しないと進みませんからね!
この講座では全てサンプルコードを記載してあります。
各々のpythonの環境で実際に手を動かしながら読み進める事を推奨しています。
サクッとやりたい方は、google colaboratoryが簡単でおすすめです。
Numpyとは何か?

NumPy(Numerical Python)は、Pythonで数値計算やデータ分析を行うためのライブラリであり、多次元配列や行列計算などの機能を提供します。
Pythonに組み込まれているリストでは、大量のデータの処理には向いておらず、処理時間がかかることがあります。NumPyの多次元配列(ndarray)を使用することで、高速な数値計算が可能になります。
Numpyの機能
NumPyは、科学技術計算などの数値計算に必要な機能が豊富であり、主に以下のような機能を提供しています。
- 配列操作(要素の追加、削除、スライスなど)
- ブロードキャスト(異なる形状の配列間の演算)
- 乱数生成
- 線形代数(行列演算、固有値、特異値分解など)
- フーリエ変換
- 集計処理(sum、mean、max、minなど)
NumPyは、データ分析、機械学習、画像処理など、さまざまな分野で利用されており、その性能の高さから、多くの人々に使われています。
Numpyのインストール方法
NumpyはPythonに最初から標準でインストールされていないため、別途インストールが必要な場合があります。
pandasやseabornなどのパッケージもそうですが、Pythonではメモリの関係で全てのモジュールがインストールされているわけではありません。
必要な物だけ適宜インストールしていきます。
ちなみに最初に紹介したgoogl Colaboratoryでは既にインストールされていたりと、お使いの環境によっては必要ない事もあります。
もし、インストールされていなかったら、下記のコマンドを叩くだけですので非常に簡単です。
1 |
pip install numpy |
続いてimportしよう
importはどの環境でも必要になってきます。
この作業を行うことで、Numpyを利用できる様になります。
これも簡単で、下記のおまじないを唱えるだけです。
1 |
import numpy as np |
as以降でリネームを行っており、「np」と名付けています。
このあとは「np.」と書く事でnpの機能を使う事が出来る様になります。
ちなみにnpではなく、他に好きな単語を使っても大丈夫ですが、npとするのが一般的ですのでそうしましょう!
ndarrayとは何か?
「ndarray」とは、多次元配列オブジェクトのことを指します。
多次元配列とは、行列やテンソルなどのように、複数の次元を持った配列のことです。
行列を覚えていますか?
高校や大学時代に行列を勉強した人もいると思いますが、もう忘れちゃったという人の為に簡単に説明します。
- 行列とは数値を2次元の配列に整理したもの
- 行と列によって構成され、通常、n行m列の形式で表される
- 行列は複数の値を同時に扱うことができる
↓こんな感じのものです。
\begin{pmatrix}
2 & 3 & 4\\
3 & 4 & 5\\
4 & 5 & 6
\end{pmatrix}
ndarrayである事の良さ
ではこの行列形式のndarrayにする嬉しさの部分をみてみましょう。
大きく分けると以下の部分です。
- Python標準のリストよりも高速
- メモリ使用量が少ない
- 大量のデータを効率的に扱える
- 演算や操作には、様々なメソッドや関数が用意されている
このように、行列を簡単に演算したり操作したり出来るようになるので、データサイエンスでは非常に重要です。
行列の演算に関しては次回の講座で詳しく解説します。
ndarrayの生成方法
ndarrayを作る方法は様々です。
代表的なのが↓のです。
- リストから生成する方法
- np.zeros()やnp.ones()を使用する方法
- np.arange()を使用する方法
- np.randomを使用する方法
それぞれの方法を見ていきましょう。
リストからndaaryを作成
リストをndarrayに変換するには、NumPyのarray()関数を使用します。
例えば、以下のようにします。
1 2 3 |
my_list = [1, 2, 3, 4, 5] my_array = np.array(my_list) my_array |
array([1, 2, 3, 4, 5])
簡単に1行5列のarrayができました。
3行3列のarrayにするにはリストを入れ子にしましょう。
1 2 3 |
my_list = [[1, 2, 3],[4, 5, 6],[7, 8, 9]] my_array = np.array(my_list) my_array |
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
np.zeros()やnp.ones()を使用する方法
np.zeros()関数は、すべての要素が0のndarrayを生成します。
同様に、np.ones()関数は、すべての要素が1のndarrayを生成します。
例えば、以下のようにします。
1 2 |
zeros_array = np.zeros((2,3)) # 2行3列のndarrayを生成 zeros_array |
array([[0., 0., 0.],
[0., 0., 0.]])
全ての要素が0のゼロ行列ができました。
でもこれってなんの役にたつの?って疑問に思いますよね?
ゼロ行列は行列の乗算、行列の初期化、ランクの計算などで使用されます。
続いてnp.ones()です。
1 2 |
ones_array = np.ones((3,2)) # 3行2列のndarrayを生成 ones_array |
array([[1., 1.],
[1., 1.],
[1., 1.]])
全ての要素が1の全1行列ができました。
これは、ニューラルネットワークなどの重みの初期化などで使われます。
np.arange()を使用する方法
np.arange()関数は、指定された範囲の整数を含むndarrayを生成します。
グラフのプロットなどで使われます。
以下のようにして作成します。
1 2 |
my_array = np.arange(10) # 0から9までの整数を含むndarrayを生成 my_array |
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.randomを使用する方法
np.randomを使用して、ランダムな値のndarrayを生成することもできます。
例えば、以下のようにします。
1 2 |
my_array = np.random.rand(3, 2) # 3行2列のランダムな値を含むndarrayを生成 my_array |
array([[0.61942876, 0.86531578],
[0.17264794, 0.26334744],
[0.74340098, 0.70446494]])
ランダムな要素をもつndarrayが作成されました。
もちろん毎回実行する度に要素の値は変動します。
まとめ
今回もお疲れ様でした。
最後にまとめを振り返りましょう。
- 「ndarray」とは、多次元配列オブジェクトのこと
- 「import as numpy as np」でインポート
- ndarrayの生成方法
- リストから生成する方法
- np.zeros()やnp.ones()を使用する方法
- np.arange()を使用する方法
- np.randomを使用する方法
numpyはデータサイエンティストにとって必須ですからね。
しっかりと覚えましょう!
numpyの概要は↓からどうぞ!
Work illustrations by Storyset