SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
1
Python
Mario García-Valdez
Instituto Tecnológico de TijuanaViernes 12 de Mayo
¿Otros
lenguajes?
2
¿Y ese nombre?
3
Monty Python and the Holy Grail - 1975
4
Guido van Rossum
1991
5
Desarrollo a
principio de
los Noventa
6
Enterprise
Cliente-Servidor
Escritorio
MS-Windows
SQL
Programación OO
7
¿Algún lenguaje para
desarrollar Aplicaciones
Web?
1998 - IIS Active Server Pages
2000 - AOL Server - tcl
2003 - asp.net c#
2005 - Django
2005 - Ruby on Rails
8
Redes Neuronales
Algoritmos Genéticos
Estadística
IA
9
10
11
12
13
14
x = 34 - 23 # Comentario
y = “Hello” # Otro
z = 3.45
if z == 3.45 or y == “Hello”:
x = x + 1
y = y + “ World” # Concatenación de cadenas
print x
print y
15
16
Funciones de Fábrica
17
¿Otras características?
18
Interpretado
Dinámico
Multi-paradigma
Libre
.net, Java
19
>lista = ['1','2','3']
>lista2 = ['Ana','Tom','Zoe']
>zip(lista,lista2)
[('1', 'Ana'), ('2', 'Tom'), ('3', 'Zoe')]
>map(int,lista)
[1, 2, 3]
Lectura-Evaluación-Impresión
20
21
22
Desarrollo
Hoy
23
24
25
26
Cloud
Computing
27
Aplicaciones
Intercomunidades Mayo 2016
28
Python y
Datos
Existen muchas
herramientas en el
mercado para realizar
este tipo de análisis.
Intercomunidades Mayo 2016
29
Bibliotecas
Escenciales
NumPy
Hay muchas más..
Incluye un tipo de Arreglo multi-dimensional
muy eficiente. ndarray
Funciones que se ejecutan para cada elemento
del arreglo.
Operaciones con Matrices, Algebra lineal,
estadística.
Integración con FORTRAN, C, C++
Intercomunidades Mayo 2016
30
Bibliotecas
Escenciales
pandas
Incluye un tipo de dato tipo tabla de dos
dimensiones. DataFrame.
Intercomunidades Mayo 2016
31
Bibliotecas
Escenciales
matplotlib
Hay muchas más..
Biblioteca para graficar los datos en 2D.
Intercomunidades Mayo 2016
32
Bibliotecas
Escenciales
IPython
Un shell diseñado para acelerar la exploración
interactiva de los datos. También en Web y Qt.
Intercomunidades Mayo 2016
33
Bibliotecas
Escenciales
scikit-learn
Hay muchas más..
Intercomunidades Mayo 2016
34
Distribuciones
de Python
Empaquetan muchas
bibliotecas y
herramientas.
Similar a las
distribuciones de
GNU/Linux.
Intercomunidades Mayo 2016
35
Distribuciones
de Python
Empaquetan muchas
bibliotecas y
herramientas.
Similar a las
distribuciones de
GNU/Linux.
Intercomunidades Mayo 2016
36
Distribuciones
de Python
Empaquetan muchas
bibliotecas y
herramientas.
Similar a las
distribuciones de
GNU/Linux.
DEMO
38
Ronald Fischer
Fragmento del conjunto de datos Iris ( 150 Registros)
39
Aplicaciones
Versicolor
Virginica
Setosa
40
Bajamos el Dataset de Iris
https://archive.ics.uci.edu/ml/machine-learning-databases/iris/
41
Bajamos el Dataset de Iris
42
$ ipython --pylab
In [1]: iris = open(‘iris.data')
In [2]: for renglon in iris:
...: print renglon
...:
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
5.4,3.9,1.7,0.4,Iris-setosa
1. Cargamos los datos
43
In [3]: iris = open('iris.data')
In [4]: iris_data = [renglon for renglon in iris]
In [5]: iris_data
Out[5]:
['5.1,3.5,1.4,0.2,Iris-setosan',
'4.9,3.0,1.4,0.2,Iris-setosan',
'4.7,3.2,1.3,0.2,Iris-setosan',
'4.6,3.1,1.5,0.2,Iris-setosan',
'5.0,3.6,1.4,0.2,Iris-setosan',
'6.3,2.5,5.0,1.9,Iris-virginican',
'6.5,3.0,5.2,2.0,Iris-virginican',
'6.2,3.4,5.4,2.3,Iris-virginican',
'5.9,3.0,5.1,1.8,Iris-virginican',
'n']
In [6]:
1. Cargamos los datos, Comprensión de Listas
44
In [3]: iris = open('iris.data')
In [4]: iris_data = [renglon for renglon in iris]
In [5]: iris_data
Out[5]:
['5.1,3.5,1.4,0.2,Iris-setosan',
'4.9,3.0,1.4,0.2,Iris-setosan',
'4.7,3.2,1.3,0.2,Iris-setosan',
'4.6,3.1,1.5,0.2,Iris-setosan',
'5.0,3.6,1.4,0.2,Iris-setosan',
'6.3,2.5,5.0,1.9,Iris-virginican',
'6.5,3.0,5.2,2.0,Iris-virginican',
'6.2,3.4,5.4,2.3,Iris-virginican',
'5.9,3.0,5.1,1.8,Iris-virginican',
'n']
In [6]:
1. Cargamos los datos, Comprensión de Listas
Ocupamos una
matriz, una lista de
listas
45
In [6]: iris = open('iris.data')
In [7]: iris_data = [renglon.split(',') for renglon in iris]
In [8]: iris_data
Out[8]:
[['5.1', '3.5', '1.4', '0.2', 'Iris-setosan'],
['4.9', '3.0', '1.4', '0.2', 'Iris-setosan'],
['4.7', '3.2', '1.3', '0.2', 'Iris-setosan'],
['4.6', '3.1', '1.5', '0.2', 'Iris-setosan'],
['5.0', '3.6', '1.4', '0.2', 'Iris-setosan'],
['5.4', '3.9', '1.7', '0.4', 'Iris-setosan'],
['4.6', '3.4', '1.4', '0.3', ‘Iris-setosan'],
['6.5', '3.0', '5.2', '2.0', 'Iris-virginican'],
['6.2', '3.4', '5.4', '2.3', 'Iris-virginican'],
['5.9', '3.0', '5.1', '1.8', 'Iris-virginican'],
['n']]
In [9]:
1. Cargamos los datos, Comprensión de Listas
46
In [6]: iris = open('iris.data')
In [7]: iris_data = [renglon.split(',') for renglon in iris]
In [8]: iris_data
Out[8]:
[['5.1', '3.5', '1.4', '0.2', 'Iris-setosan'],
['4.9', '3.0', '1.4', '0.2', 'Iris-setosan'],
['4.7', '3.2', '1.3', '0.2', 'Iris-setosan'],
['4.6', '3.1', '1.5', '0.2', 'Iris-setosan'],
['5.0', '3.6', '1.4', '0.2', 'Iris-setosan'],
['5.4', '3.9', '1.7', '0.4', 'Iris-setosan'],
['4.6', '3.4', '1.4', '0.3', ‘Iris-setosan'],
['6.5', '3.0', '5.2', '2.0', 'Iris-virginican'],
['6.2', '3.4', '5.4', '2.3', 'Iris-virginican'],
['5.9', '3.0', '5.1', '1.8', 'Iris-virginican'],
['n']]
In [9]:
1. Cargamos los datos, Comprensión de Listas
Ocupamos la
matriz, sin el tipo
de flor.
47
In [9]: iris = open('iris.data')
In [10]: iris_data = [renglon.split(',')[:4] for renglon in iris]
In [11]: iris_data
Out[11]:
[['5.1', '3.5', '1.4', '0.2'],
['4.9', '3.0', '1.4', '0.2'],
['4.7', '3.2', '1.3', '0.2'],
['4.6', '3.1', '1.5', '0.2'],
['5.0', '3.6', '1.4', '0.2'],
['5.4', '3.9', '1.7', ‘0.4'],
['6.3', '2.5', '5.0', '1.9'],
['6.5', '3.0', '5.2', '2.0'],
['6.2', '3.4', '5.4', '2.3'],
['5.9', '3.0', '5.1', '1.8'],
['n']]
In [12]:
1. Cargamos los datos, Comprensión de Listas
Ocupamos que la
matriz sea de
flotantes y eliminar
el último registro.
48
In [12]: iris = open('iris.data')
In [13]: iris_data = [map(float, renglon.split(',')[:4]) for renglon in iris
if len(renglon) > 4 ]
In [14]: iris_data
Out[14]:
[[5.1, 3.5, 1.4, 0.2],
[4.9, 3.0, 1.4, 0.2],
[4.7, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5.0, 3.6, 1.4, 0.2],
[6.7, 3.0, 5.2, 2.3],
[6.3, 2.5, 5.0, 1.9],
[6.5, 3.0, 5.2, 2.0],
[6.2, 3.4, 5.4, 2.3],
[5.9, 3.0, 5.1, 1.8]]
In [15]:
2. Tipo Flotante, Comprensión de Listas
Utilicemos NumPy
para manejar mejor
la matriz.
49
In [21]: iris_array = array(iris_data)
In [22]: iris_array[:50,1]
Out[22]:
array([ 3.5, 3. , 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7,
3.4, 3. , 3. , 4. , 4.4, 3.9, 3.5, 3.8, 3.8, 3.4, 3.7,
3.6, 3.3, 3.4, 3. , 3.4, 3.5, 3.4, 3.2, 3.1, 3.4, 4.1,
4.2, 3.1, 3.2, 3.5, 3.1, 3. , 3.4, 3.5, 2.3, 3.2, 3.5,
3.8, 3. , 3.8, 3.2, 3.7, 3.3])
2. Tipo Flotante, NumPy
50
In [23]: iris_array
Out[23]:
array([[ 5.1, 3.5, 1.4, 0.2],
[ 4.9, 3. , 1.4, 0.2],
[ 4.7, 3.2, 1.3, 0.2],
[ 4.6, 3.1, 1.5, 0.2],
[ 5. , 3.6, 1.4, 0.2],
[ 5.4, 3.9, 1.7, 0.4],
[ 4.9, 3.1, 1.5, 0.1],
[ 5.4, 3.7, 1.5, 0.2],
[ 6.7, 3.3, 5.7, 2.5],
[ 6.7, 3. , 5.2, 2.3],
[ 6.3, 2.5, 5. , 1.9],
[ 6.5, 3. , 5.2, 2. ],
[ 6.2, 3.4, 5.4, 2.3],
[ 5.9, 3. , 5.1, 1.8]])
In [24]:
2. Tipo Flotante, NumPy
iris_array[<renglones>, <columna>]
51
In [23]: iris_array
Out[23]:
array([[ 5.1, 3.5, 1.4, 0.2],
[ 4.9, 3. , 1.4, 0.2],
[ 4.7, 3.2, 1.3, 0.2],
[ 4.6, 3.1, 1.5, 0.2],
[ 5. , 3.6, 1.4, 0.2],
[ 5.4, 3.9, 1.7, 0.4],
[ 4.9, 3.1, 1.5, 0.1],
[ 5.4, 3.7, 1.5, 0.2],
[ 6.7, 3.3, 5.7, 2.5],
[ 6.7, 3. , 5.2, 2.3],
[ 6.3, 2.5, 5. , 1.9],
[ 6.5, 3. , 5.2, 2. ],
[ 6.2, 3.4, 5.4, 2.3],
[ 5.9, 3. , 5.1, 1.8]])
In [24]:
2. Tipo Flotante, NumPy
iris_array[0:5, 1:3]
52
In [23]: iris_array
Out[23]:
array([[ 5.1, 3.5, 1.4, 0.2],
[ 4.9, 3. , 1.4, 0.2],
[ 4.7, 3.2, 1.3, 0.2],
[ 4.6, 3.1, 1.5, 0.2],
[ 5. , 3.6, 1.4, 0.2],
[ 5.4, 3.9, 1.7, 0.4],
[ 4.9, 3.1, 1.5, 0.1],
[ 5.4, 3.7, 1.5, 0.2],
[ 6.7, 3.3, 5.7, 2.5],
[ 6.7, 3. , 5.2, 2.3],
[ 6.3, 2.5, 5. , 1.9],
[ 6.5, 3. , 5.2, 2. ],
[ 6.2, 3.4, 5.4, 2.3],
[ 5.9, 3. , 5.1, 1.8]])
In [24]:
3. matplotlib
Vamos a graficar
las dos variables.
53
In [24]: x = iris_array[0:50,0]
In [25]: y = iris_array[0:50,1]
In [26]: plot(x, y, 'b.')
Out[26]: [<matplotlib.lines.Line2D
at 0x10e780d10>]
3. matplotlib
54
In [24]: x = iris_array[0:50,0]
In [25]: y = iris_array[0:50,1]
In [26]: plot(x, y, 'b.')
Out[26]: [<matplotlib.lines.Line2D
at 0x10e780d10>]
3. matplotlib
55
In [30]: plot(iris_array[51:100,0], iris_array[51:100,1], 'r.')
Out[30]: [<matplotlib.lines.Line2D at 0x11644bcd0>]
3. matplotlib
56
In [30]: plot(iris_array[51:100,0], iris_array[51:100,1], 'r.')
Out[30]: [<matplotlib.lines.Line2D at 0x11644bcd0>]
3. matplotlib
57
In [31]: plot(iris_array[101:,0], iris_array[101:,1], 'g^')
3. matplotlib
58
59
3. pandas
In [32]: import pandas as pd
In [33]: iris_df = pd.read_csv(‘iris.data’)
In [34]: iris_df[:4]
Out[34]:
5.1 3.5 1.4 0.2 Iris-setosa
0 4.9 3.0 1.4 0.2 Iris-setosa
1 4.7 3.2 1.3 0.2 Iris-setosa
2 4.6 3.1 1.5 0.2 Iris-setosa
3 5.0 3.6 1.4 0.2 Iris-setosa
In [35]:
60
3. pandas
In [39]: iris_df = pd.read_csv('iris.data',names=['sl','sw','pl','pw','type'])
In [40]: iris_df[:4]
Out[40]:
sl sw pl pw type
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
61
3. pandas
In [43]: iris_df['sl']
Out[43]:
0 5.1
1 4.9
2 4.7
3 4.6
4 5.0
5 5.4
6 4.6
7 5.0
8 4.4
9 4.9
10 5.4
11 4.8
147 6.5
148 6.2
149 5.9
Name: sl, dtype: float64
In [44]:
62
3. pandas
In [46]: iris_df[['sl','sw']]
Out[46]:
sl sw
0 5.1 3.5
1 4.9 3.0
2 4.7 3.2
3 4.6 3.1
4 5.0 3.6
5 5.4 3.9
6 4.6 3.4
7 5.0 3.4
8 4.4 2.9
9 4.9 3.1
10 5.4 3.7
Vamos a graficar
las dos variables.
63
3. pandas
In [47]: iris_df[['sl','sw']].plot()
Out[47]:
<matplotlib.axes._subplots.AxesSubplot at
0x1138ded10>
In [48]:
64
3. pandas
In [47]: iris_df[['sl','sw']].plot()
Out[47]:
<matplotlib.axes._subplots.AxesSubplot at
0x1138ded10>
In [48]:
65
3. pandas
In [49]: iris_df[['sl','sw']].plot(x='sl',y='sw', kind='scatter')
Out[49]: <matplotlib.axes._subplots.AxesSubplot at 0x11e36ca90>
66
3. pandas
In [56]: ax = iris_df[['sl','sw']][:50].plot(kind='scatter',
x='sl', y='sw',color='DarkBlue', label='Iris Setosa’);
In [57]: iris_df[['sl','sw']][50:100].plot(kind='scatter',
x='sl', y='sw',color='DarkGreen', label='Iris
Versicolour',ax=ax);
In [58]: iris_df[['sl','sw']][50:100].plot(kind='scatter',
x='sl', y='sw',color='Green', label='Iris Versicolour',ax=ax);
In [59]: iris_df[['sl','sw']][50:100].plot(kind='scatter',
x='sl', y='sw',color='Yellow', label='Iris
Versicolour',ax=ax);
67
3. pandas
Intercomunidades Mayo 2016
68
Libros
Recomendados
Intercomunidades Mayo 2016
69
¡Sigamos en
Contacto!
Mario García Valdez
Ins5tuto Tecnológico de Tijuana
664-123-7806
github.com/mariosky
mario@tectijuana.edu.mx
@mariogarciav
mgv.mx (próximamente)
/mariogarciaface
t
m
r
v
q
70Haskell Logo
Thought up by Darrin Thompson and produced by Jeff Wheeler - Thompson-Wheeler logo on the haskell wiki
Javascript
Rhino - Lisa Williams CC BY 2.0
PERL - Men and camel
No known copyright restrictions
TURBO C++
https://upload.wikimedia.org/wikipedia/commons/1/16/Turbo_CPP_Compiler.jpg
CLOJURE
https://commons.wikimedia.org/wiki/File:Clojure-icon.png
OCTAVE LOGO
https://commons.wikimedia.org/wiki/File:Gnu-octave.png
Julia
https://en.wikipedia.org/wiki/Julia_(programming_language)#/media/File:Julia_prog_language.svg
C#
https://commons.wikimedia.org/wiki/File:Music_C_sharp.svg
ElePHPant
https://www.flickr.com/photos/atomictaco/23708710306
Rust
https://pixabay.com/en/bike-cycle-gear-rust-633208/
Node
https://pixabay.com/en/node-js-logo-nodejs-javascript-736399/

Más contenido relacionado

Similar a Python SDK Colima

Similar a Python SDK Colima (18)

Sistema de numeracion
Sistema de numeracionSistema de numeracion
Sistema de numeracion
 
Dynamics saturday madrid 2018 - Fran Gil David Hurtado
Dynamics saturday madrid 2018 - Fran Gil David Hurtado Dynamics saturday madrid 2018 - Fran Gil David Hurtado
Dynamics saturday madrid 2018 - Fran Gil David Hurtado
 
⭐⭐⭐⭐⭐ SOLUCIÓN EXAMEN SISTEMAS DIGITALES 2, 2do PARCIAL (2018 1er Término)
⭐⭐⭐⭐⭐ SOLUCIÓN EXAMEN SISTEMAS DIGITALES 2, 2do PARCIAL (2018 1er Término)⭐⭐⭐⭐⭐ SOLUCIÓN EXAMEN SISTEMAS DIGITALES 2, 2do PARCIAL (2018 1er Término)
⭐⭐⭐⭐⭐ SOLUCIÓN EXAMEN SISTEMAS DIGITALES 2, 2do PARCIAL (2018 1er Término)
 
9_Arreglos.pptx
9_Arreglos.pptx9_Arreglos.pptx
9_Arreglos.pptx
 
Sucesiones numéricas
Sucesiones numéricasSucesiones numéricas
Sucesiones numéricas
 
RESPUESTAS DECIMO F PRIMA
RESPUESTAS DECIMO F PRIMARESPUESTAS DECIMO F PRIMA
RESPUESTAS DECIMO F PRIMA
 
Conjuntos de datos
Conjuntos de datosConjuntos de datos
Conjuntos de datos
 
Malhas
MalhasMalhas
Malhas
 
Guia de refuerzo 7 basico
Guia de refuerzo 7 basicoGuia de refuerzo 7 basico
Guia de refuerzo 7 basico
 
MODELO PASO DE MENSAJES
MODELO PASO DE MENSAJESMODELO PASO DE MENSAJES
MODELO PASO DE MENSAJES
 
Metodos de conteo estadistica.
Metodos de conteo estadistica.Metodos de conteo estadistica.
Metodos de conteo estadistica.
 
Arrays bidimensionales
Arrays bidimensionalesArrays bidimensionales
Arrays bidimensionales
 
Lección 1. Tipos de datos en R
Lección 1. Tipos de datos  en RLección 1. Tipos de datos  en R
Lección 1. Tipos de datos en R
 
Sistema de numeración
Sistema de numeraciónSistema de numeración
Sistema de numeración
 
Cuadernillo cálculo
Cuadernillo cálculoCuadernillo cálculo
Cuadernillo cálculo
 
Sistemas de numeracion
Sistemas de numeracionSistemas de numeracion
Sistemas de numeracion
 
G02 Matemáticas Undécimo
G02 Matemáticas UndécimoG02 Matemáticas Undécimo
G02 Matemáticas Undécimo
 
Club de matematica
Club de matematicaClub de matematica
Club de matematica
 

Último

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 

Último (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Python SDK Colima

  • 1. 1 Python Mario García-Valdez Instituto Tecnológico de TijuanaViernes 12 de Mayo ¿Otros lenguajes?
  • 3. 3 Monty Python and the Holy Grail - 1975
  • 7. 7 ¿Algún lenguaje para desarrollar Aplicaciones Web? 1998 - IIS Active Server Pages 2000 - AOL Server - tcl 2003 - asp.net c# 2005 - Django 2005 - Ruby on Rails
  • 9. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. 13
  • 14. 14 x = 34 - 23 # Comentario y = “Hello” # Otro z = 3.45 if z == 3.45 or y == “Hello”: x = x + 1 y = y + “ World” # Concatenación de cadenas print x print y
  • 15. 15
  • 19. 19 >lista = ['1','2','3'] >lista2 = ['Ana','Tom','Zoe'] >zip(lista,lista2) [('1', 'Ana'), ('2', 'Tom'), ('3', 'Zoe')] >map(int,lista) [1, 2, 3] Lectura-Evaluación-Impresión
  • 20. 20
  • 21. 21
  • 23. 23
  • 24. 24
  • 25. 25
  • 28. Intercomunidades Mayo 2016 28 Python y Datos Existen muchas herramientas en el mercado para realizar este tipo de análisis.
  • 29. Intercomunidades Mayo 2016 29 Bibliotecas Escenciales NumPy Hay muchas más.. Incluye un tipo de Arreglo multi-dimensional muy eficiente. ndarray Funciones que se ejecutan para cada elemento del arreglo. Operaciones con Matrices, Algebra lineal, estadística. Integración con FORTRAN, C, C++
  • 30. Intercomunidades Mayo 2016 30 Bibliotecas Escenciales pandas Incluye un tipo de dato tipo tabla de dos dimensiones. DataFrame.
  • 31. Intercomunidades Mayo 2016 31 Bibliotecas Escenciales matplotlib Hay muchas más.. Biblioteca para graficar los datos en 2D.
  • 32. Intercomunidades Mayo 2016 32 Bibliotecas Escenciales IPython Un shell diseñado para acelerar la exploración interactiva de los datos. También en Web y Qt.
  • 34. Intercomunidades Mayo 2016 34 Distribuciones de Python Empaquetan muchas bibliotecas y herramientas. Similar a las distribuciones de GNU/Linux.
  • 35. Intercomunidades Mayo 2016 35 Distribuciones de Python Empaquetan muchas bibliotecas y herramientas. Similar a las distribuciones de GNU/Linux.
  • 36. Intercomunidades Mayo 2016 36 Distribuciones de Python Empaquetan muchas bibliotecas y herramientas. Similar a las distribuciones de GNU/Linux.
  • 37. DEMO
  • 38. 38 Ronald Fischer Fragmento del conjunto de datos Iris ( 150 Registros)
  • 40. 40 Bajamos el Dataset de Iris https://archive.ics.uci.edu/ml/machine-learning-databases/iris/
  • 42. 42 $ ipython --pylab In [1]: iris = open(‘iris.data') In [2]: for renglon in iris: ...: print renglon ...: 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3.0,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 4.6,3.1,1.5,0.2,Iris-setosa 5.0,3.6,1.4,0.2,Iris-setosa 5.4,3.9,1.7,0.4,Iris-setosa 1. Cargamos los datos
  • 43. 43 In [3]: iris = open('iris.data') In [4]: iris_data = [renglon for renglon in iris] In [5]: iris_data Out[5]: ['5.1,3.5,1.4,0.2,Iris-setosan', '4.9,3.0,1.4,0.2,Iris-setosan', '4.7,3.2,1.3,0.2,Iris-setosan', '4.6,3.1,1.5,0.2,Iris-setosan', '5.0,3.6,1.4,0.2,Iris-setosan', '6.3,2.5,5.0,1.9,Iris-virginican', '6.5,3.0,5.2,2.0,Iris-virginican', '6.2,3.4,5.4,2.3,Iris-virginican', '5.9,3.0,5.1,1.8,Iris-virginican', 'n'] In [6]: 1. Cargamos los datos, Comprensión de Listas
  • 44. 44 In [3]: iris = open('iris.data') In [4]: iris_data = [renglon for renglon in iris] In [5]: iris_data Out[5]: ['5.1,3.5,1.4,0.2,Iris-setosan', '4.9,3.0,1.4,0.2,Iris-setosan', '4.7,3.2,1.3,0.2,Iris-setosan', '4.6,3.1,1.5,0.2,Iris-setosan', '5.0,3.6,1.4,0.2,Iris-setosan', '6.3,2.5,5.0,1.9,Iris-virginican', '6.5,3.0,5.2,2.0,Iris-virginican', '6.2,3.4,5.4,2.3,Iris-virginican', '5.9,3.0,5.1,1.8,Iris-virginican', 'n'] In [6]: 1. Cargamos los datos, Comprensión de Listas Ocupamos una matriz, una lista de listas
  • 45. 45 In [6]: iris = open('iris.data') In [7]: iris_data = [renglon.split(',') for renglon in iris] In [8]: iris_data Out[8]: [['5.1', '3.5', '1.4', '0.2', 'Iris-setosan'], ['4.9', '3.0', '1.4', '0.2', 'Iris-setosan'], ['4.7', '3.2', '1.3', '0.2', 'Iris-setosan'], ['4.6', '3.1', '1.5', '0.2', 'Iris-setosan'], ['5.0', '3.6', '1.4', '0.2', 'Iris-setosan'], ['5.4', '3.9', '1.7', '0.4', 'Iris-setosan'], ['4.6', '3.4', '1.4', '0.3', ‘Iris-setosan'], ['6.5', '3.0', '5.2', '2.0', 'Iris-virginican'], ['6.2', '3.4', '5.4', '2.3', 'Iris-virginican'], ['5.9', '3.0', '5.1', '1.8', 'Iris-virginican'], ['n']] In [9]: 1. Cargamos los datos, Comprensión de Listas
  • 46. 46 In [6]: iris = open('iris.data') In [7]: iris_data = [renglon.split(',') for renglon in iris] In [8]: iris_data Out[8]: [['5.1', '3.5', '1.4', '0.2', 'Iris-setosan'], ['4.9', '3.0', '1.4', '0.2', 'Iris-setosan'], ['4.7', '3.2', '1.3', '0.2', 'Iris-setosan'], ['4.6', '3.1', '1.5', '0.2', 'Iris-setosan'], ['5.0', '3.6', '1.4', '0.2', 'Iris-setosan'], ['5.4', '3.9', '1.7', '0.4', 'Iris-setosan'], ['4.6', '3.4', '1.4', '0.3', ‘Iris-setosan'], ['6.5', '3.0', '5.2', '2.0', 'Iris-virginican'], ['6.2', '3.4', '5.4', '2.3', 'Iris-virginican'], ['5.9', '3.0', '5.1', '1.8', 'Iris-virginican'], ['n']] In [9]: 1. Cargamos los datos, Comprensión de Listas Ocupamos la matriz, sin el tipo de flor.
  • 47. 47 In [9]: iris = open('iris.data') In [10]: iris_data = [renglon.split(',')[:4] for renglon in iris] In [11]: iris_data Out[11]: [['5.1', '3.5', '1.4', '0.2'], ['4.9', '3.0', '1.4', '0.2'], ['4.7', '3.2', '1.3', '0.2'], ['4.6', '3.1', '1.5', '0.2'], ['5.0', '3.6', '1.4', '0.2'], ['5.4', '3.9', '1.7', ‘0.4'], ['6.3', '2.5', '5.0', '1.9'], ['6.5', '3.0', '5.2', '2.0'], ['6.2', '3.4', '5.4', '2.3'], ['5.9', '3.0', '5.1', '1.8'], ['n']] In [12]: 1. Cargamos los datos, Comprensión de Listas Ocupamos que la matriz sea de flotantes y eliminar el último registro.
  • 48. 48 In [12]: iris = open('iris.data') In [13]: iris_data = [map(float, renglon.split(',')[:4]) for renglon in iris if len(renglon) > 4 ] In [14]: iris_data Out[14]: [[5.1, 3.5, 1.4, 0.2], [4.9, 3.0, 1.4, 0.2], [4.7, 3.2, 1.3, 0.2], [4.6, 3.1, 1.5, 0.2], [5.0, 3.6, 1.4, 0.2], [6.7, 3.0, 5.2, 2.3], [6.3, 2.5, 5.0, 1.9], [6.5, 3.0, 5.2, 2.0], [6.2, 3.4, 5.4, 2.3], [5.9, 3.0, 5.1, 1.8]] In [15]: 2. Tipo Flotante, Comprensión de Listas Utilicemos NumPy para manejar mejor la matriz.
  • 49. 49 In [21]: iris_array = array(iris_data) In [22]: iris_array[:50,1] Out[22]: array([ 3.5, 3. , 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3. , 3. , 4. , 4.4, 3.9, 3.5, 3.8, 3.8, 3.4, 3.7, 3.6, 3.3, 3.4, 3. , 3.4, 3.5, 3.4, 3.2, 3.1, 3.4, 4.1, 4.2, 3.1, 3.2, 3.5, 3.1, 3. , 3.4, 3.5, 2.3, 3.2, 3.5, 3.8, 3. , 3.8, 3.2, 3.7, 3.3]) 2. Tipo Flotante, NumPy
  • 50. 50 In [23]: iris_array Out[23]: array([[ 5.1, 3.5, 1.4, 0.2], [ 4.9, 3. , 1.4, 0.2], [ 4.7, 3.2, 1.3, 0.2], [ 4.6, 3.1, 1.5, 0.2], [ 5. , 3.6, 1.4, 0.2], [ 5.4, 3.9, 1.7, 0.4], [ 4.9, 3.1, 1.5, 0.1], [ 5.4, 3.7, 1.5, 0.2], [ 6.7, 3.3, 5.7, 2.5], [ 6.7, 3. , 5.2, 2.3], [ 6.3, 2.5, 5. , 1.9], [ 6.5, 3. , 5.2, 2. ], [ 6.2, 3.4, 5.4, 2.3], [ 5.9, 3. , 5.1, 1.8]]) In [24]: 2. Tipo Flotante, NumPy iris_array[<renglones>, <columna>]
  • 51. 51 In [23]: iris_array Out[23]: array([[ 5.1, 3.5, 1.4, 0.2], [ 4.9, 3. , 1.4, 0.2], [ 4.7, 3.2, 1.3, 0.2], [ 4.6, 3.1, 1.5, 0.2], [ 5. , 3.6, 1.4, 0.2], [ 5.4, 3.9, 1.7, 0.4], [ 4.9, 3.1, 1.5, 0.1], [ 5.4, 3.7, 1.5, 0.2], [ 6.7, 3.3, 5.7, 2.5], [ 6.7, 3. , 5.2, 2.3], [ 6.3, 2.5, 5. , 1.9], [ 6.5, 3. , 5.2, 2. ], [ 6.2, 3.4, 5.4, 2.3], [ 5.9, 3. , 5.1, 1.8]]) In [24]: 2. Tipo Flotante, NumPy iris_array[0:5, 1:3]
  • 52. 52 In [23]: iris_array Out[23]: array([[ 5.1, 3.5, 1.4, 0.2], [ 4.9, 3. , 1.4, 0.2], [ 4.7, 3.2, 1.3, 0.2], [ 4.6, 3.1, 1.5, 0.2], [ 5. , 3.6, 1.4, 0.2], [ 5.4, 3.9, 1.7, 0.4], [ 4.9, 3.1, 1.5, 0.1], [ 5.4, 3.7, 1.5, 0.2], [ 6.7, 3.3, 5.7, 2.5], [ 6.7, 3. , 5.2, 2.3], [ 6.3, 2.5, 5. , 1.9], [ 6.5, 3. , 5.2, 2. ], [ 6.2, 3.4, 5.4, 2.3], [ 5.9, 3. , 5.1, 1.8]]) In [24]: 3. matplotlib Vamos a graficar las dos variables.
  • 53. 53 In [24]: x = iris_array[0:50,0] In [25]: y = iris_array[0:50,1] In [26]: plot(x, y, 'b.') Out[26]: [<matplotlib.lines.Line2D at 0x10e780d10>] 3. matplotlib
  • 54. 54 In [24]: x = iris_array[0:50,0] In [25]: y = iris_array[0:50,1] In [26]: plot(x, y, 'b.') Out[26]: [<matplotlib.lines.Line2D at 0x10e780d10>] 3. matplotlib
  • 55. 55 In [30]: plot(iris_array[51:100,0], iris_array[51:100,1], 'r.') Out[30]: [<matplotlib.lines.Line2D at 0x11644bcd0>] 3. matplotlib
  • 56. 56 In [30]: plot(iris_array[51:100,0], iris_array[51:100,1], 'r.') Out[30]: [<matplotlib.lines.Line2D at 0x11644bcd0>] 3. matplotlib
  • 57. 57 In [31]: plot(iris_array[101:,0], iris_array[101:,1], 'g^') 3. matplotlib
  • 58. 58
  • 59. 59 3. pandas In [32]: import pandas as pd In [33]: iris_df = pd.read_csv(‘iris.data’) In [34]: iris_df[:4] Out[34]: 5.1 3.5 1.4 0.2 Iris-setosa 0 4.9 3.0 1.4 0.2 Iris-setosa 1 4.7 3.2 1.3 0.2 Iris-setosa 2 4.6 3.1 1.5 0.2 Iris-setosa 3 5.0 3.6 1.4 0.2 Iris-setosa In [35]:
  • 60. 60 3. pandas In [39]: iris_df = pd.read_csv('iris.data',names=['sl','sw','pl','pw','type']) In [40]: iris_df[:4] Out[40]: sl sw pl pw type 0 5.1 3.5 1.4 0.2 Iris-setosa 1 4.9 3.0 1.4 0.2 Iris-setosa 2 4.7 3.2 1.3 0.2 Iris-setosa 3 4.6 3.1 1.5 0.2 Iris-setosa
  • 61. 61 3. pandas In [43]: iris_df['sl'] Out[43]: 0 5.1 1 4.9 2 4.7 3 4.6 4 5.0 5 5.4 6 4.6 7 5.0 8 4.4 9 4.9 10 5.4 11 4.8 147 6.5 148 6.2 149 5.9 Name: sl, dtype: float64 In [44]:
  • 62. 62 3. pandas In [46]: iris_df[['sl','sw']] Out[46]: sl sw 0 5.1 3.5 1 4.9 3.0 2 4.7 3.2 3 4.6 3.1 4 5.0 3.6 5 5.4 3.9 6 4.6 3.4 7 5.0 3.4 8 4.4 2.9 9 4.9 3.1 10 5.4 3.7 Vamos a graficar las dos variables.
  • 63. 63 3. pandas In [47]: iris_df[['sl','sw']].plot() Out[47]: <matplotlib.axes._subplots.AxesSubplot at 0x1138ded10> In [48]:
  • 64. 64 3. pandas In [47]: iris_df[['sl','sw']].plot() Out[47]: <matplotlib.axes._subplots.AxesSubplot at 0x1138ded10> In [48]:
  • 65. 65 3. pandas In [49]: iris_df[['sl','sw']].plot(x='sl',y='sw', kind='scatter') Out[49]: <matplotlib.axes._subplots.AxesSubplot at 0x11e36ca90>
  • 66. 66 3. pandas In [56]: ax = iris_df[['sl','sw']][:50].plot(kind='scatter', x='sl', y='sw',color='DarkBlue', label='Iris Setosa’); In [57]: iris_df[['sl','sw']][50:100].plot(kind='scatter', x='sl', y='sw',color='DarkGreen', label='Iris Versicolour',ax=ax); In [58]: iris_df[['sl','sw']][50:100].plot(kind='scatter', x='sl', y='sw',color='Green', label='Iris Versicolour',ax=ax); In [59]: iris_df[['sl','sw']][50:100].plot(kind='scatter', x='sl', y='sw',color='Yellow', label='Iris Versicolour',ax=ax);
  • 69. Intercomunidades Mayo 2016 69 ¡Sigamos en Contacto! Mario García Valdez Ins5tuto Tecnológico de Tijuana 664-123-7806 github.com/mariosky mario@tectijuana.edu.mx @mariogarciav mgv.mx (próximamente) /mariogarciaface t m r v q
  • 70. 70Haskell Logo Thought up by Darrin Thompson and produced by Jeff Wheeler - Thompson-Wheeler logo on the haskell wiki Javascript Rhino - Lisa Williams CC BY 2.0 PERL - Men and camel No known copyright restrictions TURBO C++ https://upload.wikimedia.org/wikipedia/commons/1/16/Turbo_CPP_Compiler.jpg CLOJURE https://commons.wikimedia.org/wiki/File:Clojure-icon.png OCTAVE LOGO https://commons.wikimedia.org/wiki/File:Gnu-octave.png Julia https://en.wikipedia.org/wiki/Julia_(programming_language)#/media/File:Julia_prog_language.svg C# https://commons.wikimedia.org/wiki/File:Music_C_sharp.svg ElePHPant https://www.flickr.com/photos/atomictaco/23708710306 Rust https://pixabay.com/en/bike-cycle-gear-rust-633208/ Node https://pixabay.com/en/node-js-logo-nodejs-javascript-736399/