Python-numpyについて
numpyを学ぶ1(超基礎)
今回はpythonの主要ライブラリの1つであるnumpyについて
超々基礎的な部分ですが学習していきます!
numpyとは
数値計算の際に利用されるライブラリ
np.array()で「ndarray」を作成し、独自のデータ構造で
高速な処理で計算をする(高速な処理を可能する配列のイメージ)
scipy「計算ライブラリ」、scikit-learn「機械学習ライブラリ」
openCV「画像処理ライブラリ」はnumpyにより実装されている
ndarrayの特徴に関して
ndarray = N - dimensional array
N次元配列と訳す。
特徴(メリット)は…
-
処理速度が早くなる
-
配列の扱い方が柔軟
-
コードがシンプルできれいになる
pythonはほかの言語に比べてfor文によるループ処理が遅いよう。
可能な限りnumpyを使うといい!
計算負荷が高くなる処理を行うときは
pythonのlist
pandasのSeries
ではなく、ndarrayにデータを格納することが重要! -
ndarrayを作成するには
array()メソッドに配列を格納することで作成可能。
np.array([1,2,3])
結果→array([1,2,3])
.arange()で数字が順番に並んだndarray(配列)を作成できる
丸括弧内に数字を入れると0から順番に入れた数分のndarray(配列)を作成する
np.arange(5)
結果→array([0,1,2,3,4])
以下のように記述することで
要素がすべて0や1のndarray(多次元配列)を作成できる
np.zeros([3,5])
結果↓
array([[0.,0.,0.,0.,0.],
[0.,0.,0.,0.,0.],
[0.,0.,0.,0.,0.]])
「zeros」ではなく「ones」であれば1で作成できる
rand関数を使用することで、0-1の間でランダムに数値を取得し、
ndarray(多次元配列)に格納することができる
from numpy.random import *
rand(2,3)
結果↓
array([[0.44157889, 0.31695874, 0.06856328],
[0.06385239, 0.68289541, 0.55114608]])
fromを利用するとインポートするモジュールの制限や記述の簡略化ができる
コードの結果は↓のコードでも同じく!
import numpy
numpy random.rand(2,3)
- 行列の変更
array = np.arange(8)
array
結果→array([0,1,2,3,4,5,6,7])
「reshape」の引数に第2引数に変換後のarrayの形状を指定する
np.reshape(array,(2,4))
結果↓
array([[0,1,2,3],
[4,5,6,7]])
変更完了!
所感
nampyについて学習しました。
まだまだ単純な数字ばかりで使うシーンが明確にイメージできているわけではないですが、、!
他のライブラリと併せて考えれるようになりたいです。
Discussion