NumPy Set Operazioni


Cos'è un set

Un insieme in matematica è una raccolta di elementi unici.

Gli insiemi vengono utilizzati per operazioni che implicano frequenti operazioni di intersezione, unione e differenza.


Crea set in NumPy

Possiamo usare il unique()metodo di NumPy per trovare elementi univoci da qualsiasi array. Ad esempio, crea un set array, ma ricorda che gli array set dovrebbero essere solo array 1-D.

Esempio

Converti la seguente matrice con elementi ripetuti in un set:

import numpy as np

arr = np.array([1, 1, 1, 2, 3, 4, 5, 5, 6, 7])

x = np.unique(arr)

print(x)

Trovare unione

Per trovare i valori univoci di due array, utilizzare il union1d()metodo.

Esempio

Trova l'unione dei seguenti due set array:

import numpy as np

arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([3, 4, 5, 6])

newarr = np.union1d(arr1, arr2)

print(newarr)

Trovare l'intersezione

Per trovare solo i valori presenti in entrambi gli array, utilizzare il intersect1d()metodo.

Esempio

Trova l'intersezione dei seguenti due set array:

import numpy as np

arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([3, 4, 5, 6])

newarr = np.intersect1d(arr1, arr2, assume_unique=True)

print(newarr)

Nota: il intersect1d()metodo accetta un argomento opzionale assume_unique, che se impostato su True può velocizzare il calcolo. Dovrebbe essere sempre impostato su True quando si ha a che fare con gli insiemi.


Trovare la differenza

Per trovare solo i valori nel primo set che NON è presente nei secondi impostati, utilizzare il setdiff1d()metodo.

Esempio

Trova la differenza di set1 da set2:

import numpy as np

set1 = np.array([1, 2, 3, 4])
set2 = np.array([3, 4, 5, 6])

newarr = np.setdiff1d(set1, set2, assume_unique=True)

print(newarr)

Nota: il setdiff1d()metodo accetta un argomento opzionale assume_unique, che se impostato su True può velocizzare il calcolo. Dovrebbe essere sempre impostato su True quando si ha a che fare con gli insiemi.


Trovare la differenza simmetrica

Per trovare solo i valori che NON sono presenti in ENTRAMBI gli insiemi, utilizzare il setxor1d()metodo.

Esempio

Trova la differenza simmetrica dell'insieme1 e dell'insieme2:

import numpy as np

set1 = np.array([1, 2, 3, 4])
set2 = np.array([3, 4, 5, 6])

newarr = np.setxor1d(set1, set2, assume_unique=True)

print(newarr)

Nota: il setxor1d()metodo accetta un argomento opzionale assume_unique, che se impostato su True può velocizzare il calcolo. Dovrebbe essere sempre impostato su True quando si ha a che fare con gli insiemi.