Aprende Python desde cero

Python-Mcoder.ai

Mcoder.AI

Linkedin: Connie Vega Twitter: @ConnieVega_Mex

Nivel Introductorio a Python

Así es, este es el lugar perfecto para que te lleves al bolsillo el conocimiento básico que requieres tener sobre Python, ya que de esta manera podrás avanzar poco a poco en proyectos más avanzados. Recuerda que Python es una herramienta muy potente cuyas aplicaciones son cada vez más demandadas en el mercado. Y si no has checado el artículo «¿Qué es Python?«, te invitamos a leerlo antes de comenzar.

Primero que nada requieres tener ya instalado Python en tu computadora, ya checaste nuestro artículo «Anaconda; una herramienta poderosa para Ciencia de Datos» donde encontrarás paso a paso, ¿Cómo hacerlo?

Formas de declarar una variable

La sintaxis de Python nos permite declarar los diferentes objetos o variables con información al hacer uso de un igual.

var1="Hola" #Texto
var2=10 #Números enteros
var3,var4= 5.6e-5, 5.6  #Dos variables en la misma línea (Números decimales) 
var4 = 2.1 + 7.8j #Números complejos
var6=var7= True #OJO, la palabra "True" solo aplica con mayúscula al comenzar para no      #usar comillas, pues es una palabra pre-diseñada por Python.
var8="Hola Mundo" #Frases

Tipos de objetos que reconoce Python

La función type(NombreDeLaVariable) nos ayudará a identificar en qué tipo de objeto Python guardó la información que ingresamos al declarar una variable.

var1="Hola"
type(var1) 
Ejercicio

Remplaza en cada una de las variables declaradas inicialmente dentro de la función type(Nombre) y observa como python reconoce las variables de texto como «string», los enteros como «int», etc.

«Print»

La función print() te ofrece la manera de observar el resultado de una variable o de una serie de instrucciones anidadas. Y las diferentes formas de declarar dicha función y por ende otras con el mismo nivel de jerarquía son:

print (var1) #con un espacio antes del paréntesis 
print(var2) #todo junto
print(var3); print (var4) #Puedes escribir varias declaraciones en una sola línea #separando por ";"
print(var3); #con un punto y coma al final
print(type(var6)) #declarando dentro de la función otras funciones. 
print(var1,var2)
var8 #OJO, si estás usando Jupyter al mencionar la variable se imprimirá si es la #última declaración.

Lista

Es una estructura de datos formada por un conjunto de elementos.

lista=[1,2,3,4]
lista1=["Hola","Mundo","Bonito"]
lista2=["Hola",1,"Mundo",2,"Bonito",3]
lista3=list("OSO") 
Ejercicio

Usa la función print() y observa cuál es la diferencia entre lista="OSO" y lista=list("OSO")

Tuplas

Es un conjunto ordenado e inmutable de elementos del mismo o diferente tipo y la forma en la que se declaran en Python, es la siguiente.

tupla=(1,2,3) 
tupla1=(1,"Hola Mundo")
print(tupla)
print(tupla1)
print(tupla,tupla1)

Diccionario

Nos permite almacenar cualquier tipo de valor como enteros, cadenas, listas e incluso otras funciones. Nos permiten además identificar cada elemento por una clave.

diccionario = {"nombre":"Leonardo","apellido":"Caballero"}
diccionario1 = {"Edad":15,"Estatura":1.56}
print(diccionario)
print(diccionario, diccionario1)

Operaciones con los objetos que almacenan un conjunto de datos.

En Ciencia de Datos, como en muchos otros enfoques, un vector en Python se refiere a un conjunto de datos que cumplen con una característica en común, cuya selección permitirá manipular dicha información de manera correcta. Enseguida conocerás algunas de las operaciones que posteriormente te pueden ayudar a manipular un «Data set».

Acceso a los elementos

Una forma de acceder a cada uno de los elementos, ya sea de una lista, tupla u diccionario es mediante la identificación de posiciones que se declara con el uso de un par de corchetes seguida del nombre del objeto establecido, cuyos corchetes contienen la posición del elemento. OJO: En Python las posiciones se comienzan a enumerar desde «Cero».

lista[1]
tupla[0]
diccionario["nombre"]
print(lista,lista[0])
print(tupla,tupla[0])
print(diccionario["nombre"],diccionario["nombre"][0])

También puedes acceder o seleccionar distintos elementos al mismo tiempo, con el uso de los dos puntos «:»

vector=[0,1,2,3,4]
vector[1:4] #Nota: te arrojará los elementos que están desde la posición 1 hasta la posición 3(n-1)

Añadir elementos al conjunto de datos

La forma de añadir elementos al final del objeto es con la función append(DatoPorAñadir).

lista1=[1,2,3]
lista1.append(7)# Añadir un elemento al final
print(lista1)
tupla=(4,5,6)
tupla.append(8)

Otra forma en la que puedes añadir elementos es indicando la posición en la que quieres que se aumente un elemento nuevo es mediante la función insert(Posición,DatoPorAñadir).

lista2=[1,2,3,4]
lista2.insert(3,1000)
print(lista2)

Sustitución de elementos

La forma de sustituir un elemento por otro es accediendo a la posición del elemento que se quiere sustituir y re-nombrando el dato.

lista3=[1,2,3,4]
lista3[0]="Hola Mundo"
print(lista3)

Remover elementos

Una de las formas de eliminar elementos de cierto conjunto de datos es de la siguiente manera.

lista3.remove(4)
print(lista3)
lista3.remove("Hola Mundo")
print(lista3)
Ejercicio

Identifica los 5 errores de sintaxis en el siguiente código.

lista1=(5,6,7,8)
lista 2=[1,2,3,4]
lista3=Hola mundo
lista1.insert(1000,3)
Print(lista2)

Calculadora

Esta es una rápida demostración de como Python funciona como calculadora rápida y sencilla.

#OJO: Si no llamas la función "print" en jupyter no verás directamente el resultado de la operación.
1+2
5*6
var=1/2 
var
var+var
print(var-var)
4**(1/2) #Dos asteriscos significa que estás elevando a una potencia la base

Calculadora con vectores

Ejercicio

Corre el siguiente código cambiando la operación de suma por resta y multiplicación y observa qué es lo que pasa.

vector1=[1,2,3,4]
vector2=[9,8,7,6]
vector3=vector1+vector2
print(vector3)

¿Notaste que no funciona como una calculadora de funciones vectoriales?

Esto es un poco alarmante, ya que en algunos casos, cuando manipulamos «Data Sets» requerimos hacer uso de los vectores y con sus respectivas operaciones para generar nuevos datos. Para esto es necesario conocer diferentes librerías de Python que permiten que el proceso de Ciencia de Datos sea satisfactorio con este lenguaje de programación. Algunas de las librerías son:

  • Numpy
  • Pandas
  • Scipy
  • Matplotlib
  • Plotly
  • Bokeh
  • Seaborn

Y muchas otras más, que en cursos posteriores veremos a fondo y practicáremos con sus diferentes características. En este caso usaremos Numpy para comenzar a analizar el cómo instalarlas, cargarlas y nombrarlas.

!pip install numpy #Esta línea se usa solo la primera vez que vamos a usarla.
import numpy as np #Importamos la librería para usarla con la abreviación de np.
np4 = np.array(vector4) #Esta es la forma de convertirlos en vectores matemáticos.
np5 = np.array(vector5)
print(type(np5)) #Observa el tipo de objeto que ahora reconoce Python.
print(vector4)
print(vector5)
Ejercicio

Ahora que ya has convertido los vectores intenta elaborar cada una de las operaciones de calculadora con ellos (suma, multiplicación, resta, división, etc.) y observa comoestas opreciones se aplicacn a cada uno de los elementos del vector.

Nota importante, hay algunas operaciones vectoriales como el producto punto que se especifica de manera diferente y con declaraciones específicas.

Creación de Matrices

En Python, como en cualquier otros lenguajes de programación, las matrices serán el objeto más similar para entender como manipular un «Data frame» es por eso que las veremos aquí a detalle.

matriz=np.array([[1,2,4],[3,4,6],[5,6,9]]) #Creamos nuestra pequeña matriz
print(matriz)

La forma de acceder a cada uno de los elementos que constituyen las matrices será identificado por un par de coordenadas. Y de igual manera que en los vectores, por unos corchetes seguidos del nombre de la matriz.

matriz[0,0]
matriz[0,1]
matriz[2,1]

Una de las cosas es que puedes acceder a un conjunto de datos que corresponden a un vector de la matriz ya sea de manera horizontal (fila) o de manera vertical (columna), para acceder a ese tipo de elementos se declara el uso de dos puntos «:» de la siguiente manera:

matriz[0,:] #Seleccionas todos los elementos que corresponden a dicha fila
matriz[:,2] #Seleccionas todos los elementos que corresponden a dicha columna

Añadir elementos a una matriz

Muchas veces para resolver problemas de análisis de datos se requiere recolectar todos los datos que se encuentran en diferentes tablas para completar un todo en la información necesaria. Para eso existen varias librerías que te permitirán ahcer esa union, un ejemplo es Pandas, en este caso usaremos Numpy para ejemplificar sencillamente conomo se sigue cierta lógica en la sintáxis.

Nuevamente usamos la función «append» solo que ahora dentro del paréntesis ira el nombre de la matriz y la matriz/vectores que se aumentarán.

np.append(m1, [[11, 12, 3]], axis=0) #axis=0 indica que se aumentará como columna 
np.append(m1, [[11], [12],[5]], axis=1) #axis=1 indica que se aumentará como fila
#Recuerda usar el "axis" de lo contrario la matriz se volverá una lista. 

Para insertar una fila o columna más requieres indicar la posición de fila o columna donde aumentaras los datos, donde si ese «uno» se refiere a la posición «uno» de la columna es porque «axis=0» si «axis=1» se refiere que los datos se acomodaran a partir de la fila «uno».

Ejercicio

Replica el siguiente código para que mediante la visualización de los resultados, puedas comprender que orden lógico sigue Python para acomodar los nuevos datos. También te invitamos a jugar con dihos parámetros para que veas en qué ocasiones el código es incorrecto.

np.insert(m1,0, [[11], [12],[5]], axis=1)
np.insert(m1,1, [[11], [12],[5]], axis=1)
np.insert(m1,0, [[11], [12],[5]], axis=0)
np.insert(m1,1, [[11], [12],[5]], axis=0)

Estreuctura de funciones

Enseguida conoceremos los operadores relacionales y palabras reservadas que Python tiene con las cuales, nosotros nos comunicaremos directamente con él para que ejecute un conjunto de instrucciones siempre y cuando se cumpla con las condiciones establecidas.

Operadores relacionales

  • == Signo con el cual le indicas a Python evalúe la igualdad entre dos argumentos.
  • != Signo con el cual Python evaluará la desigualdad entre dos argumentos.
  • <, >, <=, >= Signos con los cuales Python evaluará el que sea menor, mayor, menor o igual que y mayor o igual que, entre dos argumentos .

Palabras reservadas

['False',
 'None',
 'True',
 'and',
 'as',
 'assert',
 'async',
 'await',
 'break',
 'class',
 'continue',
 'def',
 'del',
 'elif',
 'else',
 'except',
 'finally',
 'for',
 'from',
 'global',
 'if',
 'import',
 'in',
 'is',
 'lambda',
 'nonlocal',
 'not',
 'or',
 'pass',
 'raise',
 'return',
 'try',
 'while',
 'with',
 'yield']

funciones

def nombre(arg):  #nombre es una palabra que tu eliges para llamar tu función.
    print("¡Hola",arg,"!")
nombre(8)
def suma(c,d): #los argumentos que en este caso son c,d serán arbitrarios.
    return(c+d)
suma(5,1)

if

if 3!=4: #Al finalizar las indicaciones se establecen ":"
   print(True)
if 10<5: 
   c=10-5  #Después de los dos puntos puedes ingresar un conjunto de instrucciones a #elaborar
   print(c)
if 10<5:
   c=10*5
else:  #Otra palabra reservada para que en caso de que no cumpla la primera      #declaración, ejecute otro tipo de algoritmos.
   c=10-5
   print(c)

for

La indicación que le das a Python con la función «for» es que para cada uno de los elementos que existen dentro de un vector o lista, generará una acción en específico, repitiendo el proceso de acuerdo al número de elementos que existan, incluso se puede ir remplazando dicho elemento en las operaciones que ejecuta.

s=np.array([1,2,3,4,5]) #Vector sobre el cual correrá el índice del "for"
for i in s:
    print(i)
sp=["Manzana","Pera","Durazno","Limón"]
for i in sp:
   #Incluso puedes anidar funciones dentro de otras funciones y hacer el algoritmo      #tan complejo como se requiera.
    if i is "Durazno":   
       print("Loteria")
    else:
       print("No")

Y de esta manera puedes formular más funciones con las palabras reservadas con las cuales puedes automatizar muchos procesos que no solo se refieren con Ciencia de Datos.

Ejercicio

Crea una lista de elementos, donde, si los indicadores de las posiciones son pares, que dicha lista se llene de la palabra «Par» y si las entradas son impares rellenar con el número de entrada que le corresponde, y si no es ni par ni impar (que es el caso del cero), rellenar con la palabra «Cero».

Puedes enviar tus resultados o dudas a nuestra página de facebook: @McoderMexico y ahora sí estás listo para investigar sobre las librerías que ofrece Python especializadas en Ciencia de datos. Aquí te dejo algunas para que en nuestros próximos Whorkshops no te quedes atrás.

Bibliotecas principales (No se puede sobrevivir sin ellas)

  • NumPy: NumPy significa Pitón Numérico y es el paquete más fundamental sobre el que se construyen todas las bibliotecas científicas.
  • Pandas: Pandas es la librería más utilizada y perfecta para el Data Wrangling. Permite realizar tareas de manipulación, agregación y visualización de datos de forma más sencilla.

Visualización de los datos

  • Matplotlib: Matplotlib es la biblioteca más utilizada para crear visualizaciones de datos simples pero potentes.
  • Plotly: Plotly es una maravillosa biblioteca de visualización de datos interactiva basada en la web. Para poder usar esta librería, tenemos que configurar una clave de API.

-Connie Vega

Data Scientist

Un comentario

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.