【Python】Numpy配列のndarrayに要素を追加・結合する

NumpyはPythonの計算用ライブラリで、ndarrayは計算に特化した配列です。

以前にndarrayの特徴と基本的な操作方法について紹介しています。

今回は、ndarray(一次元配列)に要素や配列を追加・結合する方法を紹介していきます。

ndarrayに要素を追加しますが、ndarrayには要素を追加、結合するメソッドはありません。そこに注意して以下参考にしてください。

末尾に追加する

末尾に要素を追加する場合は、np.append()を使います。ndarrayのメソッドではなく、npのメソッドであるという点に気を付けてください。

import numpy as np

x = np.arange(4)
##[0, 1, 2, 3]

x_add = np.append(x, 4)
##[0, 1, 2, 3, 4]

といったように、配列xの後ろに4を追加することができました。

もちろん、配列を追加することもできます。

x = np.arange(4)
##[0, 1, 2, 3]

y = np.arange(4, 7)

x_add = np.append(x, y)
##[0, 1, 2, 3, 4, 5, 6]]

先頭に追加する

配列の先頭に要素を追加する場合も、np.appned()を用います。np.append()で指定する順序を、末尾に追加する場合と逆にすることで先頭に追加することができます。以下、配列xの先頭に10を追加します。

x = np.arange(4)
##[0, 1, 2, 3]

x_add = np.append(10, x)
##[10,  0,  1,  2,  3]

配列を先頭に追加することも可能です。

import numpy as np

x = np.arange(4)
##[0, 1, 2, 3]

y = np.arange(4, 7)
##[4, 5, 6]

x_add = np.append(y, x)
##[4, 5, 6, 0, 1, 2, 3]

任意の位置に追加する

配列の任意の位置に要素を追加する場合は、np.insert()を用います。

np.insert()の引数は以下の通りです。

np.insert(①, ②, ③, ④)

①:元の配列

②:要素を追加する位置

③:追加する要素

④:要素を追加する軸(2次元以上。デフォルトはNone)

**④は省略可能です。

では、配列xの真ん中に50を追加してみます。

x = np.arange(4)
##[0, 1, 2, 3]

x_add = np.insert(x, 2, 50)
##[ 0,  1, 50,  2,  3]

というように、任意の位置に要素を追加できました。

複数要素をそれぞれ指定して追加

np.insert()では、複数の要素をそれぞれ位置指定して追加することもできます。

x = np.arange(4)
##[0, 1, 2, 3]

x_add = np.insert(x, [1, 3, 4], [50, 100, 150])
##[  0,  50,   1,   2, 100,   3, 150]

まとめ

一次元のndarrayに要素を追加する方法を紹介してきました。

ndarrayも、自由に中身のアレンジができる印象ですね。1つ1つの要素をプログラムで修正する場面はあまりないかもしれませんが、配列の追加や任意の位置に追加する方法は知っておきたいところです。

別記事で、二次元以上のndarrayへの要素追加についても紹介したいと思います^^

ではでは👋