Matrice di divisione NumPy
Divisione di array NumPy
La divisione è un'operazione inversa rispetto all'unione.
L'unione unisce più array in uno e la divisione divide un array in più.
Usiamo array_split()
per dividere gli array, gli passiamo l'array che vogliamo dividere e il numero di split.
Esempio
Dividi l'array in 3 parti:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr)
Nota: il valore restituito è un array contenente tre array.
Se l'array ha meno elementi del necessario, si regolerà di conseguenza dall'estremità.
Esempio
Dividi l'array in 4 parti:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 4)
print(newarr)
Nota: abbiamo anche il metodo split()
disponibile ma non regolerà gli elementi quando gli elementi sono meno nell'array di origine per la divisione come nell'esempio sopra, array_split()
ha funzionato correttamente ma
split()
fallirebbe.
Dividi in array
Il valore restituito del array_split()
metodo è un array contenente ciascuno degli split come un array.
Se dividi un array in 3 array, puoi accedervi dal risultato proprio come qualsiasi elemento dell'array:
Esempio
Accedi agli array suddivisi:
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])
Divisione di array 2D
Utilizzare la stessa sintassi quando si dividono gli array 2D.
Usa il array_split()
metodo, passa l'array che vuoi dividere e il numero di divisioni che vuoi fare.
Esempio
Dividi l'array 2D in tre array 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)
L'esempio sopra restituisce tre matrici 2D.
Diamo un'occhiata a un altro esempio, questa volta ogni elemento negli array 2-D contiene 3 elementi.
Esempio
Dividi l'array 2D in tre array 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)
L'esempio sopra restituisce tre matrici 2D.
Inoltre, puoi specificare su quale asse desideri eseguire la divisione.
L'esempio seguente restituisce anche tre matrici 2D, ma sono divise lungo la riga (asse=1).
Esempio
Dividi l'array 2D in tre array 2D lungo le righe.
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 soluzione alternativa sta usando hsplit()
l'opposto di
hstack()
Esempio
Utilizzare il hsplit()
metodo per dividere l'array 2D in tre array 2D lungo le righe.
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: alternative simili a vstack()
e
dstack()
sono disponibili come
vsplit()
e
dsplit()
.