NumPy 配列の追加
胡金庫
2021年5月13日
Numpy には、Python での list
に対する append
操作と同様に、配列にデータを追加するための append
関数もあります。しかし、場合によっては、NumPy の append
も Python の list
の extend
メソッドに少し似ています。
配列 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
が指定されていない場合、arr
と values
の両方が操作前にフラット化されます。結果は 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
axis
が 0
に等しい場合、配列 values
が列の方向で arr
に追加されます。指定された 2つの配列の行の長さが同じでない場合は、ValueError
が発生します - ValueError: all the input array dimensions except for the concatenation axis must match exactly
。
パラメータ axis=1
を使用して、行方向にデータを追加してみてください。