Foreword
- Who is this book for?
- About the author
- Keep in touch
1 Introduction to NumPy
- 1.1 Installing NumPy
- 1.2 What is NumPy?
- 1.3 NumPy vs Python lists
- 1.4 Advantages of NumPy
- 1.5 NumPy universal functions
- 1.6 Compatibility with other libraries
2 Anatomy of a NumPy array
- 2.1 NumPy arrays compared to lists
- 2.2 Printing the characteristics of an array
- 2.2.1 Rank
- 2.2.2 Shape
- 2.2.3 Size
- 2.2.4 Data type
- 2.2.5 Item size
- 2.2.6 Data location
- 2.3 Array rank examples
- 2.4 Data types
- 2.4.1 Integers
- 2.4.2 Unsigned integers
- 2.4.3 Floating point values
- 2.4.4 Complex number formats
- 2.4.5 Boolean
- 2.4.6 List of main data types
3 Creating arrays
- 3.1 Creating an array of zeroes
- 3.2 Creating other fixed content arrays
- 3.3 Choosing the data type
- 3.4 Creating multi-dimensional arrays
- 3.5 Creating like arrays
- 3.6 Creating an array from a Python list
- 3.7 Controlling the type with the array function
- 3.8 array function anti-patterns
- 3.9 Creating a value series with arange
- 3.10 Rounding error problem with arange
- 3.11 Create a sequence of a specific length with linspace
- 3.12 Making linspace more like arange using the endpoint parameter
- 3.13 Obtaining the linspace step size
- 3.14 Other sequence generators
- 3.15 Creating an identity matrix
- 3.16 Creating an eye matrix
- 3.17 Using vectorisation
4 Vectorisation
- 4.1 Performing simple maths on an array
- 4.2 Vectorisation with other data types
- 4.3 Vectorisation with multi-dimensional arrays
- 4.4 Expressions using two arrays
- 4.5 Expressions using two multi-dimensional arrays
- 4.6 More complex expressions
- 4.7 Using conditional operators
- 4.8 Combining conditional operators
5 Universal functions
- 5.1 Example universal function - sqrt
- 5.2 Example universal function of two arguments - power
- 5.3 Summary of ufuncs
- 5.3.1 Maths operations
- 5.3.2 Trigonometric functions
- 5.3.3 Bit manipulation
- 5.3.4 Comparison functions
- 5.3.5 Logical functions
- 5.3.6 Min and max
- 5.3.7 Float functions
- 5.4 ufunc methods
- 5.4.1 Reduce
- 5.4.2 Accumulation
- 5.5 Optional keyword arguments for ufuncs
- 5.5.1 out
- 5.5.2 where
6 Indexing, slicing and broadcasting
- 6.1 Indexing an array
- 6.1.1 Indexing in 1 dimension
- 6.1.2 Indexing in 2 dimensions
- 6.1.3 Picking a row or column in 2-dimensions
- 6.1.4 Indexing in 3 dimensions
- 6.1.5 Picking a row or column in a 3D array
- 6.1.6 Picking a matrix in a 3D array
- 6.2 Slicing an array
- 6.2.1 Slicing lists - a recap
- 6.2.2 Slicing 1D NumPy arrays
- 6.2.3 Slicing a 2D array
- 6.2.4 Slicing a 3D array
- 6.2.5 Full slices
- 6.3 Slices vs indexing
- 6.4 Views
- 6.5 Broadcasting
- 6.5.1 Broadcasting from 1 to 2 dimensions
- 6.5.2 Broadcasting 1 to 3 dimensions
- 6.5.3 Broadcasting 2 to 3 dimensions
- 6.6 Broadcasting rules
- 6.7 Broadcasting a column vector
- 6.8 Broadcasting a row vector and a column vector
- 6.9 Broadcasting scalars
- 6.10 Efficient broadcasting
- 6.11 Fancy indexing
7 Array manipulation functions
- 7.1 Copying an array
- 7.2 Changing the type of an array
- 7.3 Changing the shape of an array
- 7.4 Splitting arrays
- 7.4.1 Splitting along different axes
- 7.4.2 Unequal splits
- 7.4.3 Alternative functions
- 7.5 Stacking arrays
- 7.5.1 Stacking 2-dimensional arrays
8 File input and output
- 8.1 CSV format
- 8.2 Writing CSV data
- 8.2.1 Adding a header or footer
- 8.2.2 Changing the line separator
- 8.2.3 Compressing the output file
- 8.3 Reading CSV data
- 8.3.1 Skipping header or footer
- 8.3.2 Reading compressing file
9 Using Matplotlib with NumPy
- 9.1 Installing Matplotlib
- 9.2 Plotting a histogram
- 9.3 Plotting functions
- 9.4 Plotting functions with NumPy
- 9.5 Creating a heatmap
10 Reference
- 10.1 Data types
- 10.1.1 Unsigned integer sizes and ranges
- 10.1.2 Signed integer sizes and ranges
- 10.1.3 Integer wrap-around
- 10.1.4 Float characteristics
- 10.1.5 Complex characteristics