Advanced Python Programming : Accelerate your Python programs using proven techniques and design patterns, 2/e (Paperback)

Nguyen, Quan

  • 出版商: Packt Publishing
  • 出版日期: 2022-03-25
  • 售價: $1,800
  • 貴賓價: 9.5$1,710
  • 語言: 英文
  • 頁數: 606
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1801814015
  • ISBN-13: 9781801814010
  • 相關分類: Python程式語言Design Pattern
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

Write fast, robust, and highly reusable applications using Python's internal optimization, state-of-the-art performance-benchmarking tools, and cutting-edge libraries

Key Features

- Benchmark, profile, and accelerate Python programs using optimization tools
- Scale applications to multiple processors with concurrent programming
- Make applications robust and reusable using effective design patterns

Book Description

Python's powerful capabilities for implementing robust and efficient programs make it one of the most sought-after programming languages.

In this book, you'll explore the tools that allow you to improve performance and take your Python programs to the next level.

This book starts by examining the built-in as well as external libraries that streamline tasks in the development cycle, such as benchmarking, profiling, and optimizing. You'll then get to grips with using specialized tools such as dedicated libraries and compilers to increase your performance at number-crunching tasks, including training machine learning models.

The book covers concurrency, a major solution to making programs more efficient and scalable, and various concurrent programming techniques such as multithreading, multiprocessing, and asynchronous programming.

You'll also understand the common problems that cause undesirable behavior in concurrent programs.

Finally, you'll work with a wide range of design patterns, including creational, structural, and behavioral patterns that enable you to tackle complex design and architecture challenges, making your programs more robust and maintainable.

By the end of the book, you'll be exposed to a wide range of advanced functionalities in Python and be equipped with the practical knowledge needed to apply them to your use cases.

What you will learn

- Write efficient numerical code with NumPy, pandas, and Xarray
- Use Cython and Numba to achieve native performance
- Find bottlenecks in your Python code using profilers
- Optimize your machine learning models with JAX
- Implement multithreaded, multiprocessing, and asynchronous programs
- Solve common problems in concurrent programming, such as deadlocks
- Tackle architecture challenges with design patterns

Who this book is for

This book is for intermediate to experienced Python programmers who are looking to scale up their applications in a systematic and robust manner. Programmers from a range of backgrounds will find this book useful, including software engineers, scientific programmers, and software architects.

商品描述(中文翻譯)

快速、強大且高度可重複使用的應用程式撰寫,使用 Python 的內部優化、最先進的效能基準測試工具和尖端函式庫

主要特點

- 使用優化工具來進行 Python 程式的基準測試、分析和加速

- 使用並行程式設計將應用程式擴展到多個處理器

- 使用有效的設計模式使應用程式更加強健和可重複使用

書籍描述

Python 強大的功能使其成為最受追捧的程式語言之一,用於實現強健且高效的程式。

在本書中,您將探索能夠提升性能並將 Python 程式提升到更高水平的工具。

本書首先檢視內建和外部函式庫,以簡化開發週期中的任務,例如基準測試、分析和優化。然後,您將熟悉使用專門的工具,如專用函式庫和編譯器,以提高處理數據的效能,包括訓練機器學習模型。

本書涵蓋並行程式設計,這是使程式更加高效和可擴展的主要解決方案,以及多線程、多進程和非同步程式設計等各種並行程式設計技術。

您還將了解導致並行程式不良行為的常見問題。

最後,您將使用各種設計模式,包括創建型、結構型和行為型模式,解決複雜的設計和架構挑戰,使您的程式更加強健和易於維護。

通過閱讀本書,您將接觸到 Python 中各種高級功能,並具備將其應用於您的使用案例所需的實際知識。

您將學到什麼

- 使用 NumPy、pandas 和 Xarray 編寫高效的數值程式碼

- 使用 Cython 和 Numba 實現原生效能

- 使用分析器找出 Python 程式中的瓶頸

- 使用 JAX 優化機器學習模型

- 實現多線程、多進程和非同步程式

- 解決並行程式設計中的常見問題,如死鎖

- 使用設計模式應對架構挑戰

適合閱讀對象

本書適合中級到有經驗的 Python 程式設計師,他們希望以系統和強健的方式擴展其應用程式。各種背景的程式設計師都會發現本書有用,包括軟體工程師、科學程式設計師和軟體架構師。

目錄大綱

1. Benchmarking and Profiling
2. Pure Python Optimizations
3. Fast Array Operations with NumPy and Pandas
4. C Performance with Cython
5. Exploring Compilers
6. Automatic Differentiation and Accelerated Linear Algebra for Machine Learning
7. Implementing Concurrency
8. Parallel Processing
9. Concurrent Web Requests
10. Concurrent Image Processing
11. Building Communication Channels with asyncio
12. Deadlocks
13. Starvation
14. Race Conditions
15. The Global Interpreter Lock
16. The Factory Pattern
17. The Builder Pattern
18. Other Creational Patterns
19. The Adapter Pattern
20. The Decorator Pattern
21. The Bridge Pattern
22. The Facade Pattern
23. Other Structural Patterns
24. The Chain of Responsibility Pattern
25. The Command Pattern
26. The Observer Pattern

目錄大綱(中文翻譯)

1. 基準測試和分析
2. 純 Python 優化
3. 使用 NumPy 和 Pandas 進行快速陣列操作
4. 使用 Cython 進行 C 語言效能優化
5. 探索編譯器
6. 自動微分和加速線性代數應用於機器學習
7. 實現並行性
8. 平行處理
9. 並行網路請求
10. 並行圖像處理
11. 使用 asyncio 建立通訊通道
12. 死結
13. 飢餓
14. 競爭條件
15. 全域解譯器鎖定
16. 工廠模式
17. 建造者模式
18. 其他創建型模式
19. 適配器模式
20. 裝飾器模式
21. 橋接模式
22. 外觀模式
23. 其他結構型模式
24. 責任鏈模式
25. 命令模式
26. 觀察者模式