Operacje na zestawach NumPy
Co to jest zestaw
Zestaw z matematyki to zbiór unikalnych elementów.
Zbiory są używane do operacji obejmujących częste operacje przecięcia, sumy i różnicy.
Twórz zestawy w NumPy
Możemy użyć unique()
metody NumPy, aby znaleźć unikalne elementy z dowolnej tablicy. Np. utwórz tablicę zestawu, ale pamiętaj, że tablice zestawu powinny być tylko tablicami 1-D.
Przykład
Konwertuj następującą tablicę z powtarzającymi się elementami na zestaw:
import numpy as np
arr = np.array([1, 1, 1, 2, 3, 4, 5, 5, 6, 7])
x = np.unique(arr)
print(x)
Znalezienie Unii
Aby znaleźć unikalne wartości dwóch tablic, użyj union1d()
metody.
Przykład
Znajdź sumę następujących dwóch zestawów tablic:
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)
Znajdowanie skrzyżowania
Aby znaleźć tylko wartości, które są obecne w obu tablicach, użyj intersect1d()
metody.
Przykład
Znajdź przecięcie następujących dwóch zestawów tablic:
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)
Uwaga: metoda intersect1d()
przyjmuje opcjonalny argument assume_unique
, który, jeśli jest ustawiony na True, może przyspieszyć obliczenia. Gdy mamy do czynienia z zestawami, zawsze powinna być ustawiona na True.
Znalezienie różnicy
Aby znaleźć tylko wartości z pierwszego zestawu, które NIE są obecne w zestawie sekund, użyj setdiff1d()
metody.
Przykład
Znajdź różnicę zestaw1 od zestaw2:
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)
Uwaga: metoda setdiff1d()
przyjmuje opcjonalny argument assume_unique
, który, jeśli jest ustawiony na True, może przyspieszyć obliczenia. Gdy mamy do czynienia z zestawami, zawsze powinna być ustawiona na True.
Znalezienie różnicy symetrycznej
Aby znaleźć tylko te wartości, które NIE występują w OBU zestawach, użyj setxor1d()
metody.
Przykład
Znajdź symetryczną różnicę zbioru1 i zbioru2:
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)
Uwaga: metoda setxor1d()
przyjmuje opcjonalny argument assume_unique
, który, jeśli jest ustawiony na True, może przyspieszyć obliczenia. Gdy mamy do czynienia z zestawami, zawsze powinna być ustawiona na True.