Python3のライブラリの中に、numpyというライブラリがあり、結構重要そうだが、これはいったい何だろう?
とPythonの勉強を始めたときに感じたことはないでしょうか。実際私も同じように感じたので、この記事ではnumpyのライブラリについての概要と基本的な関数、使用方法について説明していこう。
numpyとは
numpyとは学術計算用のライブラリとなります。
つまりはこの関数を使用することで和・差・積・商の計算が簡単にできるようになります。
具体的にこの関数を使用するメリットとしては、大きく下記の2点があります。
- 多次元配列における計算が柔軟に行える
- 計算が簡単・かつ高速になる
上記2点は処理の高速化、ソースコードの単純化・可読性の向上などデータ分析では必要不可欠な項目となるため、積極的に使用すべきものとなることはお分かりになると思います。
では基本的な使用方法について説明していきます。
基本使用方法説明
事前準備
コーディングを行う前にnumpyをインストールして、ソースコード内でインポートを行う必要があります。
1.numpyのインストール
コマンドプロンプトを開き下記を実行する
$ pip install numpy
2.importを行う
ソースコードに下記のライブラリインポート文を記載する。(npという名前で使用するのが一般的とのこと。)
import numpy as np
※今後記載するコードはこちら設定済みであることを前提としています。
基本的な関数
下記が基本的な関数一覧となります。
こちらを使用すると処理速度が向上するので積極的に使用していきましょう。
関数名 | 説明 | 例 | |
---|---|---|---|
コード | 結果 | ||
add(a, b) | 引数(aとb)の和を返します | print(np.add(10,20)) | 30 |
subtract(a, b) | aとbの差を返します | print(np.subtract(100,20)) | 80 |
multiply(a, b) | aとbの積を返します | print(np.multiply(10,20)) | 200 |
divide(a, b) | aとbの商を返します | print(np.divide(100,5)) | 20.0 |
power(a, b) | 累乗(aのb乗)を返します | print(np.power(3,3)) | 27 |
sqrt(a) | aの平方根を返します | print(np.sqrt(9)) | 3.0 |
sin(a) | 三角関数「sin a」を返します | print(np.sin(0)) | 0.0 |
cos(a) | 三角関数「cos a」を返します | print(np.cos(0)) | 1.0 |
tan(a) | 三角関数「tan a」を返します | print(np.tan(0)) | 0.0 |
sort(a) | aを昇順に並び替える | print(np.sort([1,3,2,7,10,5])) | [ 1 2 3 5 7 10] |
多次元配列の計算
多次元配列の計算を行ったとき、とても面倒くさいと感じたことはありませんか。
1つ1つの要素を取り出して計算していく、なんとももどかしい・・・一度にパパっと計算できたらと感じませんでしたか。
そのような時にnumpyを使用するとあっという間に計算ができてしまいます。
手順は簡単です。array関数を使って、多次元配列を作成し、後は通常の四則演算を使用するだけです。
具体的に下記のように書いてみましょう。
arraya = np.array([[1,2],[3,4]]) arrayb = np.array([[5,6],[7,8]]) print(arraya + arrayb)
これを実行すると・・・。
[[ 6 8] [10 12]]
となり、各要素同士が足されて正しく2次元配列計算が行われていることがわかります。
また、もちろん行列同士ではなく、行列と数値の計算も可能です。
試しにやってみましょう。
arraya = np.array([[1,2],[3,4]]) print(arraya + 5)
これを実行すると・・・、
[[ 6 7] [8 9]]
となり、正しく各要素に+5されていることがわかります。
このことから、numpyを使用するとシンプルかつ可読性の高いソースコードが書けることがわかります。
※ただし、ループを行うと処理が遅くなるようですのでご注意ください。(未実証)
終わりに
以上のことから、算術計算でnumpyを使わない手はないことはお分か頂けたかと思います。
今回紹介したnumpy以外にも便利なプラグインがpythonには用意されています。
様々なプラグインを組み合わせて目的達成の最善の方法を導き出しましょう。
コメント