Matriz de división NumPy
División de matrices NumPy
La división es una operación inversa a la unión.
La unión fusiona varias matrices en una y la división divide una matriz en varias.
Usamos array_split()
para dividir matrices, le pasamos la matriz que queremos dividir y el número de divisiones.
Ejemplo
Divida la matriz en 3 partes:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr)
Nota: El valor devuelto es una matriz que contiene tres matrices.
Si la matriz tiene menos elementos de los necesarios, se ajustará desde el final en consecuencia.
Ejemplo
Divida la matriz en 4 partes:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 4)
print(newarr)
Nota: También tenemos el método split()
disponible, pero no ajustará los elementos cuando los elementos estén menos en la matriz de origen para dividirlos como en el ejemplo anterior, array_split()
funcionó correctamente pero
split()
fallaría.
Dividir en matrices
El valor de retorno del array_split()
método es una matriz que contiene cada una de las divisiones como una matriz.
Si divide una matriz en 3 matrices, puede acceder a ellas desde el resultado como cualquier elemento de matriz:
Ejemplo
Acceda a las matrices divididas:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])
División de arreglos 2-D
Utilice la misma sintaxis al dividir matrices 2D.
Use el array_split()
método, pase la matriz que desea dividir y la cantidad de divisiones que desea hacer.
Ejemplo
Divida la matriz 2D en tres matrices 2D.
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9,
10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)
El ejemplo anterior devuelve tres matrices 2-D.
Veamos otro ejemplo, esta vez cada elemento en las matrices 2-D contiene 3 elementos.
Ejemplo
Divida la matriz 2D en tres matrices 2D.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)
El ejemplo anterior devuelve tres matrices 2-D.
Además, puede especificar en qué eje desea realizar la división.
El siguiente ejemplo también devuelve tres matrices 2-D, pero están divididas a lo largo de la fila (eje = 1).
Ejemplo
Divida la matriz 2D en tres matrices 2D a lo largo de las filas.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)
Una solución alternativa es usar el hsplit()
opuesto de
hstack()
Ejemplo
Utilice el hsplit()
método para dividir la matriz 2D en tres matrices 2D a lo largo de las filas.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9],
[10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)
Nota: Alternativas similares a vstack()
y
dstack()
están disponibles como
vsplit()
y
dsplit()
.