NumPy 配列の追加

胡金庫 2021年5月13日
NumPy 配列の追加

Numpy には、Python での list に対する append 操作と同様に、配列にデータを追加するための append 関数もあります。しかし、場合によっては、NumPy の append も Python の listextend メソッドに少し似ています。

配列 append

最初に ndarray.append の構文をリストしましょう。

`numpy.append(arr, values, axis = None)`

入力パラメータ

パラメータ名 データの種類 説明
arr array_like 要素を追加する配列
values array_like 追加された配列
axis INT values 追加される軸

いくつか例を挙げましょう。

In[1]: import numpy as np
arrayA = np.arange(12).reshape(3, 4)
arrayB = np.ones((1, 4))
np.append(arrayA, arrayB)

Out[1]: array([0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11.,  1.,
               1.,  1.,  1.])

axis が指定されていない場合、arrvalues の両方が操作前にフラット化されます。結果は 1 次元配列になります。上記の例では、2つの指定された配列の形状を気にする必要はありません。

In[2]: np.append(arrayA, arrayB, axis=0)
Out[2]: array([[0.,  1.,  2.,  3.],
               [4.,  5.,  6.,  7.],
               [8.,  9., 10., 11.],
               [1.,  1.,  1.,  1.]])
In[2]: np.append(arrayA, np.ones((1, 3)), axis=0)
---------------------------------------------------------------------------
ValueError                                Traceback(most recent call last)
<ipython-input-25-fe0fb14f5df8 > in < module > ()
--- -> 1 np.append(arrayA, np.ones((1, 3)), axis=0)

D: \ProgramData\Anaconda3\lib\site-packages\numpy\lib\function_base.py in append(arr, values, axis)
5164         values = ravel(values)
5165         axis = arr.ndim-1
-> 5166 return concatenate((arr, values), axis=axis)

ValueError: all the input array dimensions except for the concatenation axis must match exactly

axis0 に等しい場合、配列 values が列の方向で arr に追加されます。指定された 2つの配列の行の長さが同じでない場合は、ValueError が発生します - ValueError: all the input array dimensions except for the concatenation axis must match exactly

パラメータ axis=1 を使用して、行方向にデータを追加してみてください。

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook