Curso: Introducción a Data Science con Python

Por: Luis Miguel Rivera Cumbicus ( luchoriverac@gmail.com)

Tipos de variables

En Python, puede manejar y manipular diferentes tipos de variables. Cada una tiene sus propias especificidades y beneficios. No revisaremos cada una de ellas, sino que nos centraremos en las principales para esta sesió. Para cada uno de los siguientes ejemplos de código, puede ejecutar el código en Google Collab () para ver los resultados.

Variables Numéricas

El tipo de variable más básica es numérico. Esta puede contener números enteros o decimales (o flotantes), y algunas operaciones matemáticas se pueden realizar encima de ellos.

Usemos una variable entera llamada var1 que tomará el valor 8 y otra llamada var2 con el valor 160.88, y las sumaremos junto con el + operador, como se muestra aquí:


In [0]:
var1 = 8
var2 = 160.88
var1 + var2


Out[0]:
168.88

Variables de texto

Otro tipo interesante de variable es string, que contiene información textual.

Puede crear una variable con un texto específico utilizando comillas simples o dobles, como se muestra en el siguiente ejemplo:


In [0]:
var3 = 'Hello, '
var4 = 'World'

Para mostrar el contenido de una variable, puede llamar a la función print():


In [0]:
print(var3)
print(var4)


Hello, 
World

Python también proporciona una interfaz llamada cadenas f para imprimir texto con el valor de variables definidas.

Es muy útil cuando desea imprimir resultados con texto adicional para hacerlo más legible e interpretar los resultados. También es bastante común usar cadenas f para imprimir registros.

Deberá agregar f antes de las comillas (o comillas dobles) para especificar que el texto será una cadena f. Luego puede agregar una variable existente dentro de las comillas y mostrar el texto con el valor de esta variable.

Es necesario para envolver la variable con llaves, {}.

Por ejemplo, si queremos imprimir Text: antes de los valores de var3 y var 4, escribiremos el siguiente código:


In [0]:
print(f"Text: {var3} {var4}!")


Text: Hello,  World!

También puede realizar algunas transformaciones relacionadas con el texto con variables de cadena, como poner en mayúscula o reemplazar caracteres.

Por ejemplo, puede concatenar las dos variables junto con el + operador:


In [0]:
var3 + var4


Out[0]:
'Hello, World'

Lista de Python

Otro tipo de variable muy útil es la lista.

Es una colección de elementos que se pueden cambiar (puede agregar, actualizar o eliminar elementos). Para declarar una lista, deberá utilizar corchetes [], como este:


In [0]:
var5 = ['I', 'love', 'data', 'science']
print(var5)


['I', 'love', 'data', 'science']

Una lista puede tener diferentes tipos de elementos, por lo que puede mezclar variables numéricas y de texto en ella:


In [0]:
var6 = ['Packt', 15019, 2020, 'Data Science']
print(var6)


['Packt', 15019, 2020, 'Data Science']

Se puede acceder a un elemento de una lista por su índice (su posición en la lista).

Para acceder al primer elemento (índice 0) y al tercer elemento (índice 2) de una lista, haga lo siguiente:

Nota

En Python, todos los índices comienzan en 0.


In [0]:
print(var6[0])  # para acceder al elemento 0 de la lista
print(var6[2])  # para acceder al elemento 2 de la lista


Packt
2020

Python proporciona una API para acceder a una variedad de elementos utilizando el : operador.

Solo necesita especificar el índice inicial en el lado izquierdo del operador y el índice final en el lado derecho.

El índice final siempre se excluye del rango. Por lo tanto, si desea obtener los primeros tres elementos (índice 0 a 2), debe hacer lo siguiente:


In [0]:
print(var6[0:3])  # para obtener los elementos del 0 al 2 (0,1,2)


['Packt', 15019, 2020]

También puede recorrer cada elemento de una lista utilizando un bucle for.

Si desea imprimir todos los elementos de la var6lista, debe hacer esto:


In [0]:
for item in var6:
  print(item)


Packt
15019
2020
Data Science

Puede agregar un elemento al final de la lista utilizando el método .append():


In [0]:
var6.append('Python')
print(var6)


['Packt', 15019, 2020, 'Data Science', 'Python']

Para eliminar un elemento de la lista, utiliza el método .remove():


In [0]:
var6.remove(15019)
print(var6)


['Packt', 2020, 'Data Science', 'Python']

Diccionario Python

Otra variable muy popular de Python utilizada por los científicos de datos es el tipo de diccionario.

Por ejemplo, se puede usar para cargar datos JSON en Python para que luego se pueda convertir en un DataFrame (aprenderá más sobre el formato JSON y los DataFrames en las siguientes secciones).

Un diccionario contiene múltiples elementos, como una lista , pero cada elemento está organizado como un par clave-valor.

Un diccionario no está indexado por números sino por claves. Por lo tanto, para acceder a un valor específico, deberá llamar al elemento por su clave correspondiente.

Para definir un diccionario en Python, usará llaves {}, y especificará las claves y los valores separados por :, como se muestra aquí:


In [0]:
var7 = {'Topic': 'Data Science', 'Language': 'Python'}
print(var7)


{'Topic': 'Data Science', 'Language': 'Python'}

Para acceder a un valor específico, debe proporcionar el nombre de clave correspondiente.

Por ejemplo, si desea obtener el valor Python, haga esto:

Nota

Cada par clave-valor en un diccionario debe ser único.


In [0]:
var7['Language']


Out[0]:
'Python'

Python proporciona un método para acceder a todos los nombres clave de un diccionario .keys(), que se utiliza como se muestra en el siguiente fragmento de código:


In [0]:
var7.keys()


Out[0]:
dict_keys(['Topic', 'Language'])

También hay un método llamado .values(), que se utiliza para acceder a todos los valores de un diccionario:


In [0]:
var7.values()


Out[0]:
dict_values(['Data Science', 'Python'])

Puede recorrer todos los elementos de un diccionario utilizando un bucle for y el método .items(), como se muestra en el siguiente fragmento de código:


In [0]:
for key, value in var7.items():
  print(key)
  print(value)


Topic
Data Science
Language
Python

Puede agregar un nuevo elemento en un diccionario proporcionando el nombre de clave como este:


In [0]:
var7['Publisher'] = 'Packt'
print(var7)


{'Topic': 'Data Science', 'Language': 'Python', 'Publisher': 'Packt'}

Puede eliminar un elemento de un diccionario con el comando del:


In [0]:
del var7['Publisher']
print(var7)


{'Topic': 'Data Science', 'Language': 'Python'}

In [0]:

Ejercicio 1.01: creación de un diccionario que contendrá algoritmos de aprendizaje automático

En este ejercicio, crearemos un diccionario usando Python que contendrá una colección de diferentes algoritmos de aprendizaje automático que se tratarán en este libro.

  1. Abrir en un nuevo cuaderno de Google Collaboratory ().

  2. Crear una lista algorithm que contendrá los siguientes elementos: Linear Regression, Logistic Regression, RandomForest, y a3c:


In [0]:
algorithm = ['Linear Regression', 'Logistic Regression', 'RandomForest', 'a3c']
  1. Ahora, crear una lista llamada learning que contendrá los siguientes elementos: Supervised, Supervised, Supervised, y Reinforcement:

In [0]:
learning = ['Supervised', 'Supervised', 'Supervised', 'Reinforcement']
  1. Crear una lista algorithm_type que contendrá los siguientes elementos: Regression, Classification, Regressiono Classification, y Game AI:

In [0]:
algorithm_type = ['Regression', 'Classification', 'Regression or Classification', 'Game AI']
  1. Agregue un elemento llamado k-means a la lista algorithm usando el .append()método:

In [0]:
algorithm.append('k-means')
  1. Muestra el contenido de algorithm usar la print()función:

In [0]:
print(algorithm)


['Linear Regression', 'Logistic Regression', 'RandomForest', 'a3c', 'k-means']
  1. Ahora, agregue el elemento Unsupervised a la lista learning usando el método .append():

In [0]:
learning.append('Unsupervised')
  1. Muestra el contenido de learning usar la función print():

In [0]:
print(learning)


['Supervised', 'Supervised', 'Supervised', 'Reinforcement', 'Unsupervised']
  1. Agregue el elemento Clustering a la lista algorithm_type usando el método .append():

In [0]:
algorithm_type.append('Clustering')
  1. Muestra el contenido de algorithm_type usar la función print():

In [0]:
print(algorithm_type)


['Regression', 'Classification', 'Regression or Classification', 'Game AI', 'Clustering']
  1. Crear un diccionario vacío llamada machine_learning mediante llaves, {}:

In [0]:
machine_learning = {}
  1. Cree un nuevo elemento machine_learning con la clave como algorithm y el valor como todos los elementos de la lista algorithm:

In [0]:
machine_learning['algorithm'] = algorithm
  1. Muestra el contenido del machine_learning con uso de la función print().

In [0]:
print(machine_learning)


{'algorithm': ['Linear Regression', 'Logistic Regression', 'RandomForest', 'a3c', 'k-means']}
  1. Cree un nuevo elemento machine_learning con la clave como learning y el valor como todos los elementos de la lista learning:

In [0]:
machine_learning['learning'] = learning
  1. Ahora, cree un nuevo elemento machine_learning con la clave como algorithm_type y el valor como todos los elementos de la lista de algoritmo_tipo:

In [0]:
machine_learning['algorithm_type'] = algorithm_type
  1. Muestra el contenido del machine_learning con uso de la función print().

In [0]:
print(machine_learning)


{'algorithm': ['Linear Regression', 'Logistic Regression', 'RandomForest', 'a3c', 'k-means'], 'learning': ['Supervised', 'Supervised', 'Supervised', 'Reinforcement', 'Unsupervised'], 'algorithm_type': ['Regression', 'Classification', 'Regression or Classification', 'Game AI', 'Clustering']}
  1. Elimine el elemento a3c de la clave algorithm utilizando el método .remove():

In [0]:
machine_learning['algorithm'].remove('a3c')
  1. Muestre el contenido del elemento algorithm deldiccionario machine_learning utilizando la función print():

In [0]:
print(machine_learning['algorithm'])


['Linear Regression', 'Logistic Regression', 'RandomForest', 'k-means']
  1. Elimine el elemento Reinforcement de la clave learning utilizando el método .remove():

In [0]:
machine_learning['learning'].remove('Reinforcement')
  1. Elimine el elemento Game AI de la clave algorithm_type utilizando el método .remove():

In [0]:
machine_learning['algorithm_type'].remove('Game AI')
  1. Muestra el contenido de machine_learning usar la función print():

In [0]:
print(machine_learning)


{'algorithm': ['Linear Regression', 'Logistic Regression', 'RandomForest', 'k-means'], 'learning': ['Supervised', 'Supervised', 'Supervised', 'Unsupervised'], 'algorithm_type': ['Regression', 'Classification', 'Regression or Classification', 'Clustering']}