Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, de tipado fuerte, dinámico y multiplataforma.
Caracteristicas.
Historia
Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC.
Que es pip
PiP es un acrónimo recursivo de " Pip Installs Packages ". Es esencialmente un sistema de administración de paquetes utilizado para instalar y administrar paquetes de software escritos en Python py -m pip install pandas
Donde programar ?
Librerias mas usadas en python
Tipos de datos en Python (lo veremos en detalle mas adelante)
1) Enmarcar el problema
¿Cual es el objetivo del análisis?
2) Adquirir y preparar los datos
3) Explorar los datos
Estadística descriptiva
4) Modelamiento y evaluacion de resultados
5) Comunicar los resultados/ poner en producción
Usa la estadística como un borracho usa las farolas, para el apoyo en lugar de la iluminacion - Andrew Lang
longitud de una cadena, tupla, lista, diccionario, etc.
len("hola")
Para observar el tipo de dato usamos la función type()
type(8.5)
Redondear.
# redondeando a 3 cifras decimales
round(8.12345678, 3 )
Organizar un conjunto
sorted([1,8,9,6,4,])
funciones o metodos que se pueden aplicar a un tipo de datos
a = "hola mundo"
dir(a)
import turtle
window = turtle.Screen()
esteban = turtle.Turtle()
esteban.fordwar(50)
esteban.left(90)
esteban.fordwar(50)
esteban.left(90)
esteban.fordwar(50)
esteban.left(90)
esteban.fordwar(50)
esteban.left(90)
turtle.mainloop()
En Python existe una amplia manera de imprimir resultados en pantalla, aquí mostraremos algunas de ellas.
# Primero definamos algunas variables para trabajar.
a = 8
b = 8.8
c = "Unalytics"
# Forma 1.
print("hola mundo")
# Forma 2.
print(a, b, c)
print("a:", a, "b:", b, "c:", c)
print("resultado", a*b)
print("Escribir algo entre \"comillas\"")
# Forma 3. (Especificadores de formato)
print("numero1: %d numero2: %.2f caracteres: %s" %(a,b,c))
# Forma 4. (triple comilla)
print("""para que podamos
incluir saltos
de linea""")
Nota:
print("hola mundo") en py 3.x (forma funcional)
print "hola mundo" en py 2.x
input()
Condicionales (if)
# Declarando variables
numero_1 = 80
numero_2 = 10
# condicional (if)
if numero_1 > numero_2:
print("numero_1 es mayor")
else:
print("numero_1 no es mayor")
# Nota: Muy importante la identación.
nota = int(input("Ingrese su nota: "))
if nota < 3:
print("Perdio")
elif nota <= 4:
print("gano")
elif nota <= 5:
print("exelente")
else:
print("nota incorrecta")
# concatenacion de operadores de condicion
edad = int(input("ingrese edad: \n"))
if 0<edad<100:
print("edad correcta")
else:
print("edad incorrecta")
Operadores logicos (and, or, in )
Ciclos - bucle
for
for i in [1,2,5]:
print(i)
Son un bloque de código que realizan una tarea especifica, Las funciones pueden o no devolver valores, pueden tener parámetros o no, las funciones se crean con la palabra reservada def
# creando (declarando) función
def nombre_de_la_funcion(a, b):
c=a**b
return(c)
# Nota: return es opcional
# llamado a la función
nombre_de_la_funcion(a=2, b=3)
Listas
Estructura de datos que permite alamcenar valores (lista = array en R).
Puede almacenar diferentes tipos de valores
# Creando lista
mi_lista = [8, 8.8, "Unalytics", "UN", 100, True, False]
# tipo
type(mi_lista)
Accediendo a elementos
#Imprimiendo elementos
print(mi_lista[:])
# Accediendo a un elemento
mi_lista[-1]
# Accediendo a un elemento
mi_lista[2:]
Agregando elementos (appen, insert, extend, index, in)
mi_lista.append("Colombia")
mi_lista.insert(0, "Medellín")
mi_lista.extend(["otra lista", "Sabrina"])
mi_lista.index("Unalytics")
"Unalytics" in mi_lista
Tuplas
Las tuplas son listan inmutable (no podemos modificarlas).
permiten comprobación (in)
Ventajas: Mayor rendimiento
Convertir tupla a lista : list()
Convertir lista a tupla: tuple()
Desempaquetado de tupla.
# Creando tupla
mi_tupla=("1", 2, 3, "Unalytics", True, False)
mi_tupla
len(mi_tupla)
Diccionarios
Los datos se almacenan como Clave : Valor
Cualquier tipo de datos (lista, tuplas, otro diccionario)
mi_diccionario = {"Colombia":["Medellín", "Bogotá"], "USA":"New york", "numeros":(1,2,3)}
mi_diccionario["Colombia"][:]
mi_diccionario["Animales"]=["perro", "gato"]
mi_diccionario
# Eliminando valores
del mi_diccionario["USA"]
mi_diccionario.keys()
Una clase no es mas que la representación de un objeto.
class Estudiante(object):
def __init__(self,nombre_r,edad_r):
self.nombre = nombre_r
self.edad = edad_r
def hola(self):
return "Mi nombre es %s y tengo %i" % (self.nombre, self.edad)
e = Estudiante("Arturo", 21)
print(e.hola())
Métodos especiales
cmp(self,otro)
Método llamado cuando utilizas los operadores de comparación para comprobar si tu objeto es menor, mayor o igual al objeto pasado como parámetro.
len(self)
Método llamado para comprobar la longitud del objeto. Lo usas, por ejemplo, cuando llamas la función len(obj) sobre nuestro código. Como es de suponer el método te debe devolver la longitud del objeto.
init(self,otro)
Es un constructor de nuestra clase, es decir, es un “método especial” que es llamas automáticamente cuando creas un objeto.
atributo (sin parecentesis) metodo (con parentesis)
# cargando libreria
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
auto = pd.read_csv("https://raw.githubusercontent.com/unalyticsteam/databases/master/auto-mpg.csv")
auto.head()
auto.info()
# convertir cilindros a variable categorica
#auto['model year']
# objeto serie (analogo a vector en R)
auto.model_year = auto.model_year.astype('category')
auto.cylinders = auto.cylinders.astype('category')
type(auto.model_year)
auto.info()
Analisis descriptivo
# summary en R
round(auto.describe(), 2)
Filtros
loc & iloc fltros sobre texto y filtro sobre indices
# filtros por indices
auto.iloc[3,]
# para extraer toda la columa
auto.loc[mpg]
# filtar por carros de 4 y 6 cylindros
auto.loc[auto.cylinders == 4 ].head()