Tutorial Numpy - NumPy Array Append

Numpy ha anche la funzione append per aggiungere dati all’array, proprio come l’operazione append alla list in Python. Ma in alcuni casi, append in NumPy è anche un po’ simile al metodo extend in Python list.

Array append

Elenchiamo prima la sintassi di ndarray.append.

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

Parametri d’ingresso

nome del parametro tipo di dati Descrizione
arr array_like Un array per aggiungere un elemento
values array_like Array aggiunto
axis INT L’asse lungo il quale sono annessi i values.

Facciamo qualche esempio,

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 non viene fornito axis, sia arr che values vengono appiattiti prima dell’operazione. Il risultato sarà un array 1-D. Nell’esempio precedente, non dobbiamo preoccuparci della forma di due array dati.

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 è uguale a 0, i values dell’array saranno aggiunti a arr nella direzione della colonna. Alzerà il ValueError se due array dati non hanno la stessa lunghezza nella riga - ValueError: all the input array dimensions except for the concatenation axis must match exactly.

Si potrebbe provare da soli ad aggiungere i dati nella direzione della riga con il parametro axis=1.

comments powered by Disqus