1st Edition

Introduction to Python With Applications in Optimization, Image and Video Processing, and Machine Learning

    452 Pages 5 Color & 116 B/W Illustrations
    by Chapman & Hall

    452 Pages 5 Color & 116 B/W Illustrations
    by Chapman & Hall

    Introduction to Python: with Applications in Optimization, Image and Video Processing, and Machine Learning is intended primarily for advanced undergraduate and graduate students in quantitative sciences such as mathematics, computer science, and engineering. In addition to this, the book is written in such a way that it can also serve as a self-contained handbook for professionals working in quantitative fields including finance, IT, and many other industries where programming is a useful or essential tool.

    The book is written to be accessible and useful to those with no prior experience of Python, but those who are somewhat more adept will also benefit from the more advanced material that comes later in the book.

    Features

    • Covers introductory and advanced material. Advanced material includes lists, dictionaries, tuples, arrays, plotting using Matplotlib, object-oriented programming
    • Suitable as a textbook for advanced undergraduates or postgraduates, or as a reference for researchers and professionals
    • Solutions manual, code, and additional examples are available for download

    1. Introduction to Python. 1.1. What is the Python programming language. 1.2. The Python programming language. 1.3. Book organization. 1.4. Algorithms. 1.5. Variables. 1.6. Input and output in Python. 1.7. Programs in Python. 1.8. Comments in a program. 1.9. Functions in Python. 1.10. Modules and libraries. 1.11. Operators. 1.12. Alphanumeric variables. 1.13. Lists. 1.14. Dictionaries. 1.15. Tuples. 1.16. Examples. 1.17. Python instructions for Chapter 1. 1.18. Conclusions. 1.19. Exercises. 2. Conditionals and Loops. 2.1. Introduction. 2.2. Conditionals. 2.3. The conditional if-else. 2.4. Nested Conditionals. 2.5. Exceptions and Errors. 2.6. Loops. 2.7. The while loop. 2.8. The for loop. 2.9. Nested loops. 2.10. The instruction break. 2.11. The instruction continues. 2.12. Additional examples. 2.13. Python instructions for Chapter 2. 2.14. Conclusions. 2.15. Exercises. 2.16. Bibliography. 3. Data Structures: Strings, Lists, Tuples, and Dictionaries. 3.1. Introduction. 3.2. Strings. 3.3. Functions on strings. 3.4. Immutability of strings. 3.5. Lists. 3.6. Tuples. 3.7. Dictionaries. 3.8. Sets. 3.9. Python Instructions for Chapter 3. 3.10. Conclusions. 3.11. Exercises . 4 Arrays. 4.1. Introduction. 4.2. Introduction to array. 4.3. Vectors. 4.4. Examples with vectors in Python. 4.5. Matrices. 4.6. Arrays in Python. 4.7. Matrix operations using linear algebra with numpy. 4.8. Special Matrices. 4.9. Examples. 4.10. Arrays in Pandas. 4.11. Python instructions for Chapter 4. 4.12. Conclusions. 4.13. Exercises. 5. Functions. 5.1. Introduction. 5.2. Subprograms. 5.3. Functions in Python. 5.4. Recursion. 5.5. Anonymous functions or lambda functions. 5.6. Pass by reference. 5.7. Local and global variables. 5.8. Keyword and default arguments. 5.9. Variable-length arguments. 5.10. Additional Examples. 5.11. Python Instructions in Chapter 5 5.12 Conclusions. 5.13. Exercises. 6. Object-Oriented Programming. 6.1. Introduction. 6.2. The Object-Oriented Programming Paradigm. 6.3. Classes in Python. 6.4. Example. 6.5. Python instructions for Chapter 6. 6.6. Conclusions. 6.7. Exercises. 6.8. Selected bibliography. 7. Reading and writing to files. 7.1. Introduction. 7.2. Writing data to a file. 7.3. Writing numerical data to a file. 7.4. Data reading from a file. 7.5. Reading and writing data from and to Excel. 7.6. Reading and writing binary files. 7.7. Python instructions in Chapter 7. 7.8. Conclusions. 7.9. Exercises. 8. Plotting in Python. 8.1. Introduction. 8.2. Plots in two dimensions. 8.3. The package seaborn. 8.4. Other two-dimensional plots. 8.5. Pie charts. 8.6. Multiple figures. 8.7. Three-Dimensional Plots. 8.8. Python instructions for Chapter 8. 8.9. Conclusions. 8.10. Exercises. 8.11. References. 9. Optimization. 9.1. Introduction. 9.2. Optimization Concepts. 9.3. General Format of the Optimization Process. 9.4. Optimization with Python. 9.5. The minimize function. 9.6. Linear programming. 9.7. Quadratic programming. 9.8. Python instructions for Chapter 9. 9.9. Conclusions. 9.10. Selected bibliography. 10. Image Processing with OpenCV. 10.1. Introduction. 10.2. Reading and writing images and videos. 10.3. Video capture and display. 10.4. Binary images. 10.5. Histogram. 10.6. Draw geometric shapes and text on an image. 10.7. Contour detection. 10.8. Frequency domain processing. 10.9. Noise addition to images. 10.10. Morphological image processing. 10.11. Python Instructions in Chapter 10. 10.12. Conclusions. 10.13. Selected bibliography. 11. Machine Learning. 11.1. Types of machine learning systems. 11.2. Gradient descent algorithm. 11.3. Multivariate regression. 11.4. The normal equation. 11.5. The package scikit-learn. 11.6. Polynomial regression. 11.7. Classification with logistic regression. 11.8. Unsupervised Learning. 11.9. Clustering using k-means. 11.10. Python instructions in Chapter 11. 11.11. Conclusions. 12. Neural networks. 12.1. Introduction. 12.2. A model for a neuron. 12.3. Activation functions. 12.4. Cost function. 12.5. TensorFlow. 12.6. Convolutional neural networks. 12.7. A layer of a convolutional filter. 12.8. Python instructions in Chapter 12. 12.9. Conclusions.

     

    Biography

    David Báez-López obtained a B.S. in Physics in 1973 from the Universidad Autonoma de Puebla, Mexico where he graduated with Honors. He also attended the University of Arizona where he obtained the M.S. and Ph.D. degrees, both in Electrical Engineering, in 1976 and 1979, respectively. From 1979 to 1984 he was a researcher at Department of Electronics at National Institute for Astrophysics, Optics, and Electronics, located in Tonantzintla, Puebla, Mexico, and he became Head of The Department of Electronics and Graduate Coordinator. In 1985 he joined Universidad de las Americas-Puebla, Mexico as a professor and in 1988 became Chairman of the Department of Electronic Engineering until 1994. He was a member of the National Systems of Researchers. He retired in 2015 and now is Academic Director in EDUPROTEC A.C. in Puebla, Mexico, a non-governmental organization dedicated to the improvement of mathematics learning, among other topics. He has authored books on circuit simulation, MATLAB, Python, and Mathematica in English and Spanish. A Chinese edition of a book on MATLAB was published in 2017.

    David Alfredo Báez Villegas is an electrical engineer with master’s degrees in Project Management (École de Technologie Supérieure, Montréal) and Electrical Engineering (Texas A&M University, Texas Tech University). He holds a B.S. in Electronic Engineering from Universidad de las Americas-Puebla, Mexico, and M.S in Electrical Engineering from Texas Tech University and Texas A&M University (TAMU). He worked as an assistant to the Office of International Affairs at TAMU before moving to Montreal, Canada. Since 2015 he has been a consultant in project management.