Python Con Aplicaciones A Las Matemáticas, Ingeniería
PYTHON CON APLICACIONES A LAS MATEMÁTICAS, INGENIERÍA Y FINANZAS
Autores: BÁEZ LÓPEZ, David; CERVANTES VILLAGÓMEZ, Ofelia
ARÍZAGA SILVA, Juan Antonio ; CASTILLO JUÁREZ, Esteban
Páginas: 452
ISBN: 978-607-622-673-5
Editorial: Alfaomega
.
Python es un software libre que tiene una gran cantidad de módulos para realizar el cómputo científico aplicado en múltiples áreas del conocimiento científico, léase medicina, ingeniería, ciencias, finanzas, economía, entre muchas otras. Ocupa el cuarto lugar de la lista de lenguajes de programación más usados por programadores, y el primer lugar entre los lenguajes de programación de alto nivel. Además, el IEEE lo ha posicionado en tercer lugar entre los lenguajes de programación. Los temas del presente documento son parte del curso introductorio de programación para estudiantes de ciencias, ingeniería y animación digital a nivel licenciatura de la Universidad de las Américas Puebla.
El presente texto tiene como objetivo desarrollar desde los primeros capítulos la descripción, análisis y desarrollo de los algoritmos que posteriormente se implementan en Python. De esta manera, el usuario va de una descripción del problema en español, pero con una estructura definida, a una implementación formal en un lenguaje de programación.
VENTAJAS
• Cada capítulo cuenta con una serie de ejercicios que el lector puede resolver obteniendo así más experiencia en la solución de problemas implementando sus algoritmos en lenguaje Python.
• En todos los capítulos se encuentran expuestos los objetivos perseguidos a largo de éste, así como una introducción y una conclusión.
• El presente material consiste en una versión de los temas que los autores han impartido durante los últimos dos años.
CONOZCA
• El concepto de algoritmo y su descripción por medio de un lenguaje llamado pseudocódigo.
• Cómo opera cada uno de los distintos tipos de “condiciones” en Python.
• En qué consisten los subalgoritmos y cómo implementarlos en Python.
APRENDA
• A utilizar los ciclos “Mientras” y “Para” en el diseño de los algoritmos.
• A crear los arreglos “vectores” y “matrices” para estructurar una gran cantidad de datos.
• A programar utilizando el paradigma de la programación orientada a objetos (PPO) en Python.
DESARROLLE SUS HABILIDADES PARA
• Efectuar funciones con las estructuras de datos de Python.
• Realizar operaciones sobre “matrices” en Python.
• Crear, escribir y almacenar datos en un archivo.
A QUIÉN VA DIRIGIDO
El presente libro está dirigido a estudiantes de Ciencias, Ingeniería y Animación digital de nivel licenciatura, así como a profesionales e interesados en aprender a manejar el lenguaje Python en matemáticas y finanzas.
.
Contenido
Prólogo XVII
1. Introducción 1
1.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Evolución de la computadora . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Arquitectura de una computadora . . . . . . . . . . . . . . . . . . . . 6
1.3.1. Instrucciones y datos de una computadora . . . . . . . . . . . . 7
1.3.2. Sistemas numéricos decimal y binario . . . . . . . . . . . . . . 7
1.3.3. Otros sistemas numéricos . . . . . . . . . . . . . . . . . . . . . 11
1.3.4. Estructura de lamemoria . . . . . . . . . . . . . . . . . . . . . 12
1.3.5. Lenguajes de una computadora . . . . . . . . . . . . . . . . . . 13
1.4. El lenguaje Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.1. Descarga de Python . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.2. La interfase de Python . . . . . . . . . . . . . . . . . . . . . . . 15
1.5. Organización del libro . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2. Fundamentos de algoritmos y de Python 17
2.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2. ¿Qué es un algoritmo? . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3. Pseudocódigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4.1. Tipos de variables . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4.2. Asignación de valores a variables . . . . . . . . . . . . . . . . . 23
2.4.3. Inicialización de variables . . . . . . . . . . . . . . . . . . . . . 23
2.4.4. Operaciones básicas . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.5. Operaciones con variables enteras . . . . . . . . . . . . . . . . 25
2.4.6. Operaciones con enteros y reales . . . . . . . . . . . . . . . . . 25
Python • Alfaomega
Plataforma de contenidos interactivos XIX
Ofelia Cervantes, David Báez, Antonio Arízaga, Esteban Castillo
2.5. Partes de un algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6. Algoritmos en pseudocódigo . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7. Lenguaje Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.7.1. El ambiente de Python. . . . . . . . . . . . . . . . . . . . . . . 30
2.8. Estructura de un algoritmo en Python . . . . . . . . . . . . . . . . . . 32
2.9. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.10.Bibliotecas y encabezados . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.11.Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.11.1. Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . 35
2.11.2. Operadores relacionales . . . . . . . . . . . . . . . . . . . . . . 36
2.11.3. Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.11.4. Otras operaciones booleanas . . . . . . . . . . . . . . . . . . . . 38
2.11.5. Operadores de asignación . . . . . . . . . . . . . . . . . . . . . 39
2.12.Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.13.Entrada y salida de datos en Python . . . . . . . . . . . . . . . . . . . 40
2.13.1. Despliegue de datos . . . . . . . . . . . . . . . . . . . . . . . . 40
2.13.2. Entrada de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.13.3. Tabulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.14. Algoritmos sencillos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.15.Variables alfanuméricas en Python . . . . . . . . . . . . . . . . . . . . 48
2.15.1. Operaciones con cadenas . . . . . . . . . . . . . . . . . . . . . . 49
2.15.2. Concatenación o suma de cadenas . . . . . . . . . . . . . . . . 50
2.15.3. Multiplicación de cadenas . . . . . . . . . . . . . . . . . . . . . 50
2.16.Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.16.1. Diccionarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.17. Instrucciones de Python del Capítulo 2 . . . . . . . . . . . . . . . . . . 54
2.18.Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.19.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3. Condiciones 59
3.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.2. Condiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.1. La condición en Python . . . . . . . . . . . . . . . . . . . . . . 63
3.2.2. Ejercicios de condiciones simples . . . . . . . . . . . . . . . . . 68
3.3. La condición Si - Si_no . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.3.1. Condición if - else . . . . . . . . . . . . . . . . . . . . . . . 73
X Contenido
Alfaomega Python • Ofelia Cervantes, David Báez, Antonio Arízaga, Esteban Castillo
3.3.2. Ejemplos adicionales de condiciones if-else . . . . . . . . . . . . 75
3.4. Condiciones anidadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.4.1. if anidado en Python . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4.2. Ejemplos adicionales con condiciones anidadas . . . . . . . . . 80
3.5. Casos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.6. Instrucciones de Python del Capítulo 3 . . . . . . . . . . . . . . . . . . 89
3.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4. Ciclos en Python 95
4.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.2. CiclosMientras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.2.1. El cicloMientras en Python . . . . . . . . . . . . . . . . . . . . 100
4.3. Ciclos Para . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.3.1. La función range . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.4. Ciclos anidados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.5. La instrucción continue . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.6. La instrucción break . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.7. Ejemplos adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.8. Instrucciones de Python del Capítulo 4 . . . . . . . . . . . . . . . . . . 132
4.9. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.10.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5. Cadenas, Listas, Diccionarios y Tuplas 137
5.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.2. Cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.2.1. Longitud de una cadena . . . . . . . . . . . . . . . . . . . . . . 141
5.2.2. Separación de una cadena . . . . . . . . . . . . . . . . . . . . . 141
5.2.3. Operaciones con cadenas . . . . . . . . . . . . . . . . . . . . . . 143
5.2.4. Concatenación o suma de cadenas . . . . . . . . . . . . . . . . 143
5.2.5. Multiplicación de cadenas . . . . . . . . . . . . . . . . . . . . . 144
5.2.6. Inmutabilidad de las cadenas . . . . . . . . . . . . . . . . . . . 144
5.2.7. Otras operaciones con cadenas . . . . . . . . . . . . . . . . . . 145
5.2.8. Condiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
5.2.9. Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
5.3. Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Contenido XI
Python • Ofelia Cervantes, David Báez, Antonio Arízaga, Esteban Castillo Alfaomega
5.4. Definición de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.4.1. Operaciones con listas . . . . . . . . . . . . . . . . . . . . . . . 152
5.4.2. Mutabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.4.3. Conversión de lista de cadenas a cadena . . . . . . . . . . . . . 155
5.4.4. Otras operaciones con listas . . . . . . . . . . . . . . . . . . . . 156
5.5. Tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.5.1. Intercambio de valores . . . . . . . . . . . . . . . . . . . . . . . 159
5.5.2. Operaciones con tuplas . . . . . . . . . . . . . . . . . . . . . . 160
5.6. Diccionarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
5.6.1. Otras operaciones para diccionarios . . . . . . . . . . . . . . . . 162
5.7. Instrucciones de Python del Capítulo 5 . . . . . . . . . . . . . . . . . . 164
5.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
5.9. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6. Arreglos I: Vectores 169
6.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
6.2. Introducción a arreglos . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
6.3. Vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.3.1. Acceso a vectores . . . . . . . . . . . . . . . . . . . . . . . . . . 175
6.3.2. Importancia del tamaño de un vector . . . . . . . . . . . . . . 179
6.4. Vectores en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.4.1. Vectores por comprensión . . . . . . . . . . . . . . . . . . . . . 181
6.5. Ejemplos con vectores en Python . . . . . . . . . . . . . . . . . . . . . 182
6.5.1. Importancia del tamaño de un vector en Python . . . . . . . . 193
6.5.2. Inicialización de los vectores . . . . . . . . . . . . . . . . . . . . 194
6.5.3. La instrucción append . . . . . . . . . . . . . . . . . . . . . . . 194
6.6. Ordenamiento de vectores . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.6.1. Ordenamiento por selección . . . . . . . . . . . . . . . . . . . . 196
6.6.2. Ordenamiento de burbuja . . . . . . . . . . . . . . . . . . . . . 200
6.7. Búsquedas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.7.1. Búsqueda binaria . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.8. Instrucciones de Python del Capítulo 6 . . . . . . . . . . . . . . . . . . 208
6.9. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.10.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
XII Contenido
Alfaomega Python • Ofelia Cervantes, David Báez, Antonio Arízaga, Esteban Castillo
7. Arreglos II: Matrices 211
7.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
7.2. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
7.3. Arreglos en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
7.3.1. Generación de arreglos por indexación . . . . . . . . . . . . . . 215
7.3.2. Generación de arreglos por comprensión . . . . . . . . . . . . . 217
7.4. Métodos alternos de escritura dematrices . . . . . . . . . . . . . . . . 218
7.5. Selección de filas y columnas de un arreglo . . . . . . . . . . . . . . . . 220
7.5.1. Filas de un arreglo . . . . . . . . . . . . . . . . . . . . . . . . . 220
7.5.2. Columnas de un arreglo . . . . . . . . . . . . . . . . . . . . . . 221
7.6. Suma, resta y multiplicación dematrices . . . . . . . . . . . . . . . . . 221
7.6.1. Suma y resta dematrices . . . . . . . . . . . . . . . . . . . . . 222
7.6.2. Suma y resta dematrices en Python . . . . . . . . . . . . . . . 223
7.6.3. Multiplicación dematriz por un escalar . . . . . . . . . . . . . 225
7.6.4. Multiplicación dematriz por unamatriz . . . . . . . . . . . . . 227
7.6.5. Producto dematrices en Python . . . . . . . . . . . . . . . . . 229
7.7. Matrices especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
7.7.1. Lamatriz identidad . . . . . . . . . . . . . . . . . . . . . . . . 231
7.7.2. Lamatriz identidad en Python . . . . . . . . . . . . . . . . . . 231
7.7.3. La matriz transpuesta . . . . . . . . . . . . . . . . . . . . . . . 233
7.7.4. Transpuesta de un arreglo en Python . . . . . . . . . . . . . . . 234
7.7.5. Obtención de la transpuesta por comprensión . . . . . . . . . . 236
7.7.6. Lamatriz simétrica . . . . . . . . . . . . . . . . . . . . . . . . 237
7.8. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
7.9. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
7.10.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
8. Subalgoritmos 249
8.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
8.2. Subalgoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
8.3. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
8.4. Funciones en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
8.4.1. Funciones de Python . . . . . . . . . . . . . . . . . . . . . . . . 256
8.4.2. Funciones definidas por el usuario . . . . . . . . . . . . . . . . 256
8.5. Procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
8.5.1. Recursividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Contenido XIII
Python • Ofelia Cervantes, David Báez, Antonio Arízaga, Esteban Castillo Alfaomega
8.6. Funciones lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
8.7. Llamado por valor y llamado por referencia . . . . . . . . . . . . . . . 268
8.8. Variables locales y globales . . . . . . . . . . . . . . . . . . . . . . . . 269
8.9. Ejemplos adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
8.10. Instrucciones de Python del Capítulo 8 . . . . . . . . . . . . . . . . . . 292
8.11.Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
8.12.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
9. Entrada y salida y de datos con archivos 295
9.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
9.2. Escritura de datos en un archivo . . . . . . . . . . . . . . . . . . . . . 296
9.2.1. Escritura de datos alfanuméricos . . . . . . . . . . . . . . . . . 297
9.2.2. La instrucción with . . . . . . . . . . . . . . . . . . . . . . . . 300
9.3. Escritura de datos numéricos . . . . . . . . . . . . . . . . . . . . . . . 300
9.4. Lectura de datos de un archivo . . . . . . . . . . . . . . . . . . . . . . 303
9.4.1. Lectura de datos de un archivo . . . . . . . . . . . . . . . . . . 304
9.5. Lectura y escritura de datos en Excel . . . . . . . . . . . . . . . . . . . 308
9.6. Instrucciones de Python del Capítulo 9 . . . . . . . . . . . . . . . . . . 313
9.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
9.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
10.Programación orientada a objetos 315
10.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
10.2.Conceptos asociados a la POO . . . . . . . . . . . . . . . . . . . . . . 316
10.3.Primera clase en Python . . . . . . . . . . . . . . . . . . . . . . . . . . 319
10.4. Creación de la clase NumeroComplejo . . . . . . . . . . . . . . . . . . . 321
10.5.Declaración y uso de Setters y Getters . . . . . . . . . . . . . . . . . . 322
10.6.Sobreescritura de operadores . . . . . . . . . . . . . . . . . . . . . . . 324
10.7.Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
10.8.Sobreescritura demétodos . . . . . . . . . . . . . . . . . . . . . . . . . 330
10.9.Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
10.9.1. Creación ymovimientos de una cuenta bancaria . . . . . . . . 331
10.9.2. Cálculo de la media aritmética y la desviación estándar . . . . 334
10.9.3. Operaciones conmatrices . . . . . . . . . . . . . . . . . . . . . 337
10.9.4. Figuras geométricas . . . . . . . . . . . . . . . . . . . . . . . . 341
10.9.5. Lista enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
XIV Contenido
Alfaomega Python • Ofelia Cervantes, David Báez, Antonio Arízaga, Esteban Castillo
10.10.Instrucciones de Python del Capítulo 10 . . . . . . . . . . . . . . . . . 349
10.11.Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
10.12.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
11.Graficación en Python 351
11.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
11.2. Visualización de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
11.3.Gráficas en 2 dimensiones . . . . . . . . . . . . . . . . . . . . . . . . . 353
11.4. Figuras múltiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
11.5. Subgráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
11.6.Otros tipos de gráficas bidimensionales . . . . . . . . . . . . . . . . . . 365
11.6.1. Gráfica polar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
11.6.2. Gráfica de pie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
11.6.3. Gráfica de histograma . . . . . . . . . . . . . . . . . . . . . . . 367
11.6.4. Gráfica de stem o de puntos . . . . . . . . . . . . . . . . . . . . 368
11.7.Opciones de gráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
11.8.Gráficas tridimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . 371
11.9. Instrucciones de Python del Capítulo 11 . . . . . . . . . . . . . . . . . 379
11.10.Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
11.11.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
12.Geolocalización y Análisis de Sentimientos 383
12.1. Geolocalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
12.2. El módulo geopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
12.2.1. Geolocalización de un punto de interés . . . . . . . . . . . . . . 385
12.2.2. Distancia de dos puntos de interés . . . . . . . . . . . . . . . . 387
12.2.3. Visualización de distintos puntos de interés . . . . . . . . . . . 388
12.3. Análisis de sentimientos de Twitter . . . . . . . . . . . . . . . . . . . . 390
12.3.1. Extracción de tweets . . . . . . . . . . . . . . . . . . . . . . . . 391
12.3.2. La base de datosMongoDB . . . . . . . . . . . . . . . . . . . . 395
12.3.3. Análisis de los tweets . . . . . . . . . . . . . . . . . . . . . . . . 398
12.4.Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
A. Instalación y configuración 405
A.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
A.2. Instalación de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Contenido XV
Python • Ofelia Cervantes, David Báez, Antonio Arízaga, Esteban Castillo Alfaomega
A.3. Instalación de easy_install y pip . . . . . . . . . . . . . . . . . . . . . 408
A.4. Instalación de Numpy . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
A.5. Instalación de Scipy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
A.6. Instalación de Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . 413
A.7. Instalación de Tweepy . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
A.8. Instalación de Pymongo . . . . . . . . . . . . . . . . . . . . . . . . . . 416
A.9. Instalación de Geopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
A.10. Instalación de Matplotlib Basemap . . . . . . . . . . . . . . . . . . . . 418
B. Creación de ejecutables en Python 421
B.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
B.2. Instalación de pyinstaller . . . . . . . . . . . . . . . . . . . . . . . . 422
B.3. Creación de ejecutables . . . . . . . . . . . . . . . . . . . . . . . . . . 422
B.4. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
XVI Contenido
Alfaomega Python • Ofelia Cervantes, David Báez, Antonio Arízaga, Esteban Castillo
Novedades en Editoriales Libro%
Motivos
Motivos es el único libro en prosa de José María Eguren. Es una recopilación...
Cuadernos de Vorónezh
Este libro es un milagro, y también el último escrito por Ósip Mandelstam, uno de los...
Nomadismo por mi país
Nomadismo por mi país es el diario de los talleres de poesía de Cecilia Pavón...
Presentación de Rodolfo Fogwill. Una monografía
Presentación de Rodolfo Fogwill. Una monografía es un enorme trabajo crítico...