numpy.append() in Python

Python numpy append() functie wordt gebruikt om twee arrays samen te voegen. Deze functie retourneert een nieuwe array en de oorspronkelijke array blijft ongewijzigd.

NumPy append() Syntax

De functiesyntax is:

numpy.append(arr, values, axis=None)
  • De arr kan een array-achtig object of een NumPy-array zijn. De waarden worden toegevoegd aan een kopie van deze array.
  • De waarden zijn array-achtige objecten en worden toegevoegd aan het einde van de elementen van “arr”.
  • De as specificeren de as waarlangs waarden worden toegevoegd. Als de as niet wordt opgegeven, worden beide arrays afgevlakt.

Python numpy.append() Voorbeelden

Laten we eens kijken naar enkele voorbeelden van de NumPy append() functie.

1. Twee Arrays Afvlakken

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[10, 20], [30, 40]])

# geen as opgegeven, array-elementen worden afgevlakt
arr_flat = np.append(arr1, arr2)

print(arr_flat)  # [ 1  2  3  4 10 20 30 40]

2. Samenvoegen langs de as

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}')

Uitvoer:

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]]
  • Wanneer de 2×2-arrays langs de x-as worden samengevoegd, is de grootte van de uitvoerarray 4×2.
  • Wanneer de 2×2-arrays langs de y-as worden samengevoegd, is de grootte van de uitvoerarray 2×4.

3. Samenvoegen van arrays met verschillende vormen

De functie append() werpt een ValueError op als beide arrays een verschillende vorm hebben, exclusief de as. Laten we dit scenario begrijpen aan de hand van een eenvoudig voorbeeld.

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)
  • In het eerste voorbeeld worden de array-elementen afgevlakt. Dus zelfs als ze volledig verschillende groottes hebben – 1×2 en 2×3, werkt de append() prima.
  • In het tweede voorbeeld zijn de array-vormen 1×2 en 2×2. Aangezien we samenvoegen langs de 0-as, kan de vorm van de 0-as verschillend zijn. De andere vormen moeten echter hetzelfde zijn, dus deze append() werkt ook prima.

Uitvoer:

[1 2 1 2 3 1 2 3]

[[1 2]
 [1 2]
 [3 4]]

Laten we naar een ander voorbeeld kijken waarbij ValueError wordt opgeworpen.

>>> 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
>>> 
Python numpy append() ValueError

De array-vormen zijn 1×2 en 2×3. Aangezien de vormen van as-1 verschillend zijn, wordt ValueError opgeworpen. Referentie: API-documentatie

Source:
https://www.digitalocean.com/community/tutorials/numpy-append-in-python