Python SDK Colima

1,257 views 43 slides May 12, 2017
Slide 1
Slide 1 of 70
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70

About This Presentation

Presentación en SDK Colima


Slide Content

1
Python
Mario García-Valdez
Instituto Tecnológico de Tijuana
Viernes 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
4.6,3.4,1.4,0.3,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-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',
'6.3,2.5,5.0,1.9,Iris-virginica',
'6.5,3.0,5.2,2.0,Iris-virginica',
'6.2,3.4,5.4,2.3,Iris-virginica',
'5.9,3.0,5.1,1.8,Iris-virginica',
'']
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-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',
'6.3,2.5,5.0,1.9,Iris-virginica',
'6.5,3.0,5.2,2.0,Iris-virginica',
'6.2,3.4,5.4,2.3,Iris-virginica',
'5.9,3.0,5.1,1.8,Iris-virginica',
'']
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-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'],
['4.6', '3.4', '1.4', '0.3', ‘Iris-setosa'],
['6.5', '3.0', '5.2', '2.0', 'Iris-virginica'],
['6.2', '3.4', '5.4', '2.3', 'Iris-virginica'],
['5.9', '3.0', '5.1', '1.8', 'Iris-virginica'],
['']]
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-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'],
['4.6', '3.4', '1.4', '0.3', ‘Iris-setosa'],
['6.5', '3.0', '5.2', '2.0', 'Iris-virginica'],
['6.2', '3.4', '5.4', '2.3', 'Iris-virginica'],
['5.9', '3.0', '5.1', '1.8', 'Iris-virginica'],
['']]
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'],
['']]
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
[email protected]
@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/