※記事内に商品プロモーションを含むことがあります。
はじめに
NumPyを使って基本的な配列や線形代数学でよく使われる配列を生成する。
環境
ソフトウェア | バージョン |
---|---|
NumPy | 1.19 |
基本的な配列の作成
NumPyは、ベクトルや行列の計算を効率良く行うためのモジュールである。
初めに、以下のコマンドを入力してNumPyを取り込む。
as以下に npと入力すると、NumPyをnpと短縮して呼び出せる。
|
|
配列の中身を自分で指定して作成する場合、 np.array()メソッドを用いる。
np.array()は、引数にPythonのリストをとる。
リストを重ねる(ネストする)ことで、2次元や3次元の配列を作成できる。
|
|
線形代数学でよく使われる配列の生成
全要素が0の配列
全要素が0の配列を作成する場合、np.zeros()メソッドや np.zeros_like()メソッドを用いる。
np.zeros()メソッドの場合、引数に整数をとると、 その整数の数だけ0要素を持つ1次元の配列が作られる。 また、引数に整数のリストをとると、2次元以上の0配列が作られる。
一方、np.zeros_like()メソッドの場合、 引数に他のNumPy配列をとり、その配列と同じ形の0配列が作られる。
|
|
全要素が1の配列
全要素が1の配列を作成する場合、np.ones()メソッドや np.ones_like()メソッドを用いる。
配列の作成方法は、それぞれnp.zeros(), np.zeros_like()メソッドに同じ。
|
|
全要素が同じ値の配列
全要素が同じ値の配列を作成する場合、np.full()メソッドや np.full_like()メソッドを用いる。
np.full()メソッドは引数を2つとり、 第1引数で配列の形を、第2引数で配列の値を指定する。 2次元以上の配列を作成したい場合、第1引数がリストにする。
また、np.full_like()メソッドは、 第1引数に他のNumPy配列、第2引数に値をとる。 第1引数の配列と同じ形かつ、全要素が第2引数と同じ値の配列が作成される。
|
|
単位行列など
単位行列を作成する場合、np.identity()メソッドまたは np.eye()メソッドを用いる。
np.identity()メソッドの場合、 引数として与えた整数の大きさの単位行列が作成される。
また、np.eye()メソッドの場合、 引数に整数を1つだけ与えると、np.identity()と同様に単位行列が作成される。 一方、引数をnp.eye(n, m)のように2つ与えると、主対角成分が1のn×m行列が作成される。 さらに、引数kで値が1となる対角を指定できる。
|
|
三角行列など
三角行列は、主対角より「上」または「下」の成分が全て0である正方行列である。
np.tri()メソッドを用いると、下三角行列を作成できる。 引数に整数を1つ与えると、その整数の大きさの正方行列になる。 引数にnp.tri(n, m)のように整数を2つ与えると、 主対角より上が0となるn×m行列が作成される。 また、引数kでどの対角から上が0となるか指定できる。
|
|
また、他の配列に対して、三角部分の要素を0とした配列を得るためには、 np.tril()メソッドまたは np.triu()メソッドを用いる。 それぞれ、引数にとった行列の上三角部分と下三角部分を0とした行列を返す。 また、引数kで0とする対角を指定できる。
|
|
その他の特殊な配列の作成
線形に等間隔な1次元配列
|
|
対数的に等間隔な1次元配列
|
|
ランダムな要素を持つ配列
numpy.randomモジュールを使用する。
|
|
参考リンク
Array creation — NumPy v1.19 Manual
Random sampling (numpy.random) — NumPy v1.19 Manual