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().