English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La división es la operación inversa de la conexión.
Conexión (Joining) es la combinación de varios arrays en uno, división (Spliting) es la división de un array en varios.
Las funciones básicas de división de arrays son las siguientes:
Función | Arrays y operaciones |
split | Dividir un array en varios subarrays |
hsplit | Dividir un array en varios subarrays horizontales (por columnas) |
vsplit | Dividir un array en varios subarrays verticales (por filas) |
El formato de la función numpy.split para dividir un array en subarrays a lo largo de un eje específico es el siguiente:
numpy.split(ary, indices_or_sections, axis)
Descripción de los parámetros:
ary: array que se divideindices_or_sections: es un entero, se dividirá por igual, si es un array, se dividirá en las posiciones del eje (abierto a la izquierda, cerrado a la derecha) axis: a lo largo de qué dimensión realizar el corte, por defecto 0, cortar horizontalmente. Si1Al cortar verticalmente
import numpy as np a = np.arange(15) print('Primera matriz: ') print(a) print('\n') print('Dividir el array en tres subarrays de igual tamaño:') b = np.split(a,5) print(b) print('\n') print('Dividir el array en la posición indicada en un array unidimensional:') b = np.split(a, [4,7]) print(b)
El resultado de la salida es:
Primera matriz: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]] Dividir el array en tres subarrays de igual tamaño: [array([0, 1, 2)) array([3, 4, 5)) array([6, 7, 8)) array([ 9, 10, 11)) array([12, 13, 14]] Dividir el array en la posición indicada en un array unidimensional: [array([0, 1, 2, 3)) array([4, 5, 6)) array([ 7, 8, 9, 10, 11, 12, 13, 14]]
Cuando los elementos del array sean menos de la cantidad requerida, se necesita usarFunción array_splitSe ajustará desde el final.
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) newarr = np.array_split(arr, 4) print(newarr)
El resultado de la salida es:
[array([1, 2)) array([3, 4)) array([5)) array([6]]
La función numpy.hsplit se utiliza para dividir el array horizontalmente, dividiendo el array original en la cantidad especificada de arrays de la misma forma.
import numpy as np harr = np.floor(10 * np.random.random(2, 8)) print('Array original: ') print(harr) print('Después de dividir: ') print(np.hsplit(harr, 4))
El resultado de la salida es:
Array original: [7. 9. 2. 6. 8. 7. 4. 5.] [2. 5. 3. 5. 9. 4. 1. 3.]] Después de dividir: [array([7. 9.], [2. 5.]]2. 6.], [3. 5.]]8. 7.], [9. 4.]]4. 5.], [1. 3.]
numpy.vsplit divide el array a lo largo del eje vertical, su modo de división es el mismo que el de hsplit.
import numpy as np a = np.arange(16).reshape(4,4) print('Primera matriz: ') print(a) print('\n') print('División vertical: ') b = np.vsplit(a,2) print(b)
El resultado de la salida es:
Primera matriz: [[0 1 2 3]] [ 4 5 6 7]] [ 8 9 10 11]] [12 13 14 15]] División vertical: [array([[ 1, 2, 3], [4, 5, 6, 7]]] 8, 9, 10, 11], [12, 13, 14, 15]]]