Book description
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Puede que tu código Python funcione correctamente, pero necesitas que lo haga más rápido. Actualizada para Python 3, esta edición ampliada te muestra cómo localizar los cuellos de botella en el rendimiento y acelerar significativamente tu código en programas de gran volumen de datos. Al explorar la teoría fundamental que subyace a las opciones de diseño, Python de alto rendimiento te ayuda a comprender mejor la implementación de Python.
¿Cómo aprovechas las arquitecturas multinúcleo o los clusters? ¿O construir un sistema que se amplíe y reduzca sin perder fiabilidad? Los programadores experimentados de Python aprenderán soluciones concretas a muchas cuestiones, junto con historias de guerra de empresas que utilizan Python de alto rendimiento para el análisis de medios sociales, el aprendizaje automático productivo y mucho más.
- Conoce mejor NumPy, Cython y los perfiladores
- Aprende cómo Python abstrae la arquitectura informática subyacente
- Utiliza el perfilado para encontrar cuellos de botella en el tiempo de CPU y el uso de memoria
- Escribe programas eficientes eligiendo las estructuras de datos adecuadas
- Acelera los cálculos matriciales y vectoriales
- Utilizar herramientas para compilar Python a código máquina
- Gestionar simultáneamente múltiples operaciones de E/S y de cálculo
- Convierte código multiprocesador para ejecutarlo en clusters locales o remotos
- Despliega código más rápido utilizando herramientas como Docker
Table of contents
- Prólogo
-
Prefacio
- A quién va dirigido este libro
- Para quién no es este libro
- Lo que aprenderás
- Python 3
- Cambios desde Python 2.7
- Licencia
- Cómo hacer una atribución
- Erratas y comentarios
- Convenciones utilizadas en este libro
- Utilizar ejemplos de código
- Aprendizaje en línea O'Reilly
- Cómo contactar con nosotros
- Agradecimientos
- 1. Entender el Python Performant
-
2. Perfilar para encontrar cuellos de botella
- Perfilar eficazmente
- Presentación del Conjunto de Julia
- Cálculo del Conjunto de Julia completo
- Enfoques sencillos para cronometrar y un decorador
- Cronometraje sencillo mediante el comando tiempo de Unix
- Utilizar el módulo cProfile
- Visualizar la salida del perfil c con SnakeViz
- Uso de line_profiler para mediciones línea a línea
- Uso de memory_profiler para diagnosticar el uso de memoria
- Introspección de un proceso existente con PySpy
- Bytecode: Bajo el capó
- Pruebas unitarias durante la optimización para mantener la corrección
- Estrategias para perfilar tu código con éxito
- Recapitulación
- 3. Listas y tuplas
- 4. Diccionarios y conjuntos
- 5. Iteradores y generadores
-
6. Cálculo de matrices y vectores
- Introducción al problema
- ¿No son suficientemente buenas las listas Python?
- Fragmentación de la memoria
- Aplicación de numpy al problema de la difusión
- numexpr: Hacer más rápidas y sencillas las operaciones in situ
- Un cuento con moraleja: Verifica las "Optimizaciones" (scipy)
- Lecciones de las optimizaciones matriciales
- Pandas
- Recapitulación
-
7. Compilar en C
- ¿Qué tipo de ganancias de velocidad son posibles?
- Compiladores JIT frente a AOT
- ¿Por qué la información tipográfica ayuda a que el código funcione más rápido?
- Utilizar un compilador de C
- Repasar el ejemplo del Conjunto de Julia
- Cython
- pyximport
- Cython y numpy
- Numba
- PyPy
- Resumen de las mejoras de velocidad
- Cuándo utilizar cada tecnología
- Unidades de procesamiento gráfico (GPU)
- Interfaces de funciones externas
- Recapitulación
- 8. E/S asíncrona
-
9. El Módulo de multiprocesamiento
- Una visión general del módulo multiprocesamiento
- Estimación de Pi mediante el método de Montecarlo
- Estimación de Pi mediante procesos e hilos
- Encontrar números primos
- Verificación de primos mediante comunicación entre procesos
- Compartir datos numpy con multiprocesamiento
- Sincronizar el acceso a archivos y variables
- Recapitulación
-
10. Clusters y colas de trabajo
- Ventajas de la agrupación
- Inconvenientes de la agrupación
- Diseños comunes de agrupaciones
- Cómo iniciar una solución en clúster
- Formas de Evitar el Dolor al Utilizar Racimos
- Dos soluciones de agrupación
- NSQ para una agrupación robusta de la producción
- Otras herramientas de agrupación a tener en cuenta
- Docker
- Recapitulación
-
11. Usar menos RAM
- Los objetos para primitivas son caros
- Comprender la RAM utilizada en una colección
- Bytes frente a Unicode
- Almacenamiento eficiente de mucho texto en RAM
- Modelar más texto con FeatureHasher de Scikit-Learn
- Presentación de DictVectorizer y FeatureHasher
- Matrices dispersas de SciPy
- Consejos para usar menos RAM
- Estructuras de datos probabilísticas
-
12. Lecciones del terreno
-
Racionalizar los procesos de ingeniería de características con Feature-engine
- Ingeniería de rasgos para el aprendizaje automático
- La Difícil Tarea de Implementar Canalizaciones de Ingeniería de Funciones
- Aprovechar la potencia de las bibliotecas Python de código abierto
- Feature-engine facilita la creación e implementación de cadenas de ingeniería de funciones
- Ayudar a la adopción de un nuevo paquete de código abierto
- Desarrollar, mantener y fomentar la contribución a las bibliotecas de código abierto
- Equipos de Ciencia de Datos de Alto Rendimiento
- Numba
- Optimizar frente a pensar
- Análisis de Redes Sociales de Adaptive Lab (2014)
- Hacer volar el aprendizaje profundo con RadimRehurek.com (2014)
- Aprendizaje automático productivo a gran escala en Lyst.com (2014)
- Análisis de medios sociales a gran escala en Smesh (2014)
- PyPy para sistemas web y de procesamiento de datos de éxito (2014)
- Colas de tareas en Lanyrd.com (2014)
-
Racionalizar los procesos de ingeniería de características con Feature-engine
- Índice
- Sobre los autores
Product information
- Title: Python de alto rendimiento, 2ª edición
- Author(s):
- Release date: September 2024
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781098187149
You might also like
book
Dominar Python para Bioinformática
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com Hoy en día, …
book
Python para el Análisis de Datos, 3ª Edición
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com Consigue el manual …
book
Escalando Python con Dask
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com Los sistemas modernos …
book
Herramientas Python hipermodernas
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com Mantenerse al día …