English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Las funciones más comunes para conectar arrays son las siguientes:
Función | Descripción |
concatenate | Conectar una secuencia de arrays a lo largo del eje existente |
stack | Agregar una serie de arrays a lo largo de un nuevo eje. |
hstack | Apilar horizontalmente las matrices de una secuencia (dirección de columnas) |
vstack | Apilar verticalmente las matrices de una secuencia (dirección de filas) |
dstack | Apilar a lo largo de la altura, que es igual a la profundidad |
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]]
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]]]
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]]
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]]
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]]]