Mastering Python Scientific Computing

 
 
Packt Publishing Limited
  • 1. Auflage
  • |
  • erschienen am 23. September 2015
  • |
  • 300 Seiten
 
E-Book | ePUB mit Adobe DRM | Systemvoraussetzungen
978-1-78328-883-0 (ISBN)
 
A complete guide for Python programmers to master scientific computing using Python APIs and toolsAbout This BookThe basics of scientific computing to advanced concepts involving parallel and large scale computation are all covered.Most of the Python APIs and tools used in scientific computing are discussed in detailThe concepts are discussed with suitable example programsWho This Book Is ForIf you are a Python programmer and want to get your hands on scientific computing, this book is for you. The book expects you to have had exposure to various concepts of Python programming.What You Will LearnFundamentals and components of scientific computingScientific computing data managementPerforming numerical computing using NumPy and SciPyConcepts and programming for symbolic computing using SymPyUsing the plotting library matplotlib for data visualizationData analysis and visualization using Pandas, matplotlib, and IPythonPerforming parallel and high performance computingReal-life case studies and best practices of scientific computingIn DetailIn today's world, along with theoretical and experimental work, scientific computing has become an important part of scientific disciplines. Numerical calculations, simulations and computer modeling in this day and age form the vast majority of both experimental and theoretical papers. In the scientific method, replication and reproducibility are two important contributing factors. A complete and concrete scientific result should be reproducible and replicable. Python is suitable for scientific computing. A large community of users, plenty of help and documentation, a large collection of scientific libraries and environments, great performance, and good support makes Python a great choice for scientific computing.At present Python is among the top choices for developing scientific workflow and the book targets existing Python developers to master this domain using Python. The main things to learn in the book are the concept of scientific workflow, managing scientific workflow data and performing computation on this data using Python.The book discusses NumPy, SciPy, SymPy, matplotlib, Pandas and IPython with several example programs.Style and approachThis book follows a hands-on approach to explain the complex concepts related to scientific computing. It details various APIs using appropriate examples.
  • Englisch
  • Birmingham
  • |
  • Großbritannien
978-1-78328-883-0 (9781783288830)
1783288833 (1783288833)
weitere Ausgaben werden ermittelt
Hemant Kumar Mehta is a distributed and scientific computing enthusiast. He has more than 13 years of experience of teaching, research, and software development. He received his BSc (in computer science) Hons., master of computer applications degree, and PhD in computer science from Devi Ahilya University, Indore, India in 1998, 2001, and 2011, respectively. He has experience of working in diverse international environments as a software developer in MNCs. He is a post-doctorate fellow at an international university of high reputation.
Hemant has published more than 20 highly cited research papers in reputed national and international conferences and journals sponsored by ACM, IEEE, and Springer. He is the author of Getting Started with Oracle Public Cloud, Packt Publishing. He is also the coauthor of a book named Internet and Web Technology, published by Kaushal Prakashan Mandir, Indore.
He earned his PhD in the field of cloud computing and big data. Hemant is a member of ACM (Special Interest Group on High-performance Computing Education: SIGHPC-Edu), senior member of IEEE (the computer society, STC on cloud computing, and the big data technical committee), and a senior member of IACSIT, IAENG, and MIR Labs.
  • Cover
  • Copyright
  • Credits
  • About the Author
  • About the Reviewers
  • www.PacktPub.com
  • Table of Contents
  • Preface
  • Chapter 1: The Landscape of Scientific Computing - and Why Python?
  • Definition of scientific computing
  • A simple flow of the scientific computation process
  • Examples from scientific/engineering domains
  • A strategy for solving complex problems
  • Approximation, errors, and associated concepts and terms
  • Error analysis
  • Conditioning, stability, and accuracy
  • Backward and forward error analysis
  • Is it okay to ignore these errors?
  • Computer arithmetic and floating-point numbers
  • The background of the Python programming language
  • The guiding principles of the Python language
  • Why Python for scientific computing?
  • Compact and readable code
  • Holistic language design
  • Free and open source
  • Language interoperability
  • Portable and extensible
  • Hierarchical module system
  • Graphical user interface packages
  • Data structures
  • Python's testing framework
  • Available libraries
  • The downsides of Python
  • Summary
  • Chapter 2: A Deeper Dive into Scientific Workflows and the Ingredients of Scientific Computing Recipes
  • Mathematical components of scientific computations
  • A system of linear equations
  • A system of nonlinear equations
  • Optimization
  • Interpolation
  • Extrapolation
  • Numerical integration
  • Numerical differentiation
  • Differential equations
  • The initial value problem
  • The boundary value problem
  • Random number generator
  • Python scientific computing
  • Introduction to NumPy
  • The SciPy library
  • The SciPy Subpackage
  • Data analysis using pandas
  • A brief idea of interactive programming using IPython
  • IPython parallel computing
  • IPython Notebook
  • Symbolic computing Using SymPy
  • The features of SymPy
  • Why SymPy?
  • The plotting library
  • Summary
  • Chapter 3: Efficiently Fabricating and Managing Scientific Data
  • The basic concepts of data
  • Data storage software and toolkits
  • Files
  • Structured files
  • Unstructured files
  • Database
  • Possible operations on data
  • Scientific data format
  • Ready-to-use standard datasets
  • Data generation
  • Synthetic data generation (fabrication)
  • Using Python's built-in functions for random number generation
  • Bookkeeping functions
  • Functions for integer random number generation
  • Functions for sequences
  • Statistical-distribution-based functions
  • Nondeterministic random number generator
  • Designing and implementing random number generators based on statistical distributions
  • A program with simple logic to generate five-digit random numbers
  • A brief note about large-scale datasets
  • Summary
  • Chapter 4: Scientific Computing APIs for Python
  • Numerical scientific computing in Python
  • The NumPy package
  • The ndarrays data structure
  • File handling
  • Some sample NumPy programs
  • The SciPy package
  • The optimization package
  • The interpolation package
  • Integration and differential equations in SciPy
  • The stats module
  • Clustering package and spatial algorithms in SciPy
  • Image processing in SciPy
  • Sample SciPy programs
  • Statistics using SciPy
  • Optimization in SciPy
  • Image processing using SciPy
  • Symbolic computations using SymPy
  • Computer Algebra System
  • Features of a general-purpose CAS
  • A brief idea of SymPy
  • SymPy modules
  • Simple exemplary programs
  • Basic symbol manipulation
  • Expression expansion in SymPy
  • Simplification of an expression or formula
  • Simple integrations
  • APIs and toolkits for data analysis and visualization
  • Data analysis and manipulation using pandas
  • Important data structures of pandas
  • Special features of pandas
  • Data visualization using matplotlib
  • Interactive computing in Python using IPython
  • Sample data analysis and visualization programs
  • Summary
  • Chapter 5: Performing Numerical Computing
  • The NumPy fundamental objects
  • The ndarray object
  • The attributes of an array
  • Basic operations on arrays
  • Special operations on arrays (shape change and conversion)
  • Classes associated with arrays
  • The universal function object
  • Attributes
  • Methods
  • Various available ufunc
  • The NumPy mathematical modules
  • Introduction to SciPy
  • Mathematical functions in SciPy
  • Advanced modules/packages
  • Integration
  • Signal processing (scipy.signal)
  • Fourier transforms (scipy.fftpack)
  • Spatial data structures and algorithms (scipy.spatial)
  • Optimization (scipy.optimize)
  • Interpolation (scipy.interpolate)
  • Linear algebra (scipy.linalg)
  • Sparse eigenvalue problems with ARPACK
  • Statistics (scipy.stats)
  • Multidimensional image processing (scipy.ndimage)
  • Clustering
  • Curve fitting
  • File I/O (scipy.io)
  • Summary
  • Chapter 6: Applying Python for Symbolic Computing
  • Symbols, expressions, and basic arithmetic
  • Equation solving
  • Functions for rational numbers, exponentials, and logarithms
  • Polynomials
  • Trigonometry and complex numbers
  • Linear algebra
  • Calculus
  • Vectors
  • The physics module
  • Hydrogen wave functions
  • Matrices and Pauli algebra
  • The quantum harmonic oscillator in 1-D and 3-D
  • Second quantization
  • High-energy physics
  • Mechanics
  • Pretty printing
  • LaTeX Printing
  • The cryptography module
  • Parsing input
  • The logic module
  • The geometry module
  • Symbolic integrals
  • Polynomial manipulation
  • Sets
  • The simplify and collect operations
  • Summary
  • Chapter 7: Data Analysis and Visualization
  • Matplotlib
  • The architecture of matplotlib
  • The scripting layer (pyplot)
  • The artist layer
  • The backend layer
  • Graphics with matplotlib
  • Output generation
  • The pandas library
  • Series
  • DataFrame
  • Panel
  • The common functionality among the data structures
  • Time series and date functions
  • Handling missing data
  • I/O operations
  • Working on CSV files
  • Ready-to-eat datasets
  • The pandas plotting
  • IPython
  • The IPython console and system shell
  • The operating system interface
  • Nonblocking plotting
  • Debugging
  • IPython Notebook
  • Summary
  • Chapter 8: Parallel and Large-scale Scientific Computing
  • Parallel computing using IPython
  • The architecture of IPython parallel computing
  • The components of parallel computing
  • The IPython engine
  • The IPython controller
  • IPython view and interfaces
  • The IPython client
  • Example of performing parallel computing
  • A parallel decorator
  • IPython's magic functions
  • Activating specific views
  • Engines and QtConsole
  • Advanced features of IPython
  • Fault-tolerant execution
  • Dynamic load balancing
  • Pushing and pulling objects between clients and engines
  • Database support for storing the requests and results
  • Using MPI in IPython
  • Managing dependencies among tasks
  • Functional dependency
  • Graph dependency
  • Impossible dependencies
  • The DAG dependency and the NetworkX library
  • Using IPython on an Amazon EC2 cluster with StarCluster
  • A note on security of IPython
  • Well-known parallel programming styles
  • Issues in parallel programming
  • Parallel programming
  • Concurrent programming
  • Distributed programming
  • Multiprocessing in Python
  • Multithreading in Python
  • Hadoop-based MapReduce in Python
  • Spark in Python
  • Summary
  • Chapter 9: Revisiting Real-life Case Studies
  • Scientific computing applications developed in Python
  • The one Laptop per Child project used Python for their user interface
  • ExpEYES - eyes for science
  • A weather prediction application in Python
  • An aircraft conceptual designing tool and API in Python
  • OpenQuake Engine
  • SMS Siemag AG Application for energy efficiency
  • Automated code generator for analysis of high-energy physics data
  • Python for computational chemistry applications
  • Python for developing a Blind Audio Tactile Mapping System
  • TAPTools for air traffic control
  • Energy-efficient lights with an embedded system
  • Scientific computing libraries developed in Python
  • A maritime designing API by Tribon
  • Molecular Modeling Toolkit
  • Standard Python packages
  • Summary
  • Chapter 10: Best Practices for Scientific Computing
  • The best practices for designing
  • The implementation of best practices
  • The best practices for data management and application deployment
  • The best practices to achieving high performance
  • The best practices for data privacy and security
  • Testing and maintenance best practices
  • General Python best practices
  • Summary
  • Index

Dateiformat: EPUB
Kopierschutz: Adobe-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat EPUB ist sehr gut für Romane und Sachbücher geeignet - also für "fließenden" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Adobe-DRM wird hier ein "harter" Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Download (sofort verfügbar)

32,73 €
inkl. 19% MwSt.
Download / Einzel-Lizenz
ePUB mit Adobe DRM
siehe Systemvoraussetzungen
E-Book bestellen

Unsere Web-Seiten verwenden Cookies. Mit der Nutzung dieser Web-Seiten erklären Sie sich damit einverstanden. Mehr Informationen finden Sie in unserem Datenschutzhinweis. Ok