配列の末尾に要素を追加するnumpy.append()の使い方

配列の末尾に要素を追加するnumpy.append()の使い方

すでに作成した配列に新しくデータを追加したいと思ったことはありませんか?

numpy.append()を使用すると用意した配列の最後に新たなデータを追加することが可能です。

本記事では、numpy.append()の使い方について、実際のコードを書きながら、分かりやすく紹介していきます。

本記事のコードは全てグーグルコラボラトリーで記述・動作確認をしています。

グーグルコラボラトリーとはgoogleアカウントを持っている人であれば、誰でも・無料で使うことができるpythonの対話型実行環境です。

データ分析に必要なライブラリが初めから搭載されていて、環境構築の必要がないため、python初心者には特にオススメです!

numpyを使用するには事前にnumpyをインストールする必要があります。

グーグルコラボラトリーを利用している人はすでにインストールされているので不要です。

自分で環境を用意している人は環境構築を行なってください。

コーディングできる準備ができたら、はじめにnumpyをインポートして使用できるようにしましょう。

numpyはnpと省略してインポートするのが一般的です。

import numpy as np
目次

numpy.append()の使い方

numpy.append()の使い方

numpy.append()は配列の最後に要素を追加する関数です。

numpy.append(用意した配列, 追加したい配列)のように記述して使います。

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

new_arr = np.append(arr1, arr2)
print(new_arr)

出力:

[1 2 3 4 5 6]

arr1の末尾にarr2が追加された、1次元配列を得ました。

多次元配列(2次元・3次元以上)でのnumpy.append()

多次元配列(2次元・3次元以上)でのnumpy.append()

2次元以上の多次元配列でもnumpy.append()を使用可能です。

この時、引数axisで結合する軸を指定してください。

arr3 = np.array([[1, 2, 3],
                 [4, 5, 6]])
arr4 = np.array([[7, 8, 9],
                 [10, 11, 12]])

arr_axis0 = np.append(arr3, arr4, axis=0)
print('arr_axis0の配列')
print(arr_axis0)

arr_axis1 = np.append(arr3, arr4, axis=1)
print('arr_axis1の配列')
print(arr_axis1)

出力:

arr_axis0の配列
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]

arr_axis1の配列
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]

配列を結合する方法は、numpy.append()の他にもあります。特にnumpy.concatenate()は汎用的でオススメです!

ちなみに軸を指定しなくでも動作しますが、1次元配列になります。

多次元配列を1次元配列にすることを平坦化(フラット化、1次元化)と言います。

arr_noaxis = np.append(arr3, arr4)
print(arr_noaxis)
print(arr_noaxis.shape)

出力:

[ 1 2 3 4 5 6 7 8 9 10 11 12]
(12,)

配列の形状が同じで無いとエラーになってしまう点に注意が必要です。

arr5 = np.array([1, 2, 3])

np.append(arr4, arr5, axis=0)

出力:

ValueError:

上記の例では、arr_5が1次元配列のためエラーが出ました。

arr_5を1行3列の2次元配列にreshapeすることでエラーの解決が可能です。

print(arr5)
print(arr5.shape)

re_arr5 = arr5.reshape(1, 3)
print(re_arr5)
print(re_arr5.shape)

出力:

[1 2 3]
(3,)
[[1 2 3]]
(1, 3)
arr4_re5 = np.append(arr4, re_arr5, axis=0)
print(arr4_re5)

出力:

[[ 7 8 9]
[10 11 12]
[ 1 2 3]]

axisを指定しない場合は配列の形状が違っても動作します。

これは追加する前に両方の配列を平坦化するためです。

arr1_3 = np.append(arr1, arr3)
print(arr1_3)

出力:

[1 2 3 1 2 3 4 5 6]

まとめ

今回はnumpy.append()について紹介しました。

numpy.append()は配列の末尾に要素を追加する関数です。

多次元配列の場合は引数axisを指定しましょう。

numpy.append()についてよくある質問

配列の途中に要素を追加したいです。

numpy.insert()を使用しましょう。

numpy.insert(挿入される配列, 挿入したい位置, 挿入したい要素, 軸)で使用可能です。

配列を削除したいです。

numpy.delete()を使用しましょう。

numpy.insert(操作したい配列, 削除したい位置, 削除する軸)で使用可能です。

pythonについてもっと勉強したいです!

pythonを勉強するには書籍・動画・プログラミングスクールなどがあります。特にUdemyは有料ですが、pythonを勉強できる動画がたくさんあるのでおすすめです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次