NumPy Tutorial - Apêndice NumPy Array

Jinku Hu 13 maio 2021
NumPy Tutorial - Apêndice NumPy Array

Numpy também tem a função append para anexar dados ao array, assim como a operação append para list em Python. Mas em alguns casos, o append no NumPy também é um pouco similar ao método extend no Python list.

Array append em Python

Vamos primeiro listar a sintaxe de ndarray.append.

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

Parâmetros de entrada

nome de parâmetro tipo de dado Descrição
arr array_like Uma matriz para adicionar um elemento
values array_like Array adicionado
axis INT O eixo ao longo do qual os values são anexados.

Vamos fazer alguns exemplos,

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.])

Quando o axis não é dado, ambos “arr” e values são achatados antes da operação. O resultado será um array 1-D. No exemplo acima, não precisamos nos preocupar com a forma de dois arrays dados.

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

Quando axis é igual a 0, array values será anexado a arr na direção da coluna. Ele irá aumentar o ValueError se dois arrays não tiverem o mesmo comprimento na linha - ValueError: all the input array dimensions except for the concatenation axis must match exactly.

Você pode tentar anexar os dados na direção da linha com o parâmetro axis=1.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook