Unión de arrays

Una función que frecuentemente resulta muy útil es numpy.concatenate, función que nos permite unir dos o más arrays a lo largo de un cierto eje. Su sintaxis básica es la siguiente:

np.concatenate((a1, a2, ... an), axis = 0)

Donde ai es un array. Éstos deberán ser todos del mismo tamaño excepto en la dimensión a lo largo de la cual se va a realizar la concatenación, representado por el parámetro axis (que toma el valor 0 por defecto). Veamos un par de ejemplos:

a = np.array([1, 2, 3])
a

array([1, 2, 3])

b = np.array([4, 5, 6])
b

array([4, 5, 6])

np.concatenate((a, b))

array([1, 2, 3, 4, 5, 6])

En este ejemplo estamos trabajando con arrays unidimensionales, de forma que no hay otra opción más que concatenarlos a lo largo de este eje. Sin embargo, si los convertimos en arrays bidimensionales de dimensiones (1, 3):

a = np.array([1, 2, 3]).reshape(1, -1)
a

array([[1, 2, 3]])

b = np.array([4, 5, 6]).reshape(1, -1)
b

array([[4, 5, 6]])

...podemos seguir concatenándolos verticalmente:

np.concatenate((a, b))

Unión de arrays

...u horizontalmente si especificamos como eje de concatenación el eje 1:

np.concatenate((a, b), axis = 1)

array([[1, 2, 3, 4, 5, 6]])