📒

Python-numpyについて

2023/05/14に公開

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