English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Conexión de array de NumPy

Las funciones más comunes para conectar arrays son las siguientes:

FunciónDescripción
concatenateConectar una secuencia de arrays a lo largo del eje existente
stackAgregar una serie de arrays a lo largo de un nuevo eje.
hstackApilar horizontalmente las matrices de una secuencia (dirección de columnas)
vstackApilar verticalmente las matrices de una secuencia (dirección de filas)
dstackApilar a lo largo de la altura, que es igual a la profundidad

Conectar arrays a lo largo de un eje (numpy.concatenate)

La conexión significa poner el contenido de dos o más arrays en un solo array.
En SQL, conectamos tablas basándonos en la clave, mientras que en NumPy, conectamos arrays a lo largo de un eje.

La función numpy.concatenate se utiliza para conectar dos o más arrays de la misma forma a lo largo de un eje especificado, con el siguiente formato:

numpy.concatenate((a1, a2, ...), axis)

Descripción de los parámetros:

a1, a2, ...: arrays de tipo similaraxis: el eje a lo largo del cual se conectan los arrays, el valor predeterminado es 0

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
print('Primer array:')
print(a)
print('\n')
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
print('Segundo array:')
print(b)
print('\n')
 # Las dimensiones de dos arrays son iguales
print ('A lo largo del eje 0, conectar dos arrays:')
print (np.concatenate((a,b)))
print('\n')
print ('A lo largo del eje 1 Conectar dos arrays:')
print (np.concatenate((a,b),axis = 1))

El resultado de la salida es:

[[ 5 6 7 8 9]
[ 7 8 9 10 11]]
Conectar dos arrays a lo largo del eje 0:
[[ 1 2 3 4 5]
[ 3 4 5 6 7]
[ 5 6 7 8 9]
[ 7 8 9 10 11]]
A lo largo del eje 1 Conectar dos arrays:
[[ 1 2 3 4 5 5 6 7 8 9]
[ 3 4 5 6 7 7 8 9 10 11]]

Conectar arrays utilizando la función de apilamiento (numpy.stack)

La función numpy.stack se utiliza para conectar una secuencia de arrays a lo largo de un nuevo eje, con el siguiente formato:

numpy.stack(arrays, axis)

Descripción de los parámetros:

secuencia de arrays con la misma formaaxis: devuelve el eje en el que se apilan los arrays, la entrada del array se apila a lo largo de él

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
print('Primer array:')
print(a)
print('\n')
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
print('Segundo array:')
print(b)
print('\n')
print ('A lo largo del eje 0, apilar dos matrices:')
print (np.stack((a,b),0))
print('\n')
print ('A lo largo del eje 1 apilar dos matrices:')
print (np.stack((a,b),1))

El resultado de la salida es el siguiente:

Primer array:
[[1 2 3 4 5]
[3 4 5 6 7]]
Segundo array:
[[ 5 6 7 8 9]
[ 7 8 9 10 11]]
Apilar dos arrays a lo largo del eje 0:
[[[ 1 2 3 4 5]
[ 3 4 5 6 7]]
[[ 5 6 7 8 9]
[ 7 8 9 10 11]]]
A lo largo del eje 1 Apilar dos arrays:
[[[ 1 2 3 4 5]
[ 5 6 7 8 9]]
[[ 3 4 5 6 7]
[ 7 8 9 10 11]]]

Apilamiento de arrays en filas (numpy.hstack)

numpy.hstack es una variante de la función numpy.stack, que genera un array a través de apilamiento horizontal.

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
print('Primer array:')
print(a)
print('\n')
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
print('Segundo array:')
print(b)
print('\n')
print('Apilamiento horizontal:')
c = np.hstack((a, b))
print(c)
print('\n')

El resultado de la salida es el siguiente:

Primer array:
[[1 2 3 4 5]
 [3 4 5 6 7]]
Segundo array:
[[ 5 6 7 8 9]
 [ 7 8 9 10 11]]
Apilamiento horizontal:
[[ 1 2 3 4 5 5 6 7 8 9]
 [ 3 4 5 6 7 7 8 9 10 11]]

Apilamiento de arrays en columnas (numpy.vstack)

numpy.vstack es una variante de la función numpy.stack, que genera un array a través de apilamiento vertical.

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
print('Primer array:')
print(a)
print('\n')
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
print('Segundo array:')
print(b)
print('\n')
print('Apilamiento vertical:')
c = np.vstack((a, b))
print(c)

El resultado de la salida es:

Primer array:
[[1 2 3 4 5]
 [3 4 5 6 7]]
Segundo array:
[[ 5 6 7 8 9]
 [ 7 8 9 10 11]]
Apilamiento vertical:
[[ 1 2 3 4 5]
 [ 3 4 5 6 7]
 [ 5 6 7 8 9]
 [ 7 8 9 10 11]]

Apilamiento en altura (numpy.dstack)

NumPy proporciona una función auxiliar: dstack() apila en altura, que es igual a la profundidad.

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
arr = np.dstack((a, b))
print(arr)

El resultado de la salida es:

[[[ 1 5]
  [ 2 6]
  [ 3 7]
  [ 4 8]
  [ 5 9]]
 [[ 3 7]
  [ 4 8]
  [ 5 9]
  [ 6 10]
  [ 7 11]]]