numpy.append関数の使い方と仕様

numpy.append関数の使い方と仕様Numpy
ゆうすけ
ゆうすけ

numpy.appendってなんですか?

資格マフィア
資格マフィア

ndarray(Numpy配列)に要素を追加する関数だ。
なお、Listのappendとは使い方が違う。

 

✔️ 本記事のテーマ

numpy.append関数の使い方


✔️ 読者さんへの前置きメッセージ

本記事は「Numpyのappend関数」について書いています。

 

この記事を読むことで
「numpy.append関数の使い方と使いどころ」を理解できます。

 

Numpyは数値計算に特化したPythonライブラリです。

 

Numpyライブラリは、
機械学習や画像処理などの複雑な計算が必要となる処理では欠かすことができません。

 

Numpyのappend関数は、Numpyの配列に要素を追加するときに使用します。

 

それでは、Numpyライブラリのappend関数について解説していきましょう。

 

なお、numpyのその他の関数については以下の記事でも解説しています。

 

Numpyとは?

numpyとは?

numpyは、Pythonで数値計算をするためのライブラリです。

 

基本的な計算はPythonだけでも出来ますが、
numpyを使うことで難易度の高い計算や複雑な計算を
簡単にそして高速に行うことができます。

 

近年、numpyの注目度が高まっている背景には、
機械学習の台頭が挙げられるでしょう。

 

Python自体、機械学習と関連の高い言語ですが、
numpyライブラリはその便利さから機械学習分野では欠かせないライブラリです。

 

なお、Numpyついての詳細は
numpyの使い方と便利な関数」の記事でも解説しています。

 

numpy.append関数の使い方

numpy.append関数の使い方

numpy.append関数を使うことで、以下のことができるようになります。

  • 配列(ndarray)の末尾に要素を追加
  • 配列(ndarray)の先頭に要素を追加

「末尾/先頭のどちらに追加するか」によって使い方が変わります。

配列(ndarray)の末尾に要素を追加

numpy.append関数は引数を2つ取ります。

 

先頭に追加する場合は、
第1引数に配列ndarray、第2引数に追加する要素を指定します。

 

なお、numpy.append関数は、新たなndarrayを返します。

 

import numpy as np


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

output = np.append(input, 4)
print(output)
# [1 2 3 4]

配列(ndarray)の先頭に要素を追加

Ndarrayの先頭に要素を追加する場合は、先ほどの第1引数と第2引数を入れ替えます。

 

第1引数に配列ndarray、第2引数に追加する要素を指定します。

 

import numpy as np


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

output = np.append(0, input)
print(output)
# [0 1 2 3]

 

すなわち、

  • 要素を先頭に追加するなら(要素, 配列)
  • 末尾に追加するなら(配列, 要素)

の順で引数を指定します。

 

かなり直感的な使い方ですね。

 

一次元配列のnumpy.append関数

一次元配列のnumpy.append関数

一次元配列に対するnumpy.append関数の使い方を解説していきます。

 

一次元配列に対するappendはシンプルです。

 

既に説明した通り、
要素を先頭に追加するなら第1引数、末尾に追加するなら第2引数
に要素を渡してやれば、OKです。

 

import numpy as np


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

output = np.append(input, 4)
print(output)
# [1 2 3 4]

 

なお、numpy.append関数では、
以下のようにリストに対して、さらにリストを追加することもできます。

 

import numpy as np


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

input_2 = np.array([4, 5, 6])
# [4 5 6]


output = np.append(input_1, input_2)
print(output)
# [1 2 3 4 5 6]

二次元配列のnumpy.append

二次元配列のnumpy.append

次は二次元配列に対するnumpy.append関数の使い方を解説しましょう。

 

二次元配列に対するnumpy.append関数には2通りの使い方があります。

  • 一次元配列に平坦化してから追加する
  • 次元を保ったまま追加する

順番に解説していきましょう。

一次元配列に平坦化してから追加する

二次元配列に対するnumpy.append関数はデフォルトでこの動作になります。

 

よって、特に引数を与えずに、
二次元配列に対してnumpy.append関数をかけるとこの動作をします。

 

動作内容を具体的に説明しましょう。

 

input = np.array([[0, 1, 2], [3, 4, 5]])
# [ [0 1 2]
#   [3 4 5] ]

output = np.append(input, 10))
# [ 0 1 2 3 4 5 10 ]

 

このように二次元配列が一次元配列に平坦化され、
その一次元配列に対して要素を追加しています。

 

また、二つの二次元配列をnumpy.append関数で足し合わせることで、
合体させた一次元配列を作ることもできます。

 

input_1 = np.array([[1, 2, 3], [4, 5, 6]])
# [ [1 2 3]
#   [4 5 6] ]

input_2 = np.array([[10, 20, 30], [40, 50, 60]])
# [ [10 20 30]
#   [40 50 60] ]

output = np.append(input_1, input_2))
# [ 1 2 3 4 5 6 10 20 30 40 50 60 ]

次元を保ったまま追加する

引数axisを指定することで、次元を保ったまま追加することができます。

 

実際のユースケースとしてはこちらの方が多いでしょう。

 

第3引数としてaxis=0を指定すると縦方向に追加、
axis=1を指定すると横方向に追加されます。

 

実際にコードを書いてみましょう。

 

input_1 = np.array([[1, 2, 3], [4, 5, 6]])
# [ [1 2 3]
#   [4 5 6] ]

input_2 = np.array([[10, 20, 30], [40, 50, 60]])
# [ [10 20 30]
#   [40 50 60] ]

print(np.append(input_1, input_2, axis=0))
# [[ 1  2  3]
#  [ 4  5  6]
#  [10 20 30]
#  [40 50 60]]

print(np.append(input_1, input_2, axis=1))
# [[ 1  2  3 10 20 30]
#  [ 4  5  6 40 50 60]]

 

このように、axis=0を指定するとinput_2の要素([10, 20, 30]と[40, 50, 60])が新たに縦方向に追加されています。

 

一方、axis=1を指定するとinput_2の要素が横方向に追加され、
[ 1 2 3 10 20 30]と[ 4 5 6 40 50 60]という要素の配列になっています。

 

なお、一次元配列の時と同じように引数を入れ替えることで、
追加する順番を入れ替えることができます。

 

input_1 = np.array([[1, 2, 3], [4, 5, 6]])
# [ [1 2 3]
#   [4 5 6] ]

input_2 = np.array([[10, 20, 30], [40, 50, 60]])
# [ [10 20 30]
#   [40 50 60] ]

print(np.append(input_2, input_1, axis=0))
# [[10 20 30]
#  [40 50 60]
#  [ 1  2  3]
#  [ 4  5  6]   ]

print(np.append(input_2, input_1, axis=1))
# [[ 10 20 30 1  2  3 ]
#  [ 40 50 60 4  5  6 ]]

NumpyやPythonについてもっとスキルをつけるなら

NumpyやPythonについてもっとスキルをつけるなら

今回は、Numpyのappend関数について解説しました。

 

Numpyは画像認識や機械学習を行う上では、欠かすことのできないライブラリです。

 

Numpyについてスキルをつけるなら、Udemyの教材がオススメです。

>> 【NumPy・Python3で】ゼロから作るニューラルネットワーク

 

Udemyは動画ベースで学習ができるので、
実際のコードや図解を見ながら、学習を進めることができます。

 

さらに今なら30日間返金保証がついているので、
一度購入して自分の思っていたものと違った場合は費用がかかりません。

 

この教材はNumpyを使って機械学習を行うところまでを動画で解説しています。

 

誰もがつまずきがちなNumpyライブラリ特有の仕様や機械学習という概念について、分かりやすく解説されています。独学でPythonによる機械学習を学ぶにはピッタリの教材です。

 

また、Pythonについて基礎から学ぶのであれば、オンラインスクールがオススメです。


オンラインスクールで学習すると、講義も分かりやすく、
サポート体制もしっかりしているので、これからPythonを学ぶ人にもオススメです。


オンラインで無料レッスンを体験することもできるので、
自分にあっているかどうかを確かめることができます。


オススメは以下の3つです。
どのスクールも無料体験が用意されているので、
契約前に自分に最適なスクールを探すことができるでしょう。

✔️オススメのプログラミングスクール ベスト3

プログラミングスクールについては「プログラミングスクールで失敗しないためには【オススメベスト3も紹介】」の記事でも紹介しています。


気になった方はぜひチェックしてみて下さい〜!

コメント

タイトルとURLをコピーしました