#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() ~ ~ ~