Numpy Beginner's Guide

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): Ivan Idris
Edition: 3
Publisher: Packt Publishing
Year: 2015

Language: English
Pages: 348

Cover
Copyright
Credits
About the Author
About the Reviewers
www.PacktPub.com
Table of Contents
Preface
Chapter 1: NumPy Quick Start
Python
Time for action – installing Python on different operating systems
The Python help system
Time for action – using the Python help system
Basic arithmetic and variable assignment
Time for action – using Python as a calculator
Time for action – assigning values to variables
The print() function
Time for action – printing with the print() function
Code comments
Time for action – commenting code
The if statement
Time for action – deciding with the if statement
The for loop
Time for action – repeating instructions with loops
Python functions
Time for action – defining functions
Python modules
Time for action – importing modules
NumPy on Windows
Time for action – installing NumPy, matplotlib, SciPy, and IPython on Windows
NumPy on Linux
Time for action – installing NumPy, matplotlib, SciPy, and IPython on Linux
NumPy on Mac OS X
Time for action – installing NumPy, SciPy, matplotlib, and IPython with MacPorts or Fink
Building from source
Arrays
Time for action – adding vectors
IPython – an interactive shell
Online resources and help
Summary
Chapter 2: Beginning with NumPy Fundamentals
NumPy array object
Time for action – creating a multidimensional array
Selecting elements
NumPy numerical types
Data type objects
Character codes
The dtype constructors
The dtype attributes
Time for action – creating a record data type
One-dimensional slicing and indexing
Time for action – slicing and indexing multidimensional arrays
Time for action – manipulating array shapes
Time for action – stacking arrays
Time for action – splitting arrays
Time for action – converting arrays
Summary
Chapter 3: Getting Familiar with Commonly Used Functions
File I/O
Time for action – reading and writing files
Comma Separated Values files
Time for action – loading from CSV files
Volume Weighted Average Price
Time for action – calculating volume weighted average price
The mean() function
Time-weighted average price
Value range
Time for action – finding highest and lowest values
Statistics
Time for action – doing simple statistics
Stock returns
Time for action – analyzing stock returns
Dates
Time for action – dealing with dates
Time for action – using the datetime64 data type
Weekly summary
Time for action – summarizing data
Average True Range
Time for action – calculating the average true range
Simple Moving Average
Time for action – computing the simple moving average
Exponential Moving Average
Time for action – calculating the exponential moving average
Bollinger Bands
Time for action – enveloping with Bollinger bands
Linear model
Time for action – predicting price with a linear model
Trend lines
Time for action – drawing trend lines
Methods of ndarray
Time for action – clipping and compressing arrays
Factorial
Time for action – calculating the factorial
Missing values and Jackknife resampling
Time for action – handling NaNs with the nanmean(), nanvar(), and nanstd() functions
Summary
Chapter 4: Convenience Functions for Your Convenience
Correlation
Time for action – trading correlated pairs
Polynomials
Time for action – fitting to polynomials
On-balance Volume
Time for action – balancing volume
Simulation
Time for action – avoiding loops with vectorize()
Smoothing
Time for action – smoothing with the hanning() function
Initialization
Time for action – creating value initialized arrays with the full() and full_like() functions
Summary
Chapter 5: Working with Matrices and ufuncs
Matrices
Time for action – creating matrices
Creating a matrix from other matrices
Time for action – creating a matrix from other matrices
Universal functions
Time for action – creating universal functions
Universal function methods
Time for action – applying the ufunc methods on the add function
Arithmetic functions
Time for action – dividing arrays
Modulo operation
Time for action – computing the modulo
Fibonacci numbers
Time for action – computing Fibonacci numbers
Lissajous curves
Time for action – drawing Lissajous curves
Square waves
Time for action – drawing a square wave
Sawtooth and triangle waves
Time for action – drawing sawtooth and triangle waves
Bitwise and comparison functions
Time for action – twiddling bits
Fancy indexing
Time for action – fancy indexing in-place for ufuncs with the at() method
Summary
Chapter 6: Moving Further with NumPy Modules
Linear algebra
Time for action – inverting matrices
Solving linear systems
Time for action – solving a linear system
Finding eigenvalues and eigenvectors
Time for action – determining eigenvalues and eigenvectors
Singular value decomposition
Time for action – decomposing a matrix
Pseudo inverse
Time for action – computing the pseudo inverse of a matrix
Determinants
Time for action – calculating the determinant of a matrix
Fast Fourier transform
Time for action – calculating the Fourier transform
Shifting
Time for action – shifting frequencies
Random numbers
Time for action – gambling with the binomial
Hypergeometric distribution
Time for action – simulating a game show
Continuous distributions
Time for action – drawing a normal distribution
Lognormal distribution
Time for action – drawing the lognormal distribution
Bootstrapping in statistics
Time for action – sampling with numpy.random.choice()
Summary
Chapter 7: Peeking Into Special Routines
Sorting
Time for action – sorting lexically
Time for action – partial sorting via selection for a fast median with the partition() function
Complex numbers
Time for action – sorting complex numbers
Searching
Time for action – using searchsorted
Array elements extraction
Time for action – extracting elements from an array
Financial functions
Time for action – determining future value
Present value
Time for action – getting the present value
Net present value
Time for action – calculating the net present value
Internal rate of return
Time for action – determining the internal rate of return
Periodic payments
Time for action – calculating the periodic payments
Number of payments
Time for action – determining the number of periodic payments
Interest rate
Time for action – figuring out the rate
Window functions
Time for action – plotting the Bartlett window
Blackman window
Time for action – smoothing stock prices with the Blackman window
Hamming window
Time for action – plotting the Hamming window
Kaiser window
Time for action – plotting the Kaiser window
Special mathematical functions
Time for action – plotting the modified Bessel function
Sinc
Time for action – plotting the sinc function
Summary
Chapter 8: Assure Quality with Testing
Assert functions
Time for action – asserting almost equal
Approximately equal arrays
Time for action – asserting approximately equal
Almost equal arrays
Time for action – asserting arrays almost equal
Equal arrays
Time for action – comparing arrays
Ordering arrays
Time for action – checking the array order
Objects comparison
Time for action – comparing objects
String comparison
Time for action – comparing strings
Floating-point comparisons
Time for action – comparing with assert_array_almost_equal_nulp
Comparison of floats with more ULPs
Time for action – comparing using maxulp of 2
Unit tests
Time for action – writing a unit test
Nose tests decorators
Time for action – decorating tests
Docstrings
Time for action – executing doctests
Summary
Chapter 9: Plotting with matplotlib
Simple plots
Time for action – plotting a polynomial function
Plot format string
Time for action – plotting a polynomial and its derivative
Subplots
Time for action – plotting a polynomial and its derivatives
Finance
Time for action – plotting a year's worth of stock quotes
Histograms
Time for action – charting stock price distributions
Logarithmic plots
Time for action – plotting stock volume
Scatter plots
Time for action – plotting price and volume returns with a scatter plot
Fill between
Time for action – shading plot regions based on a condition
Legend and annotations
Time for action – using a legend and annotations
Three-dimensional plots
Time for action – plotting in three dimension
Contour plots
Time for action – drawing a filled contour plot
Animation
Time for action – animating plots
Summary
Chapter 10: When NumPy is Not Enough – SciPy and Beyond
MATLAB and Octave
Time for action – saving and loading a .mat file
Statistics
Time for action – analyzing random values
Samples comparison and SciKits
Time for action – comparing stock log returns
Signal processing
Time for action – detecting a trend in QQQ
Fourier analysis
Time for action – filtering a detrended signal
Mathematical optimization
Time for action – fitting to a sine
Numerical integration
Time for action – calculating the Gaussian integral
Interpolation
Time for action – interpolating in one dimension
Image processing
Time for action – manipulating Lena
Audio processing
Time for action – replaying audio clips
Summary
Chapter 11: Playing with Pygame
Pygame
Time for action – installing Pygame
Hello World
Time for action – creating a simple game
Animation
Time for action – animating objects with NumPy and Pygame
matplotlib
Time for Action – using matplotlib in Pygame
Surface pixels
Time for Action – accessing surface pixel data with NumPy
Artificial Intelligence
Time for Action – clustering points
OpenGL and Pygame
Time for Action – drawing the Sierpinski gasket
Simulation Game with Pygame
Time for Action – simulating life
Summary
Appendix A: Pop Quiz Answers
Appendix B: Additional Online Resources
Python
Mathematics and statistics
Appendix C: NumPy Functions' References
Index