LogoMark.png

NumPy の変更点


#author("2023-02-03T16:32:19+09:00","default:inoue.ko","inoue.ko")
#author("2023-02-03T16:32:30+09:00","default:inoue.ko","inoue.ko")
*NumPy
https://numpy.org/
~

NumPy は多次元配列を効率的に扱うためのライブラリです。 科学技術計算や機械学習など、ベクトルや行列の演算が多用される分野では事実上の標準です。

Pythonには、組み込み型の list、標準ライブラリの配列 array が用意されていますが、NumPy が扱うのは numpy.ndarray 型という別物です。
~

**はじめに
NumPyのインストールとインポート

Python 言語のライブラリとしてのインストールになるので、一般の Python3 の環境であれば、Terminalから以下のコマンドでインストールできます。

$ pip3 install numpy
 $ pip3 install numpy

import する際は、以下のように np という名称を与えるのが一般的です。

 import numpy as np

Google Colaboratory では Jupyter Notebook で利用できるライブラリーが「すべてインストール済み」という前提なので、ローカル環境での作業のように、必要なライブラリのインストールを行う必要はなく、コードセルに import 文を書くだけで使うことができます。
~
~
**配列の定義
NumPyが扱う配列は numpy.ndarray という特殊なデータ型になります。
 arr = np.array( [1,2,3] )    # リストから配列作成
 print( arr )
 >[1 2 3]
 print( arr[1] )
 >2

 np.array( [ [1,2] , [3,4] ] )  # 2次元配列の構築
 print( arr )
 >[[1 2]
   [3 4]]
~
~

**ndarray の生成
***numpy.arrange()
 arr = np.arange( 3 )     # range(N) に対応する配列
 print( arr )
 > [ 0 1 2 ]

 arr = np.arrange( 0, 1, 0.2 ) # start, stop, step の順に指定
 print( arr )
 > [ 0.0  0.2  0.4  0.6  0.8 ]
~
~


**演算
***行列の和
 arr1 = np.array( [ [1, 2] ,  [3, 4] ] )
 arr2 = np.array( [ [1, 0] ,  [0, 1] ] )
 print( arr1 + arr2 )
 >[ [2 2]
    [3 5] ]
~

***行列の積
 arr1 = np.array( [ [1, 2] ,  [3, 4] ] )
 arr2 = np.array( [ [1, 2, 3] , [4, 5, 6] ] )
 print( np.dot( arr1, arr2 ) )
 >[ [ 9 12 15]
    [19 26 33] ]
~

***ユニバーサル関数の利用
NumPy ndarrayでは、ユニバーサル関数と呼ばれる専用の組み込み関数の利用によって、配列の全要素に対して一挙に計算することができます。配列の全要素に対してループ処理を行う必要がないので、コードがシンプルになります。

以下の例では、区間 [ 0 〜 20 ) の 0.1 刻みの x の値に対して、関数 &mathjax( y = cos(x) ); の計算を一挙に行っています。matplotlib.pyplot の plot関数は、x,y の組み合わせをグラフにしてくれます。
#image(cos.png,right,30%)
 import numpy as np
 import matplotlib.pyplot as plt
 
 x = np.arange(0, 20, 0.1)
 y = np.cos(x)
 
 plt.plot(x,y)
 plt.show()
~
~
~