La determinación de un conjunto en Python es dar un criterio que permita decidir, sin ambigüedad, si un determinado objeto pertenece o no a dicho conjunto. Básicamente, la determinación de un conjunto en Python consiste en definir un conjunto. Veamos un ejemplo:
A = {Series de TV interesantes} - Este conjunto está mal definido, ya que el criterio dado es subjetivo
B {Series de TV de temática bélica} - Este conjunto está bien definido, porque el criterio dado me permite decir si una serie de TV pertenece o no a este conjunto
Determinación de un conjunto en Python
Subconjuntos
En la determinación de un conjunto en Python podemos crear también un conjunto y obtener a partir de él un subconjunto.
Dicho más formalmente, dados dos conjuntos A y B, diremos que B es subconjunto de A, o que B está incluido en A, si todo elemento de B pertenece también al conjunto A.
Por ejemplo, si mencionamos como conjunto el mismo espacio (en términos astronómicos) esto no es viable, ya que el espacio tiene infinitos elementos entre los cuales se incluyen planetas, estrellas y objetos no identificables, entre otros muchos.
Si elegimos como subconjunto, por ejemplo, las soluciones que aprende o puede aprender nuestro modelo, estas serían un subconjunto de ese conjunto infinito.
Se expresa:
A ⊃ B o B ⊂ A
La explicación quedarías más o menos así: si tenemos dos conjuntos A y B, diremos que B es subconjunto de A o que B está incluido en A si todo elemento de B pertenece también al conjunto de A.
Ejercicio
Definamos el conjunto como todos los enteros del -3 al 3 y obtengamos al conjunto de todos los que son mayores o iguales a 0.
Ya hemos visto que para este tipo de ejercicios es bueno usar numpy.
#Determinación de un conjunto en Python
array_int = np.arange (-3, 4, 1)
print (array_int)
[-3, -2, -1, 0, 1, 2, 3]
Lo primero que tendremos que hacer es convertir lo que tenemos en un conjunto:
#Determinación de un conjunto en Python
set_array = set (array_int)
print (set_array)
{0, 1, 2, 3, -1, -3, -2}
Entonces, podemos observar que nuestra lista se ha convertido en un conjunto, porque los elementos no están encerrados entre corchetes, sino entre llaves.
Ahora lo que haremos es obtener los elementos que son mayores o iguales a 0. Para hacer eso vamos a crear un subconjunto y vamos a iterar sobre los elementos de este subconjunto:
#Determinación de un conjunto en Python
subset = set ()
for x in set array:
if x >= 0:
subset.add (x)
Si imprimimos este subconjunto podemos ver que aparecerán 0, 1, 2, 3.
subset
{0, 1, 2, 3}
Podemos escribir esto de una manera más reducida en listas de compresión:
{x for x in set_array if x >= 0}
{0, 1, 2, 3}
Como vemos, nos da el mismo resultado.
set {x for x in set_array if x >= 0}
{0, 1, 2, 3}
Como se muestra en el paso anterior, podemos convertir una lista o array a un conjunto usando set.
#Determinación de un conjunto en Python
ls = [1, 2, 3, 4, 5, 6, 6]
set_ls = set (ls)
print (set_ls)
{1, 2, 3, 4, 5, 6, 6}
Hay un tipo especial de subconjuntos denominados impropios que, para el conjunto A, son:
- El conjunto A (el conjunto completo).
- El conjunto ∅ (el conjunto vacío).
Es decir, si se cumple alguna de estas dos condiciones, un conjunto puede ser catalogado como conjunto impropio.
Resulta fácil ver que son subconjuntos de A, aunque son muy particulares.
#Determinación de un conjunto en Python
array_int = np.arrange (-3, 4, 1)
set_ls = set (array_int)
print (set_ls)
{0, 1, 2, 3, -1, -3, -2}
#Determinación de un conjunto en Python
#Subconjunto impropio, porque el subconjunto es igual al conjunto original
subset = set (x for x in set_ls)
print (subset)
{0, 1, 2, 3, -2, -3, -1}
Vamos a verificar si el subconjunto es igual al conjunto:
set_ls == subset #Por tanto, subconjunto impropio
True
La respuesta ha sido positiva, por lo tanto, el que tenemos es un subconjunto impropio.
#Determinación de un conjunto en Python
#Subconjunto impropio, porque el subconjunto está vacío
subset = set (x for x in set_ls if x >= 100)
print (subset)
set ()
len (subset)
0
Ahora que hemos visto este tema, puedes seguir aprendiendo sobre Big Data, una de las disciplinas más demandadas de la actualidad y con mejores salarios. Para ello, tenemos el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva e íntegra en la que podrás adquirir todos los conocimientos teóricos y prácticos necesarios para incursionar en el mercado laboral en poco tiempo. ¡Anímate a cambiar tu futuro y solicita más información ahora!