Python

【入門者向け】PythonのNumpyの使い方について徹底解説!

Numpy 入門
ウマたん
ウマたん
本記事では、Pythonのライブラリ「Numpy」について解説していきます。NumpyはPandasに比べると利用シーンは少ないですが、それでも非常に頻出するPythonライブラリです。この記事でNumpyの使いどころ・使い方について理解しておきましょう!

こんにちは!

データサイエンティストのウマたん(@statistics1012)です。

Pythonを使う上で必ず使用する超重要ライブラリ「Pandas,Numpy,Matplotlib」。

個人的に最も使うライブラリはPandasですが、Numpyもシーンによっては使うことがありますねー!

そんなNumpyについて解説していきつつ、どのような場面でどのように使うのか簡単に見ていきます!

ロボたん
ロボたん
NumpyとPandasの違いがイマイチ分からないなー・・・
ウマたん
ウマたん
オーケー!NumpyとPandasの違いについても解説していくよ!

Numpyの使いどころをしっかりおさえておきましょう!

Numpyとは

Numpy

引用元:Numpy公式

PandasとNumpyって何が違うの??という疑問を持たれる方も多いと思いますが・・・実はPandasはNumpyを拡張して使いやすくしたライブラリなんです。

そのため、ほとんどの前処理はPandasで完結することが多く、Pandasの方が扱いやすいです。

ロボたん
ロボたん
あれ??そしたらNumpyを使う場面ってないんじゃ・・・?
ウマたん
ウマたん
実はそうとも言えないんだ!

Numpyはndarray配列型のみしか扱えず中の要素は数値データでないといけません。

一方でPandasはDataframe型であり、要素は数値でも文字列でもバラバラでよいため実データを扱うのに長けています。

しかしその分演算処理はNumpyの方が速く、煩雑な行列計算に用いられることがあります。

高次元データの逆行列を求める時には大量の要素を持つ行列の演算を行うのでNumpyを使った方が演算が早くなります。

このように、基本的にはPandasを扱うシーンが多いものの、ここぞという場面・演算処理にはNumpyを使うことも少なくありません。

Numpyの使い方

python

それでは、Numpyの使い方について簡単に見ていきましょう!

まずは、Numpyをインポートします。

これでNumpyが使えるようになります。

配列を作成する

Numpyを使って配列を作っていきましょう!

ロボたん
ロボたん
これまた、配列とリストの違いが分かりにくいんだけど・・・
ウマたん
ウマたん
分かりにくいよねー!

配列と似た型にリスト型があります。

リスト型はPythonに標準で組み込まれているもので要素は文字列でも数値でもバラバラで問題ありません。

一方Numpyで扱う配列型は1次元の配列から多次元配列(行列)型まで扱うことができ、中の要素は数値型で一致していないといけません。

実際に色々と触ってみて理解する方が早いので、配列を作って計算などをしてみましょう!

Numpyの配列型は以下のように生成することができます。

array([1, 2, 3])

これが配列型!

Rangeで指定することもできます。

array([1, 2, 3])

2次元の配列(行列の形)にしたい場合は以下のようにすれば大丈夫!

array([[1, 2, 3],
[4, 5, 6]])

これで2行×3列の2次元配列が出来上がりました。

行×列を確認するにはshapeを使ってみましょう!

(2, 3)

以下のようにすると3行×2列の2次元配列が出来上がります。

array([[1, 2],
[3, 4],
[5, 6]])

簡単ですね!

配列の操作

続いて出来上がった配列の操作方法についていくつか見ていきましょう!

2行×3列の配列を3行×2列に変換してみましょう!

reshapeを使うことで行数列数を変換することができます。

array([[1, 2],
[3, 4],
[5, 6]])

この時、明示的に行と列を指定しなくても片方だけ指定して残りを-1にすることで適切な形に変換してくれます。

array([[1, 2],
[3, 4],
[5, 6]])

続いて、要素を追加してみましょう!

array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])

行が追加されました!

列方向へ追加する時は以下のように記述します。

array([[1, 2, 7],
[3, 4, 8],
[5, 6, 9]])

できましたね。

続いて配列の特定要素を抽出してみましょう!

array([[1, 2],
[3, 4],
[5, 6]])

この2次元配列の要素を抽出してみましょう。

array([1, 2])

1行目の要素を抽出できました。

2

1行目2列目の要素を抽出できました。

配列演算

配列演算について見ていきましょう!

シンプルに各要素に対して数値(スカラー値)を足し合わせることが可能。

array([[3, 4],
[5, 6],
[7, 8]])

スカラーをかけることも可能。

array([[ 3, 6],
[ 9, 12],
[15, 18]])

多次元配列同士の足し算も形が一緒であれば可能です。

array([[ 4, 8],
[12, 16],
[20, 24]])

また2次元配列の行列積は以下のように求めることができます。

array([[22, 28],
[49, 64]])

この場合、A(2行×3列)の行列とB(3行×2列)の行列の積で2行×2列の新たな行列が出来上がっていることが分かります。

Numpyを使えば、要素数の多い行列計算も高速で行うことができるんです!

乱数作成

続いてNumpyを使って乱数を作成してみましょう!

array([[0.20511798, 0.83910969],
[0.51645229, 0.56680067],
[0.95699065, 0.02719675]])

np.random.randでは0以上1未満の一様乱数を返します。

この時引数に要素数を指定することができます。今回は3,2と指定したので、3行2列の2次元配列が返されました。

array([[ 0.18444559, 0.92656196],
[-2.17690245, 1.26435454],
[ 0.06724962, 0.63178107]])

randnとすることで、標準正規分布に従う乱数が返されます。

np.randomを使えば、他にも二項分布やベータ分布に従う乱数を生成することができます。

統計量算出

最後に統計量の算出について見ていきましょう!

総和や平均など統計量を算出することができます。

15

配列の総和が返ってきます。

3.0

配列の平均が返ってきます。

5

配列の最大値が返ってきます。

1.4142135623730951

標準偏差が返ってきます。

デフォルトでは、標本分散を基にした標準偏差になっています。

不偏分散を基にした標準偏差を算出したい場合は以下のように引数を追加します。

1.5811388300841898

2次元配列の場合も計算可能であり、行レベルで算出するか列レベルで算出するか指定して計算します。

array([3., 4.])

この場合、列レベルで平均を出します。

array([1.5, 3.5, 5.5])

こうすると行レベルでの算出になります。

以上、Numpyの使い方あれこれでした!

Numpy まとめ

pc python

 

何気なく使っているNumpyはどんなライブラリなのか、どのような場面で使うのかについて見てきました!

Pythonにおけるデータ分析には非常に重要なNumpy!

Numpy含めPythonの勉強は、実際にデータ分析を行う上で非常に重要です。

ただ目的のないNumpy勉強は正直意味がないしモチベーションは続きません。

自分で進められる自信のある人はUdemyの教材を視聴もしくはPyQを自力で進めた後Kaggleに挑戦してみることをオススメします。

Udemyは世界最大のオンライン学習プラットフォームで非常に分かりやすく色んなコースがあるので自分のやりたいことが明確にきまっている人にオススメ!

Udemy
【体験談】評判の良いUdemyを実際に20コース受けてみてレビュー!当サイト【スタビジ】の本記事では、世界最大のオンライン学習プラットフォームであるUdemyのメリット・デメリット・評判・口コミについてまとめていきます!実際にPython関連のコースを20個受講して分かった体験談をもとにお伝えしていきます。...
\30日間返金無料/

PyQはPython特化のオンライン学習サービスで、ひたすらPythonコーディングを行うのにオススメです。

データサイエンスの理論まわりはあまり深く扱っていません。

【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当サイト【スタビジ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!...

そしてある程度Pythonの素地が出来上がった後は、データ分析コンペティションのKaggleに挑戦してみることをオススメします!

Kaggleでは企業から提供されるデータを基にお題に沿って精度の高いモデルを構築していきます。

【初心者向けKaggle入門】Kaggleサブミットの前準備と勉強法!当サイト【スタビジ】の本記事では、Kaggleについて解説していきKaggleに挑戦するまでにどのようなことを勉強しておいたらよいのか丁寧に解説していきます。ある程度データサイエンスの土台が出来た後はKaggleに挑戦し、世界各国の猛者と凌ぎを削りましょう!...

ぜひNumpyをマスターしましょう!

Python勉強法については以下の記事でもまとめていますよ!

【独学入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【スタビジ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...

イラスト出典:Illustration by Stories by Freepik

Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!