/ Data science

Intro a Python para Data Science (Funciones y paquetes)

Ok en el capítulo anterior vimos Listas en python, que nos sirven para manipular muchos datos al mismo tiempo, ¿pero qué pasa si queremos manipular y encapsular datos y hacerlos funcionales muchas veces? No podemos estár escribiendo el mismo algoritmo mil veces para reusarlo sería muy tedioso y muy cansado, para eso tenemos las funciones.

1. Funciones

¿Qué son las funciones? No son más que una pieza reusable de código que sirve para solucionar tareas específicas, puede tomár parámetros para cumplir con su objetivo, python tiene muchísimas funciones predefinidas y muchas librerías que pueden ser importadas que contienen muchas funciones más, puedes llamar esas funciones en lugar de escribir código tu mismo para solucionar tus problemas.

Por ejemplo la función round() que nos ayuda a redondear números, obtiene dos parámetros, el primero es el numero a redondear y el segundo la es la precición a redondear ej: round(25.65, 1) el resultado sería 25.6, puedes llamar la función con solo un parámetro asi: round(25.65) y la función redondea y convierte a entero el resultado sería 26.

Nota importante en python los inputs son llamados argumentos, porque todo en python es un objeto, estos conceptos son muy avanzados los veremos a fondo en otro capítulo.

Fuera de la caja, Python ofrece un conjunto de funciones integradas para facilitar tu vida como científico de datos. Usted ya conoce dos de estas funciones: print () y type (). También usaste las funciones str (), int (), bool () y float () para alternar entre tipos de datos. Estas son funciones integradas también.

Llamar a una función es fácil. Para obtener el tipo de 3.0 y almacenar la salida como una nueva variable, resultado, puede usar lo siguiente: res= type(3.0).

Podemos meter una función dentro de otra función, a continuación vamos a ver un ejemplo super simple de cómo usar funciones y cómo hacer lo que les acabo de indicar.

Usando funciones:

# Creando variables var1 y var2
var1 = [1, 2, 3, 4]
var2 = True

# imprimiendo el tipo de la variable
print(type(var1))

# imprimiendo el largo de la variable
print(len(var1))

# convirtiendo la variable en entero y asignándola a otra variable
out2 = int(var2)

Como te podrás das cuenta usamos la función print() para imprimir y dentro como argumento pasamos otra función que va a realizar la acción que necesitamos, pero dentro de esa función se pasa como argumento la variable para que se pueda trabajar con su valor,¡¡TE DAS CUENTA QUE SENCILLO!!

¡¡AYUDA!!

Python es súper genial, es el primer lenguaje con el que me topo que tiene esa funcionalidad que es una función de ayuda que te indica como usar una función, tu puedes saber como se llaman pero talvez no sabes usar más de alguna, usando la función help(), obtenemos ayuda por ejemplo help(max), si escribes esto en tu consola python, verás la documentación del uso de esta funció ¿Esto es genial no? Si necesitas ver la Documentación oficial este es el link.

Múltiples argumentos

los corchetes en la documentación nos mostrarán que el argumento es opcional. Pero Python también usa una forma diferente de decirle a los usuarios que los argumentos son opcionales.

Eche un vistazo a la documentación de sorted() escribiendo help (ordenado) en el shell de IPython.

Verás que sorted() toma tres argumentos: iterable, key e reverse.

key = None significa que si no especifica el argumento clave, será None. reverse = False significa que si no especifica el argumento inverso, será False, vamos a ver un ejemplo.

# Creaamos dos listas
first = [11.25, 18.0, 20.0]
second = [10.75, 9.50]

# Plas concatenamos e una nueva variable
full = first+second

# Ordenamos en orden descendente
full_sorted = sorted(full, reverse=True)

# imprimimos
print(full_sorted)

2. Metodos:

Puedes pensar en métodos como funciones que 'pertenecen' a objetos de python, Cabe mencionar que objetos pueden ser strings ints floats lists, ya que como mencionaba antes todo en python es un objeto. Los métodos de python se usan dependiendo del tipo del objeto, los métodos de uns string no son los mismos que los de un float, A continuación veremos un ejemplo:

#tenemos una objeto de tipo lista
familia = ['mama','papá','hermanos']
#si queremos obtener el índice de un elemento usamos el método index()
indice = familia.index('mamá')
#si lo imprimimos nos almacena un 0, porque mamá es el indice 0 de esa lista.

Quieres verificar más métodos y cómo funcionan ve a la Documentación oficil Built in types.

3. Paquetes:

Esto es algo muy bonito porque python tiene miles de paquetes de aportados por la comunidad más los otros miles que tu puedes llegar a crear, piensa en un paquete como on conjunto de funciones y métodos que realizan una acción determinada, el cual puedes integrar a tu proyecto para ayudarte.

En Data Science hay muchos paquetes que te van a hacer la vida fácil por ejemplo: Numpy para Data Science, Mathplotlib para visualización de datos y Sckit-learn para machine learning, Para usarlos simplemente tienes que instalarlos en tu máquina y trabajar con ellos.

Para instalarlos necesitas pip que es el manejador de paquetes de python, ya viene instalado en mac y linux, cuando instalas windows también se instala por defecto, así que no te asustes. en caso no lo tuvieras solo escribe en la terminal esto: python get-pip.py y si quieres instalar numpy solo escribe pip install numpy, cuando ya tengas pip en tu sistema.

Haciendo esto tienes numpy instalado en todo tu sistema y poder ser integrado a tus proyectos.

Importando paquetes:

Esto es muy fácil en caso estuvieras trabajando en un proyecto y necesitaras integrar un paquete solo haz lo siguiente:

#importando todo el paquete

import numpy

#importando todo el paquete pero usando un alias.

import numpy as np #con esto no necesitarás escribir numpy cada vez que

#uses alguna función o método de numpy sino que solo usarás las letras np

#por ejemplo querémos usar la función array del paquete numpy lo hacemos así

np.array([1,2,3]) #np es el alias y array el método

#pero si quisieramos de una vez importar solo la función array de numpy
#lo indicamos haciendo lo siguiente:

from numpy import array

#con esto le decimos que del paquete numpy importe la función array

Otro ejemplo con el paquete math calculando la circunferencia y el área de un círculo.

# declarando un radio
r = 0.43

# Importando el paquete
import math

# Calculando C (circunferencia)
C = 2*math.pi*r

# Calculate A (área)
A = math.pi*r**2

# Imprimiendo datos
print("Circumference: " + str(C))
print("Area: " + str(A))

Diferentes formas de importar:

Hay varias maneras de importar paquetes y módulos en Python. Dependiendo de la llamada de importación, tendrá que usar un código de Python diferente.

Supongamos que desea usar la función inv (), que está en el subpaquete linalg del paquete scipy. Desea poder utilizar esta función de la siguiente manera: my_inv([[1,2], [3,4]]). Entonces tendrás que hacer esto: from scipy.linalg import inv as my_inv.

Material complementario de la lección lo puedes encontrar en la sección 1.7 hasta la 1.13 del libro Python notes for profesionals de goalkicker.com, Dudas, respuestas y sugerencias en la caja de comentarios ¡¡PLEASE!!

Orlando Morales

Orlando Morales

Arquitecto web, Data scientist freelance y amante de las Artes Marciales, me encanta siempre aprender, emprender y luchar por mejorar mi estilo de vida mientras disfruto de lo que hago.

Leer más