Num Py Beginner's Guide(3rd)
User Manual:
Open the PDF directly: View PDF
Page Count: 348 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Table of Contents
- Preface
- 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
- 2: Beginning with NumPy Fundamentals
- NumPy array object
- Time for action – creating a multidimensional array
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Appendix C: NumPy Functions' References
- Index