【Python入門】numpyで計算する【配列の使い方】

【Python入門】numpyで計算する【配列の使い方】 numpy

配列の使い方です。

配列は、情報をしまっておくマス目をした箱のことです。
numpyを使うと、配列を使って計算することができます。

配列はデータ処理の基本ですが、作り方が複数あるため、慣れないうちは混乱してします。

まずは、3種類の方法があることを覚えておきましょう。

配列を作る方法

  • list
  • numpy
  • pandas

実際に使ってみましょう。

list
In [1]:  list = [1, 2, 3]
In [2]:  list
Out[2]:  [1, 2, 3]

In [1]: listと名前をつけた箱に、[1, 2, 3]をいれる。
In [2]: listから取り出す。
Out[2]: listの内容

numpy
In [1]:  import numpy as np
In [2]:  array = np.array([1, 2, 3])
In [3]:  array
Out[3]:  array([1, 2, 3])

In [1]: numpyが使えるようにする(ライブラリの読み込み)。
In [2]: arrayと名前をつけた箱に、[1, 2, 3]をいれる。
In [3]: arrayから取り出す。
Out[3]: arrayの内容

pandas
In [1]:  import pandas as pd
In [2]:  series = pd.Series([1, 2, 3])
In [3]:  series
Out[3]:  0    1
         1    2
         2    3
         dtype: int64

In [1]: pandasが使えるようにする(ライブラリの読み込み)。
In [2]: seriesと名前をつけた箱に、[1, 2, 3]をいれる。
In [3]: seriesから取り出す。
Out[3]: seriesの内容

pandasの配列は、縦に並んでおり、o行目に1、1行目に2、2行目に3が入っています。

3種類の方法で配列を作ることができました。
どれも[1, 2, 3]を記録できていますので、次は計算をしてみましょう。

配列の計算をする

配列に記録した[1, 2, 3]に2を乗算してみます。
配列の要素が2倍の値になるでしょうか。

list
In [1]:  list * 2
Out[1]:  [1, 2, 3, 1, 2, 3]

In [1]: listに2を乗算する。
Out[1]: listの内容

残念ながら期待していた[2, 4, 6]ではありません。
listの要素を2倍するには、配列の要素に2を乗算します。

In [1]:  list[0]
Out[1]:  1
In [2]:  list[0] * 2
Out[1]:  2

In [1]: listの0番目を取り出す。
Out[1]: list[0]の内容
In [2]: listの0番目に2を乗算する。
Out[2]: list[0]*2の内容

ねらい通り、要素の値が2倍になりました。

numpy
In [1]:  array * 2
Out[1]:  array([2, 4, 6])

In [1]: array に2を乗算する。
Out[1]: arrayの内容

numpyは、ねらい通りの結果になりました。

pandas
In [1]:  series * 2
Out[1]:  0    2
         1    4
         2    6
         dtype: int64

In [1]: seriesに2を乗算する。
Out[1]: seriesの内容

pandasも、ねらい通りの結果になりました。

ここまでのまとめ

  • 3種類の方法で、配列を作ることができた
  • 配列の作り方によって、計算での使い方が違うことがわかった
  • numpyとpandasは、配列の要素をまとめて計算することができた

本題: numpyで計算する

ここからは、numpyを使って計算をしていきます。
四則演算をします。

numpy
In [1]:  array = np.array([1, 2, 3])
In [2]:  array + 2    
Out[2]:  array([3, 4, 5])

In [1]: arrayと名前をつけた箱に、[1, 2, 3]をいれる。
In [2]: arrayに2を加算する。
Out[2]: arrayの内容

In [3]:  array - 2    
Out[3]:  array([-1, 0, 1])

In [3]: arrayに2を減算する。
Out[3]: arrayの内容

In [4]:  array * 2    
Out[4]:  array([2, 4, 6])

In [4]: arrayに2を乗算する。
Out[4]: arrayの内容

In [5]:  array / 2    
Out[5]:  array([0.5, 1., 1.5])

In [5]: arrayに2を除算する。
Out[5]: arrayの内容

上手く計算できています。
計算結果は記録されませんので、配列arrayは生成したときのままです。
計算結果を記録したいときは、計算結果を配列にいれます。

numpy

In [6]: arrayに2を加算して、arrayにいれる。
Out[1]: arrayの内容

In [6]:  array = array + 2
In [7]:  array
Out[7]:  array([3, 4, 5])

計算結果が、配列arrayに記録されています。

まとめ

  • numpyで配列を作ることができた
  • numpyで配列を使って、四則演算ができた

補足:numpyの実力がわかるのは、この先です

numpyでは、配列の要素をまとめて計算できましたが、この仕組みをブロードキャストといいます。
実行速度が速いことや、少ないコードで記述できるメリットがあります。

機械学習などでnumpyの配列を使うときは、今回の1次元だけではなく、2次元以上は配列を使います。
2次元でモノクロ画像、3次元でカラー画像。

関連情報

タイトルとURLをコピーしました