División de arreglos NumPy

Dividir arrays NumPy

La división es la operación inversa de la conexión.

Conexión (Joining) es combinar varios arrays en uno, división (Spliting) es dividir un array en varios.

Usamos array_split() Dividir el array, pasar el array que se va a dividir y el número de divisiones a pasarle.

Ejemplo

Dividir el array en 3 partes:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr)

Ejecutar ejemplo

Notas:El valor de retorno es un array que contiene tres arrays.

Si los elementos del array son menos de la cantidad requerida, se ajustarán desde el final.

Ejemplo

Dividir el array en 4 partes:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 4)
print(newarr)

Ejecutar ejemplo

Consejo:También tenemos split() El método está disponible, pero cuando los elementos del array de origen son menos de los necesarios para la división, no ajustará los elementos, como en el ejemplo anterior,array_split() funciona correctamente, pero split() fallará.

Dividir en array

array_split() El valor de retorno del método es un array que contiene cada división.

Si se divide un array en 3 arrays, se puede acceder a ellos desde el resultado como a cualquier elemento de un array:

Ejemplo

Acceder al array dividido:

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])

Ejecutar ejemplo

Dividir array bidimensional

Al dividir un array bidimensional, utilice la sintaxis correspondiente.

Uso array_split() Método, ingrese el array que desea dividir y el número de divisiones que desea realizar.

Ejemplo

Dividir este array 2-D en tres arrays 2-D.

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)

Ejecutar ejemplo

El ejemplo anterior devuelve tres arrays 2-D.

Veamos otro ejemplo, esta vez cada elemento del array 2-D contiene 3 elementos.

Ejemplo

Dividir este array 2-D en tres arrays 2-D.

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)

Ejecutar ejemplo

El ejemplo anterior devuelve tres arrays 2-D.

Además, puede especificar el eje para dividir.

El siguiente ejemplo también devuelve tres arrays 2-D, pero se dividen a lo largo de las filas (axis=1).

Ejemplo

Dividir este array 2-D en tres arrays 2-D 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)

Ejecutar ejemplo

Otra solución es usar con hstack() Contrario hsplit().

Ejemplo

Utilizar el método hsplit() para dividir un array 2-D en tres arrays 2-D 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)

Ejecutar ejemplo

Consejo:vsplit() Y dsplit() Se puede usar con vstack() Y dstack() Métodos alternativos similares.