📢 Nuovo Corso Laravel API disponibile!

Dividere Array in NumPy

La divisione degli array in NumPy è un’operazione comune quando si desidera suddividere un array in parti più piccole in base a determinati criteri o posizioni. NumPy offre diverse funzioni per dividere array in modo flessibile. In questo articolo, esploreremo come suddividere gli array utilizzando le funzioni di divisione di NumPy.

Utilizzo di np.split (Divisione Equa)

La funzione np.split consente di dividere un array in parti uguali lungo un asse specifico. È necessario specificare il numero di suddivisioni desiderate lungo l’asse e l’array verrà diviso in parti uguali.

Ecco un esempio:

import numpy as np
# Creazione di un array
arr = np.array([1, 2, 3, 4, 5, 6])
# Divisione in tre parti uguali
splitted_arr = np.split(arr, 3)
print(splitted_arr)
# Restituisce una lista di array suddivisi:
# [array([1, 2]), array([3, 4]), array([5, 6])]

In questo esempio, np.split divide l’array arr in tre parti uguali.

Utilizzo di np.array_split (Divisione Non Equa)

La funzione np.array_split è simile a np.split, ma consente la suddivisione non equa di un array. Questo significa che puoi dividere l’array in parti di dimensioni diverse.

Ecco un esempio:

import numpy as np
# Creazione di un array
arr = np.array([1, 2, 3, 4, 5, 6, 7])
# Divisione in parti di dimensioni diverse
splitted_arr = np.array_split(arr, 3)
print(splitted_arr)
# Restituisce una lista di array suddivisi:
# [array([1, 2, 3]), array([4, 5]), array([6, 7])]

In questo caso, np.array_split suddivide l’array arr in tre parti di dimensioni diverse.

Utilizzo di np.split con Indici Personalizzati

Puoi anche utilizzare np.split specificando gli indici in base ai quali vuoi suddividere l’array. Questo ti offre un controllo preciso sulla posizione della divisione.

Ecco un esempio:

import numpy as np
# Creazione di un array
arr = np.array([1, 2, 3, 4, 5, 6])
# Divisione personalizzata
indices = [2, 4]
splitted_arr = np.split(arr, indices)
print(splitted_arr)
# Restituisce una lista di array suddivisi:
# [array([1, 2]), array([3, 4]), array([5, 6])]

In questo esempio, abbiamo specificato gli indici [2, 4], il che significa che l’array verrà diviso in tre parti: prima dai primi due elementi, poi dai due successivi e infine dai restanti.

Utilizzo di np.hsplit e np.vsplit (Divisione Orizzontale e Verticale)

Le funzioni np.hsplit e np.vsplit consentono di dividere gli array in modo specifico lungo gli assi orizzontali e verticali rispettivamente. Queste funzioni sono utili quando si lavora con array multidimensionali, come le matrici.

Ecco un esempio di np.hsplit:

import numpy as np
# Creazione di una matrice
matrix = np.array([[1, 2, 3], [4, 5, 6]])
# Divisione orizzontale
hsplit_arr = np.hsplit(matrix, 3)
print(hsplit_arr)
# Restituisce una lista di array suddivisi:
# [array([1]), array([2]), array([3])]

Ecco un esempio di np.vsplit:

import numpy as np
# Creazione di una matrice
matrix = np.array([[1, 2], [3, 4], [5, 6]])
# Divisione verticale
vsplit_arr = np.vsplit(matrix, 3)
print(vsplit_arr)
# Restituisce una lista di array suddivisi:
# [array([[1, 2]]), array([[3, 4]]), array([[5, 6]])]

In entrambi i casi, l’array viene diviso in parti lungo l’asse specificato.

Conclusioni

La divisione degli array in NumPy è una capacità fondamentale quando si lavora con dati multidimensionali. Le funzioni np.split, np.array_split, np.hsplit e np.vsplit ti offrono diverse opzioni per suddividere gli array in base alle tue esigenze specifiche. Puoi scegliere la funzione più adatta al tuo caso d’uso e controllare come l’array viene suddiviso.