NumPy Set Operations

مجموعه چیست؟

مجموعه در ریاضی به کلکسیونی از عناصر یکتا (متمایز) گفته می‌شود.

عملیات‌های رایج روی مجموعه‌ها شامل اشتراک، اجتماع و تفاضل است که در زیر به معرفی آن‌ها می‌پردازیم.

درست کردن مجموعه‌ها در Numpy

می‌توان از تابع شیء unique() در NumPy جهت یافتن عناصر متمایز در یک آرایه استفاده کرد و یک آرایه به شکل مجموعه ایجاد کرد. فقط به یاد داشته باشید که مجموعه ساخته شده تنها می‌تواند یک بعدی باشد.


import numpy as np

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

x = np.unique(arr)

print(x)

خروجی:

پیدا کردن اجتماع دو مجموعه

برای پیدا کردن مقادیر متمایز دو مجموعه از تابع union1d() استفاده می‌کنیم.


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)

خروجی:

پیدا کردن اشتراک دو مجموعه

برای پیدا کردن مقادیری که در هر دو مجموعه وجود دارند از تابع intersect1d() استفاده می‌کنیم.


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)

خروجی:

تابع شیء intersect1d() یک آرگومان اختیاری به صورت assume_unique دریافت می‌کند، که اگر مقدار آن برابر True قرار داده شود سرعت محاسبات افزایش می‌یابد. بنابراین در صورتی که با مجموعه‌ها کار کنیم بهتر است که همیشه مقدار آن برابر True قرار داده شود.

پیدا کردن تفاضل دو مجموعه

برای پیدا کردن مقادیری که تنها در مجموعه اول وجود دارند و در مجموعه دوم وجود ندارند از تابع شیء setdiff1d() استفاده می‌کنیم.


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)

خروجی:

تابع شیء setdiff1d() یک آرگومان اختیاری به صورت assume_unique دریافت می‌کند، که اگر مقدار آن برابر True قرار داده شود سرعت محاسبات افزایش می‌یابد. بنابراین در صورتی که با مجموعه‌ها کار کنیم بهتر است که همیشه مقدار آن برابر True قرار داده شود.

پیدا کردن تفاضل متقارن دو مجموعه

برای پیدا کردن مقادیری که تنها در یکی از دو مجموعه وجود دارند از تابع شیء setxor1d() استفاده می‌کنیم.


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)

خروجی:

تابع شیء setxor1d() یک آرگومان اختیاری به صورت assume_unique دریافت می‌کند، که اگر مقدار آن برابر True قرار داده شود سرعت محاسبات افزایش می‌یابد. بنابراین در صورتی که با مجموعه‌ها کار کنیم بهتر است که همیشه مقدار آن برابر True قرار داده شود.