SlideShare una empresa de Scribd logo
[Sesion03] introduccion python
Educación Ejecutiva
UTEC
David Allende Quintana
Capacitador de Analítica aplicada
Lead Data Scientist Tottus Corporativo
Consultor Analítico
Experiencia profesional: Banca, Telecomunicaciones, Consultoría
Ingeniero Estadístico con especialización en Inteligencia de Negocios
Educación Ejecutiva
UTEC
Reglas
1 pausa activa
Mantener silenciado al micrófono de todos
Las preguntas se realizan por el chat / en caso sea necesario se
habilita el micrófono
Educación Ejecutiva
UTEC
Objetivos
Introducción a Numpy
Comandos básicos de Python e instalación de funciones.
Introducción a Python y Google Colab.
Introducción a Pandas
Educación Ejecutiva
UTEC
INTRODUCCIÓN A
PYTHON Y GOOGLE
COLAB
PYTHON
• Es un lenguaje de programación interpretado ¡Bye compilador!
• Posee un tipado dinámico, es decir no requiere que se declare el tipo de dato de cada variable creada y además puede
cambiar conforme se le vaya asignando valores.
• Recomendado para aprender a programar, sintaxis muy sencilla y legible (como si estuviéramos hablándole al ordenador).
HISTORIA DE PYTHON
PYTHON EN EL MUNDO EMPRESARIAL
• Es gratuito.
• Cuenta con soporte de la comunidad
académica a nivel mundial.
• Tiene actualización constante
• Es multiplataforma.
• Distingue mayúsculas de minúsculas.
• El # sirve para comentar.
• El nombre de un objeto no puede empezar
con un número.
• Las líneas de código se separan por enter.
BENEFICIOS Y CONSIDERACIONES DE PYTHON
PYTHON Y GOOGLE COLAB
[Sesion03] introduccion python
[Sesion03] introduccion python
TALLERES PRÁCTICOS
ELEMENTOS BÁSICOS EN PYTHON
Notebook:
Contiene los códigos que uno ingresa
para realizar análisis o manipulación
de datos en Python. Tienen la
extensión *.ipynb
Objetos:
Las entidades que Python crea y
manipula, un objeto puede ser creado
por “=“.
Librería:
Funcionalidades creadas en Python
para realizar múltiples tareas.
COMANDOS BÁSICOS EN PYTHON
Asignación a objetos con operaciones matemáticas básicas
3.6 * 100
tc = 3.6*100
Verificamos las versiones de las librerías instaladas
import sys
print('Python version:', sys.version)
import IPython
print('IPython:', IPython.__version__)
import numpy
print('numpy:', numpy.__version__)
import pandas
print('pandas:', pandas.__version__)
COMANDOS BÁSICOS EN PYTHON
Asignación a objetos con caracteres
palabra = "Python“
palabra[0]
palabra[3]
palabra[-1]
palabra[2:]
len(palabra)
Listas
numeros = [1,2,3,4]
datos = [4,"Una cadena",-15,3.14,"Otra cadena"]
letras = ['a','b','c','d','e','f']
pares = [0,2,4,5,8,10]
COMANDOS BÁSICOS EN PYTHON
Operaciones con listas
datos[2:]
datos[-2:]
pares.append(12)
letras[:3] = ['A','B','C']
Letras
letras[:3] = []
Listas de listas
numeros = [1,2,3,4]
datos = [4,"Una cadena",-15,3.14,"Otra cadena"]
letras = ['a','b','c','d','e','f']
pares = [0,2,4,5,8,10]
COMANDOS BÁSICOS EN PYTHON
Operaciones con lista de listas
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
r = [a,b,c]
r[0]
r[-1]
r[2][2]
Tratamiento de Datos
Almacena «Click Stream Data»
Antes de analizar es necesario:
 Extraer la data
 Limpiar la data
[Sesion03] introduccion python
 Array es una matriz unidimensional.
 En Python la estructura de datos por defecto son las listas. Sin embargo, las listas no soportan operaciones
matemáticas avanzadas, no está optimizado para hacerlo.
 NumPy = Paquete de Python creado por Travis Oliphant con propósitos científicos.
 Array en NumPy consume menos memoria y por ende es más rápido que una lista de Python.
Para la creación de un Array en Python
1.Necesitamos importar la librería:
import numpy as np
2.Creamos el array en Python:
n_array = np.array([[0, 1, 2, 3],[4, 5, 6, 7],[8, 9, 10, 11]])
ARREGLOS CON NUMPY
Un Array en Python tiene los siguientes atributos:
 ndim: nos da el número de dimensiones del array.
n_array.ndim
 shape: nos da el tamaño de cada dimensión.
n_array.shape
 size: nos da el número de elementos.
n_array.size
 dtype: nos da el tipo de los datos en el array.
n_array.dtype.name
ARREGLOS CON NUMPY
 Restas de arrays.
a = np.array( [11, 12, 13, 14])
b = np.array( [ 1, 2, 3, 4])
c = a - b
c
 Potencia de arrays.
b**2
 Funciones sobre los arrays.
np.cos(b)
 Multiplicación de matrices
A1 = np.array([[1, 1],[0, 1]]) / A2 = np.array([[2, 0],[3, 4]])
A1*A2
np.dot(A1,A2)
OPERACIONES MATEMÁTICAS CON NUMPY
Si deseamos seleccionar un elemento en particular de un array:
 Seleccionamos la fila 1 y la columna 2.
n_array[0,1]
 Seleccionamos la fila 1 y las 3 primeras columnas.
n_array[ 0 , 0:3 ]
 Seleccionamos la fila 1 y todas las columnas.
n_array[ 0 , : ]
 Seleccionamos todas las filas y la columna 2.
n_array[ : , 1 ]
OPERACIONES CON NUMPY
Podemos modificar las dimensiones de un array una vez creado
 Modificamos la dimensionalidad de un array llevándolo de dimensión 1xN.
n_array.ravel()
 Modificamos la dimensionalidad del array llevándola a 6 filas x 2 columnas.
n_array.shape = (6,2)
 Transpuesta de un array.
n_array.transpose()
OPERACIONES CON NUMPY
[Sesion03] introduccion python
 Desarrollado por Wes Mckinny cuando trabajaba en AQR Capital Management. Deseaba una herramienta lo suficientemente flexible
para hacer análisis cuantitativos en datos financieros. Más adelante se le unió Chang She a seguir desarrollando el paquete.
 La librería Pandas desarrollada para el análisis. Fue desarrollada en NumPy.
 La librería Pandas trae la riqueza de R al mundo de Python. Tiene eficiente estructuras de datos para procesar los datos, unir datos y
leerlos de varias fuentes.
 Las estructuras de Pandas:
Series
DataFrame
Panel
ANÁLISIS DE DATOS CON PANDAS
Las series son un array de una dimensión, pueden almacenar cualquier tipo de
datos como valores discretos, continuos, cadenas y objetos Python.
 Importar la librería Pandas desde Python.
import pandas as pd
 Creación de una serie a partir de 5 números aleatorios.
pd.Series(np.random.randn(5))
pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
SERIES
Es una estructura de datos de 2 dimensiones de distinto tipos de datos, un data frame puede venir de las siguientes
estructuras de datos:
NumPy Array, Listas, Diccionarios, Series, 2D NumPy Array.
 Data Frames que provienen de diccionarios de series.
d = {'c1': pd.Series(['A', 'B', 'C']),'c2': pd.Series([1, 2., 3., 4.])}
df = pd.DataFrame(d)
 Data Frames que provienen de diccionarios de listas.
d = {'c1': ['A', 'B', 'C', 'D'],'c2': [1, 2.0, 3.0, 4.0]}
df = pd.DataFrame(d)
DATA FRAMES
Es una estructura de datos de 3 dimensiones.
 Data Frames que provienen de diccionarios de series.
d = {'Item1': pd.DataFrame(np.random.randn(4, 3)),
'Item2': pd.DataFrame(np.random.randn(4, 2))}
pd.Panel(d)
PANEL
Los datos pueden estar de varias formas: csv, TSV, bases de datos, etc.
Vamos a importar datos de estudiantes.
IMPORTAR Y EXPORTAR DATOS
 Importar datos en formato csv.
d = pd.read_csv('Data/students.csv')
 Leer los primeros registros.
d.head()
 Leer registros específicos de una variable
d[0:5][variable]
 Exportar datos de un data frame a un csv
d = {'c1': pd.Series(['A', 'B', 'C']),'c2': pd.Series([1, 2., 3., 4.])}
df = pd.DataFrame(d)
df.to_csv('sample_data.csv')
IMPORTAR Y EXPORTAR DATOS
 Importar datos en formato xls.
d = pd.read_excel('Data/students.xls')
 Leer los primeros registros.
d.head()
 Leer registros específicos de una variable
d[0:5][‘variable’]
 Exportar datos de un data frame a un xls
df.to_excel('sample_data.xls')
IMPORTAR Y EXPORTAR DATOS
 Importar el paquete JSON.
import json
json_data = open('Data/students.json')
data = json.load(json_data)
json_data.close()
IMPORTAR Y EXPORTAR DATOS
[Sesion03] introduccion python
 Identificar a los valores perdidos.
d[‘variable’].isnull()
 Identificar a los valores no perdidos.
d[‘variable’].notnull()
 Cuantificar a los valores perdidos.
d[‘variable’].isnull().value_counts()
 Cuantificar a los valores no perdidos.
d[‘variable’].notnull().value_counts()
 Eliminar a los valores perdidos.
d = d[‘variable’].dropna()
 Eliminar a cualquier registro que tenga por lo menos un campo con valor perdido.
d = d.dropna(how='any')
VALORES PERDIDOS
 Crear un data frame en base a números aleatorios.
df = pd.DataFrame(np.random.randn(5, 3), index=['a0', 'a10','a20', 'a30', 'a40'],
columns=['X', 'Y', 'Z'])
 Crear índices adicionales al data frame.
df2 = df.reindex(['a0', 'a1', 'a10', 'a11', 'a20', 'a21','a30', 'a31', 'a40', 'a41'])
 Completar los valores perdidos con ceros.
df2.fillna(0)
 Completar los valores perdidos con el método “forward propagation”. Se va completar con
el valor previo al nulo.
df2.fillna(method='pad')
 Completar los valores perdidos con el promedio de la variable.
df2.fillna(df2.mean())
VALORES PERDIDOS
 Importar un archivo csv y leer los 5 primeros casos.
df = pd.read_csv('data/students.csv')
df['AREA NAME'][0:5]
 Filtrar casos específicos.
df[df['GRADE LEVEL'] == 'ELEMENTARY']
 Convertir a mayúsculas.
df['AREA NAME'][0:5].str.upper()
 Convertir a minúsculas.
df['AREA NAME'][0:5].str.lower()
 Cuantificar la cantidad de caracteres de cada elemento.
df['AREA NAME'][0:5].str.len()
 Cortar en base a espacios en blanco.
df['AREA NAME'][0:5].str.split(' ')
 Reemplazar
df['AREA NAME'][0:5].str.replace('DISTRICT$', 'DIST')
OPERACIONES CON CADENAS
[Sesion03] introduccion python
 Seleccionamos los 5 primeros registros de 2 campos.
d[['AREA NAME', 'COUNTY']][0:5]
 Partir los datos en dos grupos. Concatenarlos por posición.
p1 = d[['AREA NAME', 'COUNTY']][0:2]
p2 = d[['AREA NAME', 'COUNTY']][2:5]
pd.concat([p1,p2])
 Concatenar datos en base a una llave.
concatenated = pd.concat([p1,p2], keys = ['p1','p2'])
 Seleccionar la data agregada en base a una llave.
concatenated.ix['p1']
CONCATENAR DATOS
 Seleccionamos un subconjunto de elementos y promediamos.
data = d[d['GRADE LEVEL'] == 'ELEMENTARY']
data['NO. OBESE'].mean()
 La suma total.
data['NO. OBESE'].sum()
 Valor máximo.
data['NO. OBESE'].max()
 Valor mínimo.
data['NO. OBESE'].min()
 Desviación Estándar.
data['NO. OBESE'].std()
 Conteo.
data = df[(d['GRADE LEVEL'] == 'ELEMENTARY') &(d['COUNTY'] == 'DELAWARE')]
data['COUNTY'].count()
AGREGAR DATOS
 Creamos un data frame.
grade_lookup = {'GRADE LEVEL': pd.Series(['ELEMENTARY','MIDDLE/HIGH', 'MISC']),
'LEVEL': pd.Series([1, 2, 3])}
grade_lookup2 = pd.DataFrame(grade_lookup)
 La tabla que usaremos como base es la de estudiantes.
df[['GRADE LEVEL']][0:5]
 Inner Join.
d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']),
on=['GRADE LEVEL'], how='inner')
CRUZAR DATOS
 Left Join.
d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']),
on=['GRADE LEVEL'], how='left')
 Full Outer Join.
d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']),
on=['GRADE LEVEL'], how='outer')
CRUZAR DATOS
df['NO. OBESE'].groupby(d['GRADE LEVEL']).sum()
d['NO. OBESE'].groupby(d['GRADE LEVEL']).mean()
d['NO. OBESE'].groupby(d['GRADE LEVEL']).std()
AGRUPAR DATOS
RECURSOS
ADICIONALES
[Sesion03] introduccion python
[Sesion03] introduccion python

Más contenido relacionado

PDF
Tema 0 Repaso Programación en Java
PPTX
Arrays unidimensionales
PDF
Manual de power_builder
PDF
Arreglos
PDF
Conceptos básicos de R
PPTX
Ejercicios con Python parte 05
PDF
Clase 9- programacion
PPT
Lección No. 1 de Python
Tema 0 Repaso Programación en Java
Arrays unidimensionales
Manual de power_builder
Arreglos
Conceptos básicos de R
Ejercicios con Python parte 05
Clase 9- programacion
Lección No. 1 de Python

La actualidad más candente (19)

PPT
Python03
DOCX
Ada 4-napolitano
PPT
Arreglos en C
PPTX
Arreglos c++
PPTX
Arreglos, Procedimientos y Funciones
PPTX
Funciones de Strings en PHP
PDF
Practica 1 Introduccion Al R
DOCX
Practicas java gustavo carbajal macias 402
DOCX
Manual de prácticas java 2015
PDF
16 Curso de POO en java - arreglos unidimensionales
PDF
Transparencias8
DOCX
Ejercicios de matrices y vectores en c++
PPSX
Aplicación de arreglos bidimensionales
PDF
Entrega 8 arreglos - controles - gráficos
PPT
Python05
PPT
Arreglos
PPTX
Ejercicios Python parte 4
PDF
Biblioteca java.util por gio
Python03
Ada 4-napolitano
Arreglos en C
Arreglos c++
Arreglos, Procedimientos y Funciones
Funciones de Strings en PHP
Practica 1 Introduccion Al R
Practicas java gustavo carbajal macias 402
Manual de prácticas java 2015
16 Curso de POO en java - arreglos unidimensionales
Transparencias8
Ejercicios de matrices y vectores en c++
Aplicación de arreglos bidimensionales
Entrega 8 arreglos - controles - gráficos
Python05
Arreglos
Ejercicios Python parte 4
Biblioteca java.util por gio
Publicidad

Similar a [Sesion03] introduccion python (20)

PPTX
Python científico (introducción a numpy y matplotlib))
PDF
Uso de librería Pandas. Uso de librería Pandas.
PDF
Uso de librería Pandas. Uso de librería Pandas.
PPTX
Clase 3 - Introducción a la programación con Python II.pptx
PDF
Introduccion a Python. Clase 9
PDF
PDF
PPT Sesión 05- PBI Python.pdf
PPTX
vectores y matrices2,2.pptx
PDF
python CIENTIFIFO.pdf
PDF
Introduccion a Python y Data Science
PDF
Sesión1_Trabajando con Datos en Python.pdf
PDF
MatricesYVectoresIntroduccionnUMPY......
PDF
Programacion en python_1
PDF
programación para la ciencia de datos con Python
PDF
Curso de Python
PDF
Python SDK Colima
PDF
PPTX
Libreria Numpy.pptxjjnjkkkkkkkkkkkkkkkkkkkkkkkkkkk
PDF
Clase dos
PDF
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Python científico (introducción a numpy y matplotlib))
Uso de librería Pandas. Uso de librería Pandas.
Uso de librería Pandas. Uso de librería Pandas.
Clase 3 - Introducción a la programación con Python II.pptx
Introduccion a Python. Clase 9
PPT Sesión 05- PBI Python.pdf
vectores y matrices2,2.pptx
python CIENTIFIFO.pdf
Introduccion a Python y Data Science
Sesión1_Trabajando con Datos en Python.pdf
MatricesYVectoresIntroduccionnUMPY......
Programacion en python_1
programación para la ciencia de datos con Python
Curso de Python
Python SDK Colima
Libreria Numpy.pptxjjnjkkkkkkkkkkkkkkkkkkkkkkkkkkk
Clase dos
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Publicidad

Último (20)

PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
Presentación de Redes de Datos modelo osi
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
Maste clas de estructura metálica y arquitectura
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Estrategia de apoyo tecnología grado 9-3
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
El-Gobierno-Electrónico-En-El-Estado-Bolivia
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Influencia-del-uso-de-redes-sociales.pdf
Diapositiva proyecto de vida, materia catedra
REDES INFORMATICAS REDES INFORMATICAS.pptx
Calidad desde el Docente y la mejora continua .pdf
Presentación de Redes de Datos modelo osi
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Maste clas de estructura metálica y arquitectura
historia_web de la creacion de un navegador_presentacion.pptx
Presentación PASANTIAS AuditorioOO..pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Zarate Quispe Alex aldayir aplicaciones de internet .docx
CyberOps Associate - Cisco Networking Academy
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.

[Sesion03] introduccion python

  • 2. Educación Ejecutiva UTEC David Allende Quintana Capacitador de Analítica aplicada Lead Data Scientist Tottus Corporativo Consultor Analítico Experiencia profesional: Banca, Telecomunicaciones, Consultoría Ingeniero Estadístico con especialización en Inteligencia de Negocios
  • 3. Educación Ejecutiva UTEC Reglas 1 pausa activa Mantener silenciado al micrófono de todos Las preguntas se realizan por el chat / en caso sea necesario se habilita el micrófono
  • 4. Educación Ejecutiva UTEC Objetivos Introducción a Numpy Comandos básicos de Python e instalación de funciones. Introducción a Python y Google Colab. Introducción a Pandas
  • 6. PYTHON • Es un lenguaje de programación interpretado ¡Bye compilador! • Posee un tipado dinámico, es decir no requiere que se declare el tipo de dato de cada variable creada y además puede cambiar conforme se le vaya asignando valores. • Recomendado para aprender a programar, sintaxis muy sencilla y legible (como si estuviéramos hablándole al ordenador).
  • 8. PYTHON EN EL MUNDO EMPRESARIAL
  • 9. • Es gratuito. • Cuenta con soporte de la comunidad académica a nivel mundial. • Tiene actualización constante • Es multiplataforma. • Distingue mayúsculas de minúsculas. • El # sirve para comentar. • El nombre de un objeto no puede empezar con un número. • Las líneas de código se separan por enter. BENEFICIOS Y CONSIDERACIONES DE PYTHON
  • 14. ELEMENTOS BÁSICOS EN PYTHON Notebook: Contiene los códigos que uno ingresa para realizar análisis o manipulación de datos en Python. Tienen la extensión *.ipynb Objetos: Las entidades que Python crea y manipula, un objeto puede ser creado por “=“. Librería: Funcionalidades creadas en Python para realizar múltiples tareas.
  • 15. COMANDOS BÁSICOS EN PYTHON Asignación a objetos con operaciones matemáticas básicas 3.6 * 100 tc = 3.6*100 Verificamos las versiones de las librerías instaladas import sys print('Python version:', sys.version) import IPython print('IPython:', IPython.__version__) import numpy print('numpy:', numpy.__version__) import pandas print('pandas:', pandas.__version__)
  • 16. COMANDOS BÁSICOS EN PYTHON Asignación a objetos con caracteres palabra = "Python“ palabra[0] palabra[3] palabra[-1] palabra[2:] len(palabra) Listas numeros = [1,2,3,4] datos = [4,"Una cadena",-15,3.14,"Otra cadena"] letras = ['a','b','c','d','e','f'] pares = [0,2,4,5,8,10]
  • 17. COMANDOS BÁSICOS EN PYTHON Operaciones con listas datos[2:] datos[-2:] pares.append(12) letras[:3] = ['A','B','C'] Letras letras[:3] = [] Listas de listas numeros = [1,2,3,4] datos = [4,"Una cadena",-15,3.14,"Otra cadena"] letras = ['a','b','c','d','e','f'] pares = [0,2,4,5,8,10]
  • 18. COMANDOS BÁSICOS EN PYTHON Operaciones con lista de listas a = [1,2,3] b = [4,5,6] c = [7,8,9] r = [a,b,c] r[0] r[-1] r[2][2]
  • 19. Tratamiento de Datos Almacena «Click Stream Data» Antes de analizar es necesario:  Extraer la data  Limpiar la data
  • 21.  Array es una matriz unidimensional.  En Python la estructura de datos por defecto son las listas. Sin embargo, las listas no soportan operaciones matemáticas avanzadas, no está optimizado para hacerlo.  NumPy = Paquete de Python creado por Travis Oliphant con propósitos científicos.  Array en NumPy consume menos memoria y por ende es más rápido que una lista de Python. Para la creación de un Array en Python 1.Necesitamos importar la librería: import numpy as np 2.Creamos el array en Python: n_array = np.array([[0, 1, 2, 3],[4, 5, 6, 7],[8, 9, 10, 11]]) ARREGLOS CON NUMPY
  • 22. Un Array en Python tiene los siguientes atributos:  ndim: nos da el número de dimensiones del array. n_array.ndim  shape: nos da el tamaño de cada dimensión. n_array.shape  size: nos da el número de elementos. n_array.size  dtype: nos da el tipo de los datos en el array. n_array.dtype.name ARREGLOS CON NUMPY
  • 23.  Restas de arrays. a = np.array( [11, 12, 13, 14]) b = np.array( [ 1, 2, 3, 4]) c = a - b c  Potencia de arrays. b**2  Funciones sobre los arrays. np.cos(b)  Multiplicación de matrices A1 = np.array([[1, 1],[0, 1]]) / A2 = np.array([[2, 0],[3, 4]]) A1*A2 np.dot(A1,A2) OPERACIONES MATEMÁTICAS CON NUMPY
  • 24. Si deseamos seleccionar un elemento en particular de un array:  Seleccionamos la fila 1 y la columna 2. n_array[0,1]  Seleccionamos la fila 1 y las 3 primeras columnas. n_array[ 0 , 0:3 ]  Seleccionamos la fila 1 y todas las columnas. n_array[ 0 , : ]  Seleccionamos todas las filas y la columna 2. n_array[ : , 1 ] OPERACIONES CON NUMPY
  • 25. Podemos modificar las dimensiones de un array una vez creado  Modificamos la dimensionalidad de un array llevándolo de dimensión 1xN. n_array.ravel()  Modificamos la dimensionalidad del array llevándola a 6 filas x 2 columnas. n_array.shape = (6,2)  Transpuesta de un array. n_array.transpose() OPERACIONES CON NUMPY
  • 27.  Desarrollado por Wes Mckinny cuando trabajaba en AQR Capital Management. Deseaba una herramienta lo suficientemente flexible para hacer análisis cuantitativos en datos financieros. Más adelante se le unió Chang She a seguir desarrollando el paquete.  La librería Pandas desarrollada para el análisis. Fue desarrollada en NumPy.  La librería Pandas trae la riqueza de R al mundo de Python. Tiene eficiente estructuras de datos para procesar los datos, unir datos y leerlos de varias fuentes.  Las estructuras de Pandas: Series DataFrame Panel ANÁLISIS DE DATOS CON PANDAS
  • 28. Las series son un array de una dimensión, pueden almacenar cualquier tipo de datos como valores discretos, continuos, cadenas y objetos Python.  Importar la librería Pandas desde Python. import pandas as pd  Creación de una serie a partir de 5 números aleatorios. pd.Series(np.random.randn(5)) pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e']) SERIES
  • 29. Es una estructura de datos de 2 dimensiones de distinto tipos de datos, un data frame puede venir de las siguientes estructuras de datos: NumPy Array, Listas, Diccionarios, Series, 2D NumPy Array.  Data Frames que provienen de diccionarios de series. d = {'c1': pd.Series(['A', 'B', 'C']),'c2': pd.Series([1, 2., 3., 4.])} df = pd.DataFrame(d)  Data Frames que provienen de diccionarios de listas. d = {'c1': ['A', 'B', 'C', 'D'],'c2': [1, 2.0, 3.0, 4.0]} df = pd.DataFrame(d) DATA FRAMES
  • 30. Es una estructura de datos de 3 dimensiones.  Data Frames que provienen de diccionarios de series. d = {'Item1': pd.DataFrame(np.random.randn(4, 3)), 'Item2': pd.DataFrame(np.random.randn(4, 2))} pd.Panel(d) PANEL
  • 31. Los datos pueden estar de varias formas: csv, TSV, bases de datos, etc. Vamos a importar datos de estudiantes. IMPORTAR Y EXPORTAR DATOS
  • 32.  Importar datos en formato csv. d = pd.read_csv('Data/students.csv')  Leer los primeros registros. d.head()  Leer registros específicos de una variable d[0:5][variable]  Exportar datos de un data frame a un csv d = {'c1': pd.Series(['A', 'B', 'C']),'c2': pd.Series([1, 2., 3., 4.])} df = pd.DataFrame(d) df.to_csv('sample_data.csv') IMPORTAR Y EXPORTAR DATOS
  • 33.  Importar datos en formato xls. d = pd.read_excel('Data/students.xls')  Leer los primeros registros. d.head()  Leer registros específicos de una variable d[0:5][‘variable’]  Exportar datos de un data frame a un xls df.to_excel('sample_data.xls') IMPORTAR Y EXPORTAR DATOS
  • 34.  Importar el paquete JSON. import json json_data = open('Data/students.json') data = json.load(json_data) json_data.close() IMPORTAR Y EXPORTAR DATOS
  • 36.  Identificar a los valores perdidos. d[‘variable’].isnull()  Identificar a los valores no perdidos. d[‘variable’].notnull()  Cuantificar a los valores perdidos. d[‘variable’].isnull().value_counts()  Cuantificar a los valores no perdidos. d[‘variable’].notnull().value_counts()  Eliminar a los valores perdidos. d = d[‘variable’].dropna()  Eliminar a cualquier registro que tenga por lo menos un campo con valor perdido. d = d.dropna(how='any') VALORES PERDIDOS
  • 37.  Crear un data frame en base a números aleatorios. df = pd.DataFrame(np.random.randn(5, 3), index=['a0', 'a10','a20', 'a30', 'a40'], columns=['X', 'Y', 'Z'])  Crear índices adicionales al data frame. df2 = df.reindex(['a0', 'a1', 'a10', 'a11', 'a20', 'a21','a30', 'a31', 'a40', 'a41'])  Completar los valores perdidos con ceros. df2.fillna(0)  Completar los valores perdidos con el método “forward propagation”. Se va completar con el valor previo al nulo. df2.fillna(method='pad')  Completar los valores perdidos con el promedio de la variable. df2.fillna(df2.mean()) VALORES PERDIDOS
  • 38.  Importar un archivo csv y leer los 5 primeros casos. df = pd.read_csv('data/students.csv') df['AREA NAME'][0:5]  Filtrar casos específicos. df[df['GRADE LEVEL'] == 'ELEMENTARY']  Convertir a mayúsculas. df['AREA NAME'][0:5].str.upper()  Convertir a minúsculas. df['AREA NAME'][0:5].str.lower()  Cuantificar la cantidad de caracteres de cada elemento. df['AREA NAME'][0:5].str.len()  Cortar en base a espacios en blanco. df['AREA NAME'][0:5].str.split(' ')  Reemplazar df['AREA NAME'][0:5].str.replace('DISTRICT$', 'DIST') OPERACIONES CON CADENAS
  • 40.  Seleccionamos los 5 primeros registros de 2 campos. d[['AREA NAME', 'COUNTY']][0:5]  Partir los datos en dos grupos. Concatenarlos por posición. p1 = d[['AREA NAME', 'COUNTY']][0:2] p2 = d[['AREA NAME', 'COUNTY']][2:5] pd.concat([p1,p2])  Concatenar datos en base a una llave. concatenated = pd.concat([p1,p2], keys = ['p1','p2'])  Seleccionar la data agregada en base a una llave. concatenated.ix['p1'] CONCATENAR DATOS
  • 41.  Seleccionamos un subconjunto de elementos y promediamos. data = d[d['GRADE LEVEL'] == 'ELEMENTARY'] data['NO. OBESE'].mean()  La suma total. data['NO. OBESE'].sum()  Valor máximo. data['NO. OBESE'].max()  Valor mínimo. data['NO. OBESE'].min()  Desviación Estándar. data['NO. OBESE'].std()  Conteo. data = df[(d['GRADE LEVEL'] == 'ELEMENTARY') &(d['COUNTY'] == 'DELAWARE')] data['COUNTY'].count() AGREGAR DATOS
  • 42.  Creamos un data frame. grade_lookup = {'GRADE LEVEL': pd.Series(['ELEMENTARY','MIDDLE/HIGH', 'MISC']), 'LEVEL': pd.Series([1, 2, 3])} grade_lookup2 = pd.DataFrame(grade_lookup)  La tabla que usaremos como base es la de estudiantes. df[['GRADE LEVEL']][0:5]  Inner Join. d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']), on=['GRADE LEVEL'], how='inner') CRUZAR DATOS
  • 43.  Left Join. d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']), on=['GRADE LEVEL'], how='left')  Full Outer Join. d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']), on=['GRADE LEVEL'], how='outer') CRUZAR DATOS
  • 44. df['NO. OBESE'].groupby(d['GRADE LEVEL']).sum() d['NO. OBESE'].groupby(d['GRADE LEVEL']).mean() d['NO. OBESE'].groupby(d['GRADE LEVEL']).std() AGRUPAR DATOS