2022年2月3日木曜日

【Numpy】appendによる値やlist, ndarrayの追加

 Pythonの数値計算ライブラリNumPyの配列型データ構造であるndarrayに値や別のndarrayを追加する際には、numpy.appendを用いる。

Numpyを使う際にはimportが必要。しばしば次のようにnpと略されてインポートされる。

import numpy as np



1. appendの書式

 appendの書式は以下。appendでは元のndarrayに追加されるのではなくコピーが生成される。

numpy.append(arr, values, axis=None)
引数 意味
arr 追記されるndarrayまたはlist
values 追記するndarrayまたはlist。arrと
axis オプション。指定しなければarr、valusの値が一次元ndarrayにコピーされる。指定した場合指定した軸方向に追加される。


2. 一次元ndarrayへのappend

 

一次元ndarray[10, 11, 12]に13を追記する例。

import numpy as np

x = np.array([10, 11, 12])
print(np.append(x, 13))

実行結果

[10 11 12 13]


list[13, 14]を追記する例。

import numpy as np

x = np.array([10, 11, 12])
print(np.append(x, [13, 14]))

実行結果

[10 11 12 13 14]


arrvaluesの順番を入れ替えると追記後の順番を変えられる。

import numpy as np

x = np.array([10, 11, 12])
print(np.append([13, 14], x))

実行結果

[13 14 10 11 12]


3. 二次元以上のndarrayへのappend

 

二次元以上のndarrayへのappendではaxisを指定することで次元を維持して追記できる。
axisを指定しないで二次元ndarrayappendする場合。一次元に変換される。

import numpy as np

x = np.array([[10, 11, 12], [13, 14, 15]])
print(np.append(x, [[16, 17, 18]]))

実行結果

[10 11 12 13 14 15 16 17 18]


二次元ndarrayへのappendaxis=0を指定した場合。

import numpy as np

x = np.array([[10, 11, 12], [13, 14, 15]])
print(np.append(x, [[16, 17, 18]], axis=0))

実行結果

[[10 11 12]
 [13 14 15]
 [16 17 18]]


 

三次元ndarrayへのappendaxis=1を指定した場合。

import numpy as np

x = np.array([[[10, 11, 12], [13, 14, 15]]])
print(np.append(x, [[[16, 17, 18]]], axis=1))

実行結果

[[[10 11 12]
  [13 14 15]
  [16 17 18]]]


4. リファレンス

NumPy > numpy.append

使用バージョン:Python 3.8.12/numpy 1.21.5

0 件のコメント:

コメントを投稿