Primeros pasos con Python: los tipos de datos básicos

1
1857
Logo de python

Te recuerdo que estoy compartiendo los apuntes de mis primeros pasos con Python y TensorFlow y que puedes acompañarme desde el primer tutorial:

  1. Instalación de TensorFlow y entorno de desarrollo Python en Mac.
  2. Revisión de ejemplos de TensorFlow.
  3. Principios de aprendizaje automático supervisado.

Si queremos trabajar con aprendizaje automático en Python parece lógico tener cierta soltura con los tipos de datos. Uno de los primeros sitios a los que tendríamos que ir es a la guía del lenguaje (ojito que usamos las versión 3.8 o la que proceda).

Como he programado en varios lenguajes solamente voy a apuntar unos pocos enlaces útiles y a ver cómo se hacen cuatro cosas: declarar variables, componer cadenas, hacer operaciones básicas y crear arrays.

La verdad es que es muy intuitivo todo, simplemente hay que acostumbrarse a la notación.

Python 3.8.6 Documentation

Siempre es mejor leer la documentación ?. Este es el aspecto de los tutoriales descomprimidos.

Lista Archivos Descomprimidos

También podemos encontrar decenas de libros gratuitos por internet.

Asegúrate por favor, que son gratis de verdad (hay demasiados recursos disponibles como para tener que piratear y parece lógico retribuir a los autores).

Libros gratis python

Bueno, vamos con ejemplos, que no hay nada mejor que tocar por uno mismo.

Esta es la lista de los tipos de datos de Python.

Built-in Data Types

Para declarar variables no hace falta poner ningún modificador como var o similar.

Declarar variables python

El tipo más simple es un Booleano. Sus valores son True o False. Con == podemos comparar.

a = True
if a == True : 
    print ("Es cierto")
else :
    print ("Es falso")

Con los operadores lógicos podemos hacer comparaciones:

a = 20 
if a < 50 :     
    print ("Es menor") 
else :     
    print ("Es mayor")

Con los números no se hace diferencia entre enteros y coma flotante. Si se quieren declarar en coma flotante se les pone el punto.

Como es de esperar la división entre enteros da un valor en coma flotante.

a = 20
b = 7
    print (a,b)
    print (a/b)

Terminal

Podemos interrogar el tipo de datos con type () o isinstance.

a = 20
b = 7
c = 20/7
    print (a,b)
    print (type(a))
    print (type(c))
    print (isinstance(c,int))

Terminal Insinstance

Ojito que las conversiones a Int() trunca, no redondea.

Terminal Int

Esta es la salida que obtenemos (comprobar que no hace redondeo).

20 7 2.857142857142857

2

Una función muy interesante y útil es round. Pongamos un ejemplo muy valioso: si queremos estimar el valor de unas viviendas a partir de unos testigos (muestras), tiene sentido decir que cuesta 350K euros más que 350234 euros. Esa precisión solo aporta complejidad a los modelos.

numero = 123456
redondeado = round (numero,-3)
    print (redondeado)

Terminal Redondeo

Intercambiar el valor de dos elementos es muy sencillo. Y vale para cualquier tipo de datos.

a = 20
b = 10
a,b = b,a 
    print (a,b)

Las cadenas de caracteres se inicializan igualmente con comillas dobles o simples.

También se puede iterar entre los caracteres de las cadenas.

palabra = 'Roberto'
for letra in palabra:   
    print (letra)

Del mismo modo, se pueden utilizar rangos de caracteres para extraer subcadenas.

procion = palabra [2:5]
    print (procion)

Es de esperar que salga BER.

Podemos formatear las salidas de un modo sencillo combinando valores y literales.

nombre = "Roberto" 
edad = '47' 
    print ("Roberto: {0} : Edad: {1}".format(nombre,edad))

Terminal

También se pueden formatear las cadenas al estilo clásico (tipo printf c):

nombre = "Roberto" 
edad = '47' 
    print ("Roberto: {0} : Edad: {1}".format(nombre,edad)) 
    print ('Hola, %s' % nombre)

Terminal Formateo

Uno de los tipos compuestos mutables (cambiables) de datos son las listas.

Los elementos añadidos individualmente pueden ser de diferentes tipos. Se inicializan separados por comas.

lista = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

Podemos añadir elementos, quitárselos o trabajar con rangos.

sesgada = lista [2:8] 
    print(sesgada)

Terminal Lista

Para hacer operaciones matemáticas con grupos de datos (como redondeo) no es el tipo más adecuado, porque hay que hacerlos uno a uno (ya que los tipos pueden ser diferentes).

lista = [12.3233,2.3323,3.2433,4.5445,5.44345] 
lista_redondeada = [round(num, 2) for num in lista] 
    print ("lista redondeada",lista_redondeada)

Las tuplas son similares a las listas pero no se puede modificar el número de elementos. Se inicializa con paréntesis en vez de corchetes. Las operaciones con ellas son más rápidas.

Para trabajar con TensorFlow vamos a utilizar principalmente otro tipos de arrays: numpy arrays. Las operaciones son más rápidas y acotadas a números.

Podéis ir a este enlace y recorrer los ejemplos.

Página Ejemplos

Bueno, aunque sea un tutorial chorra estas cuatro cosas nos van a valer para seguir los ejemplos.

Nos interesa más dedicar tiempo a librerías Numpy y Pandas (DataFrames o tablas de datos tipo .csv).

Nos vemos en siguientes tutoriales.

1 COMENTARIO

  1. Para imprimir variables se usa también mucho los f-strings. Para mí, es más legible cuando leo el código.

    Y los slicing en una lista son una pasada! Te permite manipular grandes estructuras de datos con apenas un par de líneas.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad