numpy.append() en Python

La función append() de NumPy de Python se utiliza para fusionar dos matrices. Esta función devuelve una nueva matriz y la matriz original permanece sin cambios.

Sintaxis de append() de NumPy

La sintaxis de la función es:

numpy.append(arr, values, axis=None)
  • El arr puede ser un objeto similar a una matriz o una matriz NumPy. Los valores se agregan a una copia de esta matriz.
  • Los valores son objetos similares a matrices y se agregan al final de los elementos de “arr”.
  • El eje especifica el eje a lo largo del cual se agregan los valores. Si no se proporciona el eje, ambas matrices se aplastan.

Ejemplos de numpy.append() en Python

Vamos a ver algunos ejemplos de la función append() de NumPy.

1. Aplanando dos matrices

import numpy as np

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

# no se proporciona un eje, los elementos de la matriz se aplanarán
arr_flat = np.append(arr1, arr2)

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

2. Fusion a lo largo del eje

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

Salida:

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]]
  • Cuando se fusionan las matrices 2×2 a lo largo del eje x, el tamaño de la matriz de salida es 4×2.
  • Cuando se fusionan las matrices 2×2 a lo largo del eje y, el tamaño de la matriz de salida es 2×4.

3. Fusión de matrices de formas diferentes

La función append() arroja ValueError si ambas matrices tienen formas diferentes, excluyendo el eje. Entendamos este escenario con un ejemplo sencillo.

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)
  • En el primer ejemplo, los elementos de la matriz se aplanan. Por lo tanto, incluso si tienen tamaños completamente diferentes – 1×2 y 2×3, el append() funciona bien.
  • En el segundo ejemplo, las formas de las matrices son 1×2 y 2×2. Dado que estamos agregando a lo largo del eje 0, la forma del eje 0 puede ser diferente. Las otras formas deben ser las mismas, por lo que este append() también funcionará bien.

Salida:

[1 2 1 2 3 1 2 3]

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

Veamos otro ejemplo donde se levantará 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
>>> 
Python numpy append() ValueError

Las formas de las matrices son 1×2 y 2×3. Dado que las formas del eje-1 son diferentes, se levanta ValueError. Referencia: Documentación de la API

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