NumPy でマトリックスに行を追加

Manav Narula 2023年1月30日
  1. numpy.vstack() 関数を使用して、NumPy の行列に行を追加する
  2. numpy.append() 関数を使用して、NumPy の行列に行を追加する
  3. numpy.r_() 関数を使用して、NumPy の行列に行を追加する
  4. numpy.insert() 関数を使用して、NumPy の行列に行を追加する
NumPy でマトリックスに行を追加

行列は、データ表現や複数の一次方程式の解法のために数学や統計でよく使用されます。プログラミングでは、2 次元配列は行列として扱われます。

Python では、numpy モジュールを使用して配列を操作します。行列に対してさまざまな操作を実行するために使用できる多くの関数とクラスがあります。

このチュートリアルでは、numpy の行列に行を追加する方法を学習します。

numpy.vstack() 関数を使用して、NumPy の行列に行を追加する

vstack() 関数は配列を垂直にスタックします。2つの 2D 配列を垂直に積み重ねることは、行列に行を追加することと同じです。

次のコードはこれを示しています。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([7, 8, 9])
arr = np.vstack([arr, row])
print(arr)

出力:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

numpy.append() 関数を使用して、NumPy の行列に行を追加する

numpy モジュールの append() 関数は、配列の最後に要素を追加できます。axis を 0 として指定することにより、この関数を使用して行を行列に追加できます。

例えば、

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([7, 8, 9])
arr = np.append(arr, [row], axis=0)
print(arr)

出力:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

numpy.r_() 関数を使用して、NumPy の行列に行を追加する

numpy モジュールの r_() 関数は、配列を垂直方向に結合することによって配列を連結します。

以下のコードをチェックして、これを使用して行列に行を追加する方法を確認してください。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([7, 8, 9])
arr = np.r_[arr, [row]]
print(arr)

出力:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

または、concatenate() 関数を使用することもできます。concatenate() 関数は 2つ以上の配列を組み合わせるため、目的の結果を達成するために使用できます。

例えば、

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([7, 8, 9])
arr = np.concatenate((arr, [row]), axis=0)
print(arr)

出力:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

numpy.insert() 関数を使用して、NumPy の行列に行を追加する

insert() 関数は、指定された軸と位置に沿ってオブジェクトを追加します。これを使用して、マトリックスの目的の特定の位置に行を挿入できます。

例えば、

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([7, 8, 9])
row_n = arr.shape[0]  # last row
arr = np.insert(arr, row_n, [row], axis=0)
print(arr)

出力:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

上記のコードでは、マトリックスの最後に行を追加します。shape() 関数は配列の次元を返し、行列の行の総数を明らかにします。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn