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