La funzione append() di Python numpy viene utilizzata per unire due array. Questa funzione restituisce un nuovo array e l’array originale rimane inalterato.
Sintassi di NumPy append()
La sintassi della funzione è:
numpy.append(arr, values, axis=None)
- Il arr può essere un oggetto simile a un array o un array NumPy. I valori vengono aggiunti a una copia di questo array.
- I valori sono oggetti simili a un array e vengono aggiunti alla fine degli elementi di “arr”.
- La axis specifica l’asse lungo il quale i valori vengono aggiunti. Se l’asse non è fornito, entrambi gli array vengono appiattiti.
Esempi di Python numpy.append()
Diamo un’occhiata ad alcuni esempi della funzione append() di NumPy.
1. Appiattimento di Due Array
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[10, 20], [30, 40]])
# nessun asse fornito, gli elementi dell'array verranno appiattiti
arr_flat = np.append(arr1, arr2)
print(arr_flat) # [ 1 2 3 4 10 20 30 40]
2. Fusione lungo l’asse
import numpy as np
arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=0)
print(f'Merged 2x2 Arrays along Axis-0:\n{arr_merged}')
arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=1)
print(f'Merged 2x2 Arrays along Axis-1:\n{arr_merged}')
Output:
Merged 2x2 Arrays along Axis-0:
[[ 1 2]
[ 3 4]
[10 20]
[30 40]]
Merged 2x2 Arrays along Axis-1:
[[ 1 2 10 20]
[ 3 4 30 40]]
- Quando gli array 2×2 vengono fusi lungo l’asse x, la dimensione dell’array di output è 4×2.
- Quando gli array 2×2 vengono fusi lungo l’asse y, la dimensione dell’array di output è 2×4.
3. Fusione di array di forme diverse
La funzione append() genera ValueError se entrambi gli array hanno forme diverse, escludendo l’asse. Capiremo questo scenario con un esempio semplice.
arr3 = np.append([[1, 2]], [[1, 2, 3], [1, 2, 3]])
print(arr3)
arr3 = np.append([[1, 2]], [[1, 2], [3, 4]], axis=0)
print(arr3)
- Nel primo esempio, gli elementi dell’array sono appiattiti. Quindi anche se hanno dimensioni completamente diverse – 1×2 e 2×3, l’append() funziona bene.
- Nel secondo esempio, le forme degli array sono 1×2 e 2×2. Poiché stiamo aggiungendo lungo l’asse 0, la forma dell’asse 0 può essere diversa. Le altre forme dovrebbero essere le stesse, quindi anche questo append() funzionerà bene.
Output:
[1 2 1 2 3 1 2 3]
[[1 2]
[1 2]
[3 4]]
Vediamo un altro esempio in cui verrà generato ValueError.
>>> import numpy as np
>>>
>>> arr3 = np.append([[1, 2]], [[1, 2, 3]], axis=0)
Traceback (most recent call last):
File "", line 1, in
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numpy/lib/function_base.py", line 4528, in append
return concatenate((arr, values), axis=axis)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
>>>

Le forme degli array sono 1×2 e 2×3. Poiché le forme dell’asse 1 sono diverse, viene generato ValueError. Riferimento: Doc API
Source:
https://www.digitalocean.com/community/tutorials/numpy-append-in-python