SymPy - Наборы
В математике набор - это четко определенный набор различных объектов, которые могут быть числами, людьми, буквами алфавита или даже другими наборами. Set также является одним из встроенных типов в Python. SymPy предоставляет модуль множеств. Он содержит определения различных типов множеств и имеет функциональные возможности для выполнения таких операций с множествами, как пересечение, объединение и т. Д.
Set - это базовый класс для любого другого типа набора в SymPy. Обратите внимание, что он отличается от типа данных встроенного набора Python. Класс Interval представляет реальные интервалы, а его граничное свойство возвращаетFiniteSet объект.
>>> from sympy import Interval
>>> s=Interval(1,10).boundary
>>> type(s)
sympy.sets.sets.FiniteSet
FiniteSet - это набор дискретных чисел. Его можно получить из любого объекта последовательности, такого как список или строка.
>>> from sympy import FiniteSet
>>> FiniteSet(range(5))
Output
$\lbrace\lbrace0,1,...,4\rbrace\rbrace$
>>> numbers=[1,3,5,2,8]
>>> FiniteSet(*numbers)
Output
$\lbrace1,2,3,5,8\rbrace$
>>> s="HelloWorld"
>>> FiniteSet(*s)
Output
{H,W,d,e,l,o,r}
Обратите внимание, что, как и во встроенном наборе, набор SymPy также представляет собой набор отдельных объектов.
ConditionSet набор элементов, удовлетворяющих заданному условию
>>> from sympy import ConditionSet, Eq, Symbol
>>> x=Symbol('x')
>>> s=ConditionSet(x, Eq(x**2-2*x,0), Interval(1,10)) >>> s
Output
$\lbrace x\mid x\in[1,10]∧x^2 - 2x =0\rbrace$
Unionпредставляет собой составной набор. Он включает в себя все элементы в двух наборах. Обратите внимание, что элементы, которые есть в обоих, появятся в Союзе только один раз.
>>> from sympy import Union
>>> l1=[3,1,5,7]
>>> l2=[9,7,2,1]
>>> a=FiniteSet(*l1)
>>> b=FiniteSet(*l2)
>>> Union(a,b)
Intersection с другой стороны, содержит только те элементы, которые присутствуют в обоих.
>>> from sympy import Intersection
>>> Intersection(a,b)
ProductSet объект представляет собой декартово произведение элементов в обоих наборах.
>>> from sympy import ProductSet
>>> l1=[1,2]
>>> l2=[2,3]
>>> a=FiniteSet(*l1)
>>> b=FiniteSet(*l2)
>>> set(ProductSet(a,b))
Complement(a,b) сохраняет элементы в исключительных элементах, которые являются общими для набора b.
>>> from sympy import Complement
>>> l1=[3,1,5,7]
>>> l2=[9,7,2,1]
>>> a=FiniteSet(*l1)
>>> b=FiniteSet(*l2)
>>> Complement(a,b), Complement(b,a)
SymmetricDifference набор содержит только необычные элементы в обоих наборах.
>>> from sympy import SymmetricDifference
>>> l1=[3,1,5,7]
>>> l2=[9,7,2,1]
>>> a=FiniteSet(*l1)
>>> b=FiniteSet(*l2)
>>> SymmetricDifference(a,b)
Output
{2,3,5,9}