知って得する、楽しいプログラミング。 - Python 9 - Numpy
参考サイトです。
今話題のディープラーニング をするときに便利に使われるライブラリです。ライブラリを使うことで配列クラスの便利なメソッドを使えるようになります。ディープラーニングなど配列、行列の計算が必要な場合に必須なものとなっています。
基本的な使い方ですが、まずインポート。
import numpy as np
numpy配列を作って計算します。type()で何の型かがわかります。
import numpy as np
arr = np.array([1,2,3])
print(arr)
type(arr)
として実行すると
[1 2 3]
numpy.ndarray
と出力され、配列"[1 2 3]"が出来ていて、"ndarray"であることがわかります。これを足し算したしてみます。
print(arr+arr)
print(arr*arr)
print(arr/arr)
として実行すると、
[2 4 6]
[1 4 9]
[1. 1. 1.]
となり、配列の要素ごとに足し算されていることがわかります。これをPythonのリストでやってみると
liarr = [1,2,3]
とリストを作り
liarr+liarr
と計算すると、
[1, 2, 3, 1, 2, 3]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-14-cab616db2b05> in <module>
1 print(liarr+liarr)
----> 2 print(liarr*liarr)
3 print(liarr/liarr)
TypeError: can't multiply sequence by non-int of type 'list'
と足し算はリストに追加されてしまい、あとはエラーとなります。
numpy配列、ndarrayでは配列と単純な数字、スカラ値とも計算ができます。
arr*2
を実行すると、
array([2, 4, 6])
と要素それぞれに値を掛け合わせて計算されています。この機能はブロードキャストと呼ばれます。
Numpyの特徴として大きいのは多次元配列が扱えることがあります。
arr = np.array([[1,2],[3,4]])
print(arr*2)
type(arr)
2次元配列の計算をしています。
[[2 4]
[6 8]]
numpy.ndarray
と出力されます。配列の要素に全て"2"が掛けられて計算値が表示されています。typeは"ndarray"numpyの配列ということです。
形式を調べます。shape()を使います。
arr.shape
(2, 2)
となり、"2"X"2"の行列を意味しています。
次に要素を取り出したいと思います。
arr = np.array([[1,2],[3,4]])
arr[0][1]
[0][1]
を取り出します。まず最初の[0]が
[1,2]
そして次の[1]が
[2]
答えは"2"となります。
for in文もできます
arr = np.array([[1,2],[3,4]])
for i in arr:
print(i)
とすると、
[1 2]
[3 4]
と出力されます。
この2次元配列を1次元配列へ変換する方法としては
arr = np.array([[1,2],[3,4]])
arr = arr.flatten()
print(arr)
とすれば
[1 2 3 4]
と変換されます。また、np.arrayの配列では
配列の抽出方法として、
arr[np.array([0,2])]
とするとそのインデックスを指定して取り出すことができます。また、
arr>3
とすれば
array([False, False, False, True])
条件に該当するものをTrue,Falseとして見つけ出すこともできます。