diff --git a/featured/01_numpy_performance.ipynb b/featured/01_numpy_performance.ipynb index b729fb0..d151be8 100644 --- a/featured/01_numpy_performance.ipynb +++ b/featured/01_numpy_performance.ipynb @@ -1,1160 +1,1191 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:c320db1f9e67f49f604975c321ab723db6b6d429cebb93f390129c1d7e3e6366" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Featured Recipe #1: Getting the Best Performance out of NumPy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This is the first featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**NumPy** is the cornerstone of the scientific Python software stack. It provides a special data type optimized for vector computations, the `ndarray`. This object is at the core of most algorithms in scientific numerical computing.\n", - "\n", - "With NumPy arrays, you can achieve significant performance speedups over native Python, particularly when your computations follow the ***Single Instruction, Multiple Data* (SIMD)** paradigm. However, it is also possible to unintentionally write non-optimized code with NumPy.\n", - "\n", - "In this featured recipe, we will see some tricks that can help you write optimized NumPy code. We will start by looking at ways to avoid unnecessary array copies in order to save time and memory. In that respect, we will need to dig into the internals of NumPy." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Learning to avoid unnecessary array copies" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Computations with NumPy arrays may involve internal copies between blocks of memory. These copies are not always necessary, in which case they should be avoided. Here are a few tips that can help you optimize your code accordingly." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy as np" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Inspect the memory address of arrays" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1.\tThe first step when looking for silent array copies is to find out the location of arrays in memory. The following function does just that:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def id(x):\n", - " # This function returns the memory\n", - " # block address of an array.\n", - " return x.__array_interface__['data'][0]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2.\tYou may sometimes need to make a copy of an array, for instance if you need to manipulate an array while keeping an original copy in memory." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a = np.zeros(10); aid = id(a); aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 4, - "text": [ - "71211328" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "b = a.copy(); id(b) == aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 5, - "text": [ - "False" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Two arrays with the same data location (as returned by `id`) share the underlying data buffer. However, the opposite is only true if the arrays have the same **offset** (meaning that they have the same first element). Two shared arrays with different offsets will have slightly different memory locations, as shown in the following example:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "id(a), id(a[1:])" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 6, - "text": [ - "(71211328, 71211336)" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this recipe, we'll make sure to use this method with arrays that have the same offset. Here is a more reliable solution for finding out if two arrays share the same data:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def get_data_base(arr):\n", - " \"\"\"For a given Numpy array, finds the\n", - " base array that \"owns\" the actual data.\"\"\"\n", - " base = arr\n", - " while isinstance(base.base, np.ndarray):\n", - " base = base.base\n", - " return base\n", - "\n", - "def arrays_share_data(x, y):\n", - " return get_data_base(x) is get_data_base(y)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 7 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(arrays_share_data(a,a.copy()),\n", - " arrays_share_data(a,a[1:]))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "False True\n" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Thanks to [Michael Droettboom](https://github.com/ipython-books/cookbook-code/issues/2) for pointing out this precision and proposing this alternative solution." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### In-place and implicit copy operations" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3.\tArray computations can involve in-place operations (first example below: the array is modified) or implicit-copy operations (second example: a new array is created)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a *= 2; id(a) == aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 5, - "text": [ - "True" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "c = a * 2; id(c) == aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 6, - "text": [ - "False" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Be sure to choose the type of operation you actually need. Implicit-copy operations are significantly slower, as shown here:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%timeit a = np.zeros(10000000)\n", - "a *= 2" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "10 loops, best of 3: 19.2 ms per loop\n" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%timeit a = np.zeros(10000000)\n", - "b = a * 2" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "10 loops, best of 3: 42.6 ms per loop\n" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4.\tReshaping an array may or may not involve a copy. The reasons will be explained below. For instance, reshaping a 2D matrix does not involve a copy, unless it is transposed (or more generally non-contiguous):" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a = np.zeros((10, 10)); aid = id(a); aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "text": [ - "53423728" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Reshaping an array while preserving its order does not trigger a copy." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "b = a.reshape((1, -1)); id(b) == aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 10, - "text": [ - "True" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Transposing an array changes its order so that a reshape triggers a copy." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "c = a.T.reshape((1, -1)); id(c) == aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 11, - "text": [ - "False" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Therefore, the latter instruction will be significantly slower than the former." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5.\tThe flatten and ravel methods of an array reshape it into a 1D vector (flattened array). The former method always returns a copy, whereas the latter returns a copy only if necessary (so it's significantly faster too, especially with large arrays)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d = a.flatten(); id(d) == aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 12, - "text": [ - "False" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "e = a.ravel(); id(e) == aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 13, - "text": [ - "True" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit a.flatten()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "1000000 loops, best of 3: 881 ns per loop\n" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit a.ravel()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "1000000 loops, best of 3: 294 ns per loop\n" - ] - } - ], - "prompt_number": 15 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Broadcasting rules" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. **Broadcasting rules** allow you to make computations on arrays with different but compatible shapes. In other words, you don't always need to reshape or tile your arrays to make their shapes match. The following example illustrates two ways of doing an outer product between two vectors: the first method involves array tiling, the second one involves broadcasting. The last method is significantly faster." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "n = 1000" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 16 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a = np.arange(n)\n", - "ac = a[:, np.newaxis]\n", - "ar = a[np.newaxis, :]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 17 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit np.tile(ac, (1, n)) * np.tile(ar, (n, 1))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "100 loops, best of 3: 10 ms per loop\n" - ] - } - ], - "prompt_number": 18 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit ar * ac" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "100 loops, best of 3: 2.36 ms per loop\n" - ] - } - ], - "prompt_number": 19 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Making efficient selections in arrays with NumPy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "NumPy offers multiple ways of selecting slices of arrays. Array views refer to the original data buffer of an array, but with different offsets, shapes and strides. They only permit strided selections (i.e. with linearly spaced indices). NumPy also offers specific functions to make arbitrary selections along one axis. Finally, fancy indexing is the most general selection method, but it is also the slowest as we will see in this recipe. Faster alternatives should be chosen when possible." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1.\tLet's create an array with a large number of rows. We will select slices of this array along the first dimension." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "n, d = 100000, 100" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 23 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a = np.random.random_sample((n, d)); aid = id(a)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 24 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Array views and fancy indexing" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2.\tLet's select one every ten rows, using two different methods (array view and fancy indexing)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "b1 = a[::10]\n", - "b2 = a[np.arange(0, n, 10)]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 25 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "np.array_equal(b1, b2)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 26, - "text": [ - "True" - ] - } - ], - "prompt_number": 26 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3.\tThe view refers to the original data buffer, whereas fancy indexing yields a copy." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "id(b1) == aid, id(b2) == aid" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 27, - "text": [ - "(True, False)" - ] - } - ], - "prompt_number": 27 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4.\tLet's compare the performance of both methods." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit a[::10]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "1000000 loops, best of 3: 804 ns per loop\n" - ] - } - ], - "prompt_number": 28 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit a[np.arange(0, n, 10)]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "100 loops, best of 3: 14.1 ms per loop\n" - ] - } - ], - "prompt_number": 29 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Fancy indexing is several orders of magnitude slower as it involves copying a large array." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Alternatives to fancy indexing: list of indices" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5.\tWhen non-strided selections need to be done along one dimension, array views are not an option. However, alternatives to fancy indexing still exist in this case. Given a list of indices, NumPy's function take performs a selection along one axis." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "i = np.arange(0, n, 10)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 30 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "b1 = a[i]\n", - "b2 = np.take(a, i, axis=0)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 31 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "np.array_equal(b1, b2)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 32, - "text": [ - "True" - ] - } - ], - "prompt_number": 32 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The second method is faster:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit a[i]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "100 loops, best of 3: 13 ms per loop\n" - ] - } - ], - "prompt_number": 33 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit np.take(a, i, axis=0)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "100 loops, best of 3: 4.87 ms per loop\n" - ] - } - ], - "prompt_number": 34 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Alternatives to fancy indexing: mask of booleans" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6.\tWhen the indices to select along one axis are specified by a vector of boolean masks, the function `compress` is an alternative to fancy indexing." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "i = np.random.random_sample(n) < .5" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 35 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The selection can be made using fancy indexing or the `np.compress` function." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "b1 = a[i]\n", - "b2 = np.compress(i, a, axis=0)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 36 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "np.array_equal(b1, b2)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 37, - "text": [ - "True" - ] - } - ], - "prompt_number": 37 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit a[i]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "10 loops, best of 3: 59.8 ms per loop\n" - ] - } - ], - "prompt_number": 38 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit np.compress(i, a, axis=0)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "10 loops, best of 3: 24.1 ms per loop\n" - ] - } - ], - "prompt_number": 39 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The second method is also significantly faster than fancy indexing." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Fancy indexing is the most general way of making completely arbitrary selections of an array. However, more specific and faster methods often exist and should be preferred when possible.\n", - "\n", - "Array views should be used whenever strided selections have to be done, but one needs to be careful about the fact that views refer to the original data buffer." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How it works?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this section, we will see what happens under the hood when using NumPy, and how this knowledge allows us to understand the tricks given in this recipe." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Why are NumPy arrays efficient?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A NumPy array is basically described by metadata (number of dimensions, shape, data type, and so on) and the actual data. The data is stored in a homogeneous and contiguous block of memory, at a particular address in system memory (*Random Access Memory*, or RAM). This block of memory is called the **data buffer**. This is the main difference with a pure Python structure, like a list, where the items are scattered across the system memory. This aspect is the critical feature that makes NumPy arrays so efficient.\n", - "\n", - "Why is this so important? Here are the main reasons:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1.\t**Array computations can be written very efficiently in a low-level language like C** (and a large part of NumPy is actually written in C). Knowing the address of the memory block and the data type, it is just simple arithmetic to loop over all items, for example. There would be a significant overhead to do that in Python with a list.\n", - "\n", - "2.\t**Spatial locality in memory access patterns** results in significant performance gains, notably thanks to the CPU cache. Indeed, the cache loads bytes in chunks from RAM to the CPU registers. Adjacent items are then loaded very efficiently (sequential locality, or locality of reference).\n", - "\n", - "3.\t**Data elements are stored contiguously in memory**, so that NumPy can take advantage of vectorized instructions on modern CPUs, like Intel's SSE and AVX, AMD's XOP, and so on. For example, multiple consecutive floating point numbers can be loaded in 128, 256 or 512 bits registers for vectorized arithmetical computations implemented as CPU instructions." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Additionally, let's mention the fact that NumPy can be linked to highly optimized linear algebra libraries like *BLAS* and *LAPACK*, for example through the *Intel Math Kernel Library (MKL)*. A few specific matrix computations may also be multithreaded, taking advantage of the power of modern multicore processors." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In conclusion, **storing data in a contiguous block of memory ensures that the architecture of modern CPUs is used optimally, in terms of memory access patterns, CPU cache, and vectorized instructions**." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### What is the difference between in-place and implicit-copy operations?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's explain trick 3. An expression like `a *= 2` corresponds to an in-place operation, where all values of the array are multiplied by two. By contrast, `a = a * 2` means that a new array containing the values of `a * 2` is created, and the variable a now points to this new array. The old array becomes unreferenced and will be deleted by the garbage collector. No memory allocation happens in the first case, contrary to the second case." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "More generally, expressions like `a[i:j]` are views to parts of an array: they point to the memory buffer containing the data. Modifying them with in-place operations changes the original array. Hence, `a[:] = a * 2` results in an in-place operation, unlike `a = a * 2`." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Knowing this subtlety of NumPy can help you fix some bugs (where an array is implicitly and unintentionally modified because of an operation on a view), and optimize the speed and memory consumption of your code by reducing the number of unnecessary copies." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Why cannot some arrays be reshaped without a copy?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We explain here trick 4, where a transposed 2D matrix cannot be flattened without a copy. A 2D matrix contains items indexed by two numbers (row and column), but it is stored internally as a 1D contiguous block of memory, accessible with a single number. There is more than one way of storing matrix items in a 1D block of memory: we can put the elements of the first row first, the second row then, and so on, or the elements of the first column first, the second column then, and so on. The first method is called row-major order, whereas the latter is called column-major order. Choosing between the two methods is only a matter of internal convention: NumPy uses the row-major order, like C, but unlike FORTRAN." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![Array layout](images/layout.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "More generally, NumPy uses the notion of **strides** to convert between a multidimensional index and the memory location of the underlying (1D) sequence of elements. The specific mapping between `array[i1, i2]` and the relevant byte address of the internal data is given by\n", - "\n", - "``\n", - "offset = array.strides[0] * i1 + array.strides[1] * i2\n", - "``\n", - "\n", - "When reshaping an array, NumPy avoids copies when possible by modifying the ``strides`` attribute. For example, when transposing a matrix, the order of ``strides`` is reversed, but the underlying data remains identical. However, flattening a transposed array cannot be accomplished simply by modifying ``strides`` (try it!), so a copy is needed (thanks to [Chris Beaumont](http://chrisbeaumont.org/) from Harvard for clarifying an earlier version of this paragraph).\n", - "\n", - "[Recipe 4.6](http://nbviewer.ipython.org/github/ipython-books/cookbook-code/blob/master/notebooks/chapter04_optimization/06_stride_tricks.ipynb) (*Using stride tricks with NumPy*) contains a more extensive discussion on strides. Also, [recipe 4.7](http://nbviewer.ipython.org/github/ipython-books/cookbook-code/blob/master/notebooks/chapter04_optimization/07_rolling_average.ipynb) (*Implementing an efficient rolling average algorithm with stride tricks*) shows how one can use strides to accelerate particular array computations." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Internal array layout can also explain some unexpected performance discrepancies between very similar NumPy operations. As a small exercise, can you explain the following benchmarks?" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a = np.random.rand(5000, 5000)\n", - "%timeit a[0,:].sum()\n", - "%timeit a[:,0].sum()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "100000 loops, best of 3: 9.57 \u00b5s per loop\n", - "10000 loops, best of 3: 68.3 \u00b5s per loop" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\n" - ] - } - ], - "prompt_number": 40 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### What are NumPy broadcasting rules?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Broadcasting rules describe how arrays with different dimensions and/or shapes can still be used for computations. The general rule is that two dimensions are compatible when they are equal, or when one of them is 1. NumPy uses this rule to compare the shapes of the two arrays element-wise, starting with the trailing dimensions and working its way forward. The smallest dimension is internally stretched to match the other dimension, but this operation does not involve any memory copy." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## References\n", - "\n", - "Here are a few references:\n", - "\n", - "* [NumPy performance tricks](http://cyrille.rossant.net/numpy-performance-tricks/).\n", - "* [Locality of reference](http://en.wikipedia.org/wiki/Locality_of_reference).\n", - "* [Internals of NumPy in the SciPy lectures notes](http://scipy-lectures.github.io/advanced/advanced_numpy/).\n", - "* [100 NumPy exercices](http://www.loria.fr/~rougier/teaching/numpy.100/index.html).\n", - "* [Broadcasting rules and examples](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html).\n", - "* [Array interface in NumPy](http://docs.scipy.org/doc/numpy/reference/arrays.interface.html).\n", - "* [The complete list of NumPy routines is available on the NumPy Reference Guide](http://docs.scipy.org/doc/numpy/reference/).\n", - "* [List of indexing routines](http://docs.scipy.org/doc/numpy/reference/routines.indexing.html)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You will find related recipes on the [book's repository](https://github.com/ipython-books/cookbook-code)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Featured Recipe #1: Getting the Best Performance out of NumPy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is the first featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**NumPy** is the cornerstone of the scientific Python software stack. It provides a special data type optimized for vector computations, the `ndarray`. This object is at the core of most algorithms in scientific numerical computing.\n", + "\n", + "With NumPy arrays, you can achieve significant performance speedups over native Python, particularly when your computations follow the ***Single Instruction, Multiple Data* (SIMD)** paradigm. However, it is also possible to unintentionally write non-optimized code with NumPy.\n", + "\n", + "In this featured recipe, we will see some tricks that can help you write optimized NumPy code. We will start by looking at ways to avoid unnecessary array copies in order to save time and memory. In that respect, we will need to dig into the internals of NumPy." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Learning to avoid unnecessary array copies" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Computations with NumPy arrays may involve internal copies between blocks of memory. These copies are not always necessary, in which case they should be avoided. Here are a few tips that can help you optimize your code accordingly." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Inspect the memory address of arrays" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1.\tThe first step when looking for silent array copies is to find out the location of arrays in memory. The following function does just that:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def id(x):\n", + " # This function returns the memory\n", + " # block address of an array.\n", + " return x.__array_interface__['data'][0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2.\tYou may sometimes need to make a copy of an array, for instance if you need to manipulate an array while keeping an original copy in memory." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "71211328" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a = np.zeros(10); aid = id(a); aid" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "b = a.copy(); id(b) == aid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Two arrays with the same data location (as returned by `id`) share the underlying data buffer. However, the opposite is only true if the arrays have the same **offset** (meaning that they have the same first element). Two shared arrays with different offsets will have slightly different memory locations, as shown in the following example:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(71211328, 71211336)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "id(a), id(a[1:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this recipe, we'll make sure to use this method with arrays that have the same offset. Here is a more reliable solution for finding out if two arrays share the same data:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def get_data_base(arr):\n", + " \"\"\"For a given Numpy array, finds the\n", + " base array that \"owns\" the actual data.\"\"\"\n", + " base = arr\n", + " while isinstance(base.base, np.ndarray):\n", + " base = base.base\n", + " return base\n", + "\n", + "def arrays_share_data(x, y):\n", + " return get_data_base(x) is get_data_base(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False True\n" + ] + } + ], + "source": [ + "print(arrays_share_data(a,a.copy()),\n", + " arrays_share_data(a,a[1:]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Thanks to [Michael Droettboom](https://github.com/ipython-books/cookbook-code/issues/2) for pointing out this precision and proposing this alternative solution." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### In-place and implicit copy operations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3.\tArray computations can involve in-place operations (first example below: the array is modified) or implicit-copy operations (second example: a new array is created)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a *= 2; id(a) == aid" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c = a * 2; id(c) == aid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Be sure to choose the type of operation you actually need. Implicit-copy operations are significantly slower, as shown here:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 loops, best of 3: 19.2 ms per loop\n" + ] + } + ], + "source": [ + "%%timeit a = np.zeros(10000000)\n", + "a *= 2" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 loops, best of 3: 42.6 ms per loop\n" + ] + } + ], + "source": [ + "%%timeit a = np.zeros(10000000)\n", + "b = a * 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4.\tReshaping an array may or may not involve a copy. The reasons will be explained below. For instance, reshaping a 2D matrix does not involve a copy, unless it is transposed (or more generally non-contiguous):" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "53423728" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a = np.zeros((10, 10)); aid = id(a); aid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Reshaping an array while preserving its order does not trigger a copy." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "b = a.reshape((1, -1)); id(b) == aid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Transposing an array changes its order so that a reshape triggers a copy." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c = a.T.reshape((1, -1)); id(c) == aid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Therefore, the latter instruction will be significantly slower than the former." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5.\tThe flatten and ravel methods of an array reshape it into a 1D vector (flattened array). The former method always returns a copy, whereas the latter returns a copy only if necessary (so it's significantly faster too, especially with large arrays)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d = a.flatten(); id(d) == aid" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "e = a.ravel(); id(e) == aid" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1000000 loops, best of 3: 881 ns per loop\n" + ] + } + ], + "source": [ + "%timeit a.flatten()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1000000 loops, best of 3: 294 ns per loop\n" + ] + } + ], + "source": [ + "%timeit a.ravel()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Broadcasting rules" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. **Broadcasting rules** allow you to make computations on arrays with different but compatible shapes. In other words, you don't always need to reshape or tile your arrays to make their shapes match. The following example illustrates two ways of doing an outer product between two vectors: the first method involves array tiling, the second one involves broadcasting. The last method is significantly faster." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "n = 1000" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "a = np.arange(n)\n", + "ac = a[:, np.newaxis]\n", + "ar = a[np.newaxis, :]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100 loops, best of 3: 10 ms per loop\n" + ] + } + ], + "source": [ + "%timeit np.tile(ac, (1, n)) * np.tile(ar, (n, 1))" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100 loops, best of 3: 2.36 ms per loop\n" + ] + } + ], + "source": [ + "%timeit ar * ac" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Making efficient selections in arrays with NumPy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NumPy offers multiple ways of selecting slices of arrays. Array views refer to the original data buffer of an array, but with different offsets, shapes and strides. They only permit strided selections (i.e. with linearly spaced indices). NumPy also offers specific functions to make arbitrary selections along one axis. Finally, fancy indexing is the most general selection method, but it is also the slowest as we will see in this recipe. Faster alternatives should be chosen when possible." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1.\tLet's create an array with a large number of rows. We will select slices of this array along the first dimension." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "n, d = 100000, 100" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "a = np.random.random_sample((n, d)); aid = id(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Array views and fancy indexing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2.\tLet's select one every ten rows, using two different methods (array view and fancy indexing)." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "b1 = a[::10]\n", + "b2 = a[np.arange(0, n, 10)]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array_equal(b1, b2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3.\tThe view refers to the original data buffer, whereas fancy indexing yields a copy." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(True, False)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "id(b1) == aid, id(b2) == aid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4.\tLet's compare the performance of both methods." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1000000 loops, best of 3: 804 ns per loop\n" + ] + } + ], + "source": [ + "%timeit a[::10]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100 loops, best of 3: 14.1 ms per loop\n" + ] + } + ], + "source": [ + "%timeit a[np.arange(0, n, 10)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fancy indexing is several orders of magnitude slower as it involves copying a large array." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Alternatives to fancy indexing: list of indices" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5.\tWhen non-strided selections need to be done along one dimension, array views are not an option. However, alternatives to fancy indexing still exist in this case. Given a list of indices, NumPy's function take performs a selection along one axis." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "i = np.arange(0, n, 10)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "b1 = a[i]\n", + "b2 = np.take(a, i, axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array_equal(b1, b2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The second method is faster:" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100 loops, best of 3: 13 ms per loop\n" + ] + } + ], + "source": [ + "%timeit a[i]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100 loops, best of 3: 4.87 ms per loop\n" + ] + } + ], + "source": [ + "%timeit np.take(a, i, axis=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Alternatives to fancy indexing: mask of booleans" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6.\tWhen the indices to select along one axis are specified by a vector of boolean masks, the function `compress` is an alternative to fancy indexing." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "i = np.random.random_sample(n) < .5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The selection can be made using fancy indexing or the `np.compress` function." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "b1 = a[i]\n", + "b2 = np.compress(i, a, axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array_equal(b1, b2)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 loops, best of 3: 59.8 ms per loop\n" + ] + } + ], + "source": [ + "%timeit a[i]" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 loops, best of 3: 24.1 ms per loop\n" + ] + } + ], + "source": [ + "%timeit np.compress(i, a, axis=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The second method is also significantly faster than fancy indexing." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fancy indexing is the most general way of making completely arbitrary selections of an array. However, more specific and faster methods often exist and should be preferred when possible.\n", + "\n", + "Array views should be used whenever strided selections have to be done, but one needs to be careful about the fact that views refer to the original data buffer." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How it works?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this section, we will see what happens under the hood when using NumPy, and how this knowledge allows us to understand the tricks given in this recipe." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Why are NumPy arrays efficient?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A NumPy array is basically described by metadata (number of dimensions, shape, data type, and so on) and the actual data. The data is stored in a homogeneous and contiguous block of memory, at a particular address in system memory (*Random Access Memory*, or RAM). This block of memory is called the **data buffer**. This is the main difference with a pure Python structure, like a list, where the items are scattered across the system memory. This aspect is the critical feature that makes NumPy arrays so efficient.\n", + "\n", + "Why is this so important? Here are the main reasons:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1.\t**Array computations can be written very efficiently in a low-level language like C** (and a large part of NumPy is actually written in C). Knowing the address of the memory block and the data type, it is just simple arithmetic to loop over all items, for example. There would be a significant overhead to do that in Python with a list.\n", + "\n", + "2.\t**Spatial locality in memory access patterns** results in significant performance gains, notably thanks to the CPU cache. Indeed, the cache loads bytes in chunks from RAM to the CPU registers. Adjacent items are then loaded very efficiently (sequential locality, or locality of reference).\n", + "\n", + "3.\t**Data elements are stored contiguously in memory**, so that NumPy can take advantage of vectorized instructions on modern CPUs, like Intel's SSE and AVX, AMD's XOP, and so on. For example, multiple consecutive floating point numbers can be loaded in 128, 256 or 512 bits registers for vectorized arithmetical computations implemented as CPU instructions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Additionally, let's mention the fact that NumPy can be linked to highly optimized linear algebra libraries like *BLAS* and *LAPACK*, for example through the *Intel Math Kernel Library (MKL)*. A few specific matrix computations may also be multithreaded, taking advantage of the power of modern multicore processors." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In conclusion, **storing data in a contiguous block of memory ensures that the architecture of modern CPUs is used optimally, in terms of memory access patterns, CPU cache, and vectorized instructions**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the difference between in-place and implicit-copy operations?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's explain trick 3. An expression like `a *= 2` corresponds to an in-place operation, where all values of the array are multiplied by two. By contrast, `a = a * 2` means that a new array containing the values of `a * 2` is created, and the variable a now points to this new array. The old array becomes unreferenced and will be deleted by the garbage collector. No memory allocation happens in the first case, contrary to the second case." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "More generally, expressions like `a[i:j]` are views to parts of an array: they point to the memory buffer containing the data. Modifying them with in-place operations changes the original array. Hence, `a[:] = a * 2` results in an in-place operation, unlike `a = a * 2`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Knowing this subtlety of NumPy can help you fix some bugs (where an array is implicitly and unintentionally modified because of an operation on a view), and optimize the speed and memory consumption of your code by reducing the number of unnecessary copies." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Why cannot some arrays be reshaped without a copy?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We explain here trick 4, where a transposed 2D matrix cannot be flattened without a copy. A 2D matrix contains items indexed by two numbers (row and column), but it is stored internally as a 1D contiguous block of memory, accessible with a single number. There is more than one way of storing matrix items in a 1D block of memory: we can put the elements of the first row first, the second row then, and so on, or the elements of the first column first, the second column then, and so on. The first method is called row-major order, whereas the latter is called column-major order. Choosing between the two methods is only a matter of internal convention: NumPy uses the row-major order, like C, but unlike FORTRAN." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Array layout](images/layout.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "More generally, NumPy uses the notion of **strides** to convert between a multidimensional index and the memory location of the underlying (1D) sequence of elements. The specific mapping between `array[i1, i2]` and the relevant byte address of the internal data is given by\n", + "\n", + "``\n", + "offset = array.strides[0] * i1 + array.strides[1] * i2\n", + "``\n", + "\n", + "When reshaping an array, NumPy avoids copies when possible by modifying the ``strides`` attribute. For example, when transposing a matrix, the order of ``strides`` is reversed, but the underlying data remains identical. However, flattening a transposed array cannot be accomplished simply by modifying ``strides`` (try it!), so a copy is needed (thanks to [Chris Beaumont](http://chrisbeaumont.org/) from Harvard for clarifying an earlier version of this paragraph).\n", + "\n", + "[Recipe 4.6](http://nbviewer.ipython.org/github/ipython-books/cookbook-code/blob/master/notebooks/chapter04_optimization/06_stride_tricks.ipynb) (*Using stride tricks with NumPy*) contains a more extensive discussion on strides. Also, [recipe 4.7](http://nbviewer.ipython.org/github/ipython-books/cookbook-code/blob/master/notebooks/chapter04_optimization/07_rolling_average.ipynb) (*Implementing an efficient rolling average algorithm with stride tricks*) shows how one can use strides to accelerate particular array computations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Internal array layout can also explain some unexpected performance discrepancies between very similar NumPy operations. As a small exercise, can you explain the following benchmarks?" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100000 loops, best of 3: 9.57 µs per loop\n", + "10000 loops, best of 3: 68.3 µs per loop\n" + ] + } + ], + "source": [ + "a = np.random.rand(5000, 5000)\n", + "%timeit a[0,:].sum()\n", + "%timeit a[:,0].sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What are NumPy broadcasting rules?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Broadcasting rules describe how arrays with different dimensions and/or shapes can still be used for computations. The general rule is that two dimensions are compatible when they are equal, or when one of them is 1. NumPy uses this rule to compare the shapes of the two arrays element-wise, starting with the trailing dimensions and working its way forward. The smallest dimension is internally stretched to match the other dimension, but this operation does not involve any memory copy." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "Here are a few references:\n", + "\n", + "* [NumPy performance tricks](http://cyrille.rossant.net/numpy-performance-tricks/).\n", + "* [Locality of reference](http://en.wikipedia.org/wiki/Locality_of_reference).\n", + "* [Internals of NumPy in the SciPy lectures notes](http://scipy-lectures.github.io/advanced/advanced_numpy/).\n", + "* [100 NumPy exercices](http://www.loria.fr/~rougier/teaching/numpy.100/index.html).\n", + "* [Broadcasting rules and examples](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html).\n", + "* [Array interface in NumPy](http://docs.scipy.org/doc/numpy/reference/arrays.interface.html).\n", + "* [The complete list of NumPy routines is available on the NumPy Reference Guide](http://docs.scipy.org/doc/numpy/reference/).\n", + "* [List of indexing routines](http://docs.scipy.org/doc/numpy/reference/routines.indexing.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You will find related recipes on the [book's repository](https://github.com/ipython-books/cookbook-code)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/featured/02_energy_minimization.ipynb b/featured/02_energy_minimization.ipynb index b1a7896..86507cc 100644 --- a/featured/02_energy_minimization.ipynb +++ b/featured/02_energy_minimization.ipynb @@ -1,464 +1,2346 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:c3988cd397e48e33d946a4c9fb92e2213d7b17f8169e61bcf82130bd30f78e9f" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Featured Recipe #2: Simulating a Physical System by Minimizing an Energy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Mathematical optimization is a wide area of applied mathematics. It consists in finding a best solution to a given problem. Many real-world problems can be expressed in an optimization framework." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this recipe, we show how to find the equilibrium configuration of a physical system by minimizing its potential energy. More specifically, we consider a structure made of masses and springs, attached to a vertical wall and subject to gravity. Starting from an initial position, we want to find the equilibrium configuration where the gravity and elastic forces compensate." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How to do it..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Let's import NumPy, SciPy and matplotlib." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy as np\n", - "import scipy.optimize as opt\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. We define a few constants in the International System of Units." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "g = 9.81 # gravity of Earth\n", - "m = .1 # mass, in kg\n", - "n = 20 # number of masses\n", - "e = .1 # initial distance between the masses\n", - "l = e # relaxed length of the springs\n", - "k = 10000 # spring stiffness" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. We define the initial positions of the masses. They are arranged on a two-dimensional grid with two lines and $n/2$ columns." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "P0 = np.zeros((n, 2))\n", - "P0[:,0] = np.repeat(e*np.arange(n//2), 2)\n", - "P0[:,1] = np.tile((0,-e), n//2)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. Now, let's define the connectivity matrix between the masses. Coefficient $i,j$ is $1$ if masses $i$ and $j$ are connected by a spring." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "A = np.eye(n, n, 1) + np.eye(n, n, 2)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. We also specify the spring stiffness of each spring. It is $l$, except for *diagonal* springs where it is $l \\times \\sqrt{2}$." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "L = l * (np.eye(n, n, 1) + np.eye(n, n, 2))\n", - "for i in range(n//2-1):\n", - " L[2*i+1,2*i+2] *= np.sqrt(2)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. We also need the indices of the spring connections." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "I, J = np.nonzero(A)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. The `dist` function computes the distance matrix (distance between any pair of masses)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dist = lambda P: np.sqrt((P[:,0]-P[:,0][:, np.newaxis])**2 + \n", - " (P[:,1]-P[:,1][:, np.newaxis])**2)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. We define a function that displays the system. The springs are colored according to their tension." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def show_bar(P):\n", - " plt.figure(figsize=(5,4));\n", - " # Wall.\n", - " plt.axvline(0, color='k', lw=3);\n", - " # Distance matrix.\n", - " D = dist(P)\n", - " # We plot the springs.\n", - " for i, j in zip(I, J):\n", - " # The color depends on the spring tension, which\n", - " # is proportional to the spring elongation.\n", - " c = D[i,j] - L[i,j]\n", - " plt.plot(P[[i,j],0], P[[i,j],1], \n", - " lw=2, color=plt.cm.copper(c*150));\n", - " # We plot the masses.\n", - " plt.plot(P[[I,J],0], P[[I,J],1], 'ok',);\n", - " # We configure the axes.\n", - " plt.axis('equal');\n", - " plt.xlim(P[:,0].min()-e/2, P[:,0].max()+e/2);\n", - " plt.ylim(P[:,1].min()-e/2, P[:,1].max()+e/2);\n", - " plt.xticks([]); plt.yticks([]);" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "9. Here is the system in its initial configuration." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "show_bar(P0);\n", - "plt.title(\"Initial configuration\");" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n8vJ5dgoAAAAApmm/dDfjXxqKbU+yeX7dAgAAAIDBHp3krCSPGfH190vyD+kPxb6d7imKAAAAALBw\nTsjtQdZXkrwuycOTrF/mNXdJ8sgkf5rk1vSHYtuTvGhanQYASJI18+4AAACr2glJPtazfVuSS5Jc\nne7Mr21JDkr35MmN6cKx5fxFkidPrJcAAAAAMGEnZPAZX6N+nZU9B2cAAGPba94dAACAnW5Jdynm\nzyb5wZz7AgA0YO95dwAAgFXtW0luSHeZ5D1GbGNrktOTPDPJ+yfULwCAPXKPMQAAJuWQJMenu/n+\n/ZIcneTIJPsl2Tfd2vP7Sa5LcnmSC5N8OsnZSW6afXcBAAAAAAAAAAAAAAAAAAAAAAAAAIBK5nbz\n/S1bthw6r30DAAAAsFg2bdp03az3uXbWO9zNtXPcNwAAAACLZeYncO016x0CAAAAwCKYaRK38/JJ\nZ4oBAAAAMMjdZ3VZpTPGAAAAAGjSPO8xliQ55phjsnbt3Lsxtmc961k5//zzV/z9D3vYw3L66adP\nsUcAAAAAi23btm25+OKL57b/uSdSa9euzT777DPvbozt5ptvzo033jjU91f4uQEAAABWK5dSAgAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRhbjg4yAAAgAElEQVQAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\nAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\nTRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\nAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\nwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\nANAkwRgAAAAATRKMAQAAANAkwRis0PXXX5/rr79+3t1ggoxpLcazFuNZi/Gsx5jWYjxrMZ613Hjj\njbnxxhvn3Y3S1s67A1Vs37593l1ggrZu3ZoXvvCFOfPMM7N169be71m/fn2e+MQn5i1veUvWr18/\n4x4yLGNai/GsxXjWYjzrMaa1GM9ajGctt9xyS1772tfmPe95T2644Ybe7zn44IPzjGc8I6985Suz\nbt26GfewpjWz3NmWLVsOTXLt7ts2btyYffbZZ5bdmKhzzjknr3vd63LRRRcN9br99tsv7373u/P4\nxz9+Sj1jFK9//evz5je/eWBRGWT9+vV50YtelJe97GVT6hmjMqa1GM9ajGctxrMeY1qL8azFeNZy\n6qmn5pRTThkYhg1y8MEH5+Uvf3me85znTKlns3Hrrbf2ZSp337Rp03Wz2L9gbETXXXddnvnMZ+aC\nCy4Yq53jjjsuZ5xxRg499NAJ9YxRXHLJJdm0aVNuvvnmsdrZd999s2XLlmzYsGFCPWNUxrQW41mL\n8azFeNZjTGsxnrUYz1ouv/zynHjiibnmmmvGauewww7LRz7ykdzrXveaUM9ma97BmHuMjeC6667L\nxo0bxw7FkuSCCy7Ixo0bc9VVV02gZ4zikksuyfHHHz92cUmSm2++Occff3wuvPDCCfSMURnTWoxn\nLcazFuNZjzGtxXjWYjxrufzyy/PgBz947FAsSa655po8+MEPzle/+tUJ9Kw9zhgbweMe97iJhGK7\n27BhQ84777yJtsnKHHXUURMpLrtbt25drr766om2ycoZ01qMZy3GsxbjWY8xrcV41mI8aznmmGMm\nEort7qCDDsqll1460TZnwRljq8w555wz8VAs6dL/t73tbRNvl+W9/vWvn3hxSbqbJj7zmc+ceLvs\nmTGtxXjWYjxrMZ71GNNajGctxrOWU089deKhWJJ8+9vfzkte8pKJt1udM8aG9OhHP3roG+2v1Pr1\n63PFFVdk7VoPC52VI488cugbVg7jyiuv9OSXGTOmtRjPWoxnLcazHmNai/GsxXjWcr/73W/oG+2v\n1Jo1a3LVVVetqidWOmNsFdm2bVu+9KUvTa39rVu35lWvetXU2ueOtm7dOtXikiRPeMITpto+d2RM\nazGetRjPWoxnPca0FuNZi/Gs5ZZbbplaKJYkO3bsyLOe9ayptV+RU5OG8Gd/9mfZvn37VPfxrne9\nK09/+tOl9TOwefPmqe/joosuymc+85kcdNBBU98XxrQa41mL8azFeNZjTGsxnrUYz1pmcQulLVu2\n5MYbb8yBBx449X1V4FLKIUzzMkoAAACASTjxxBNzxhlnzLsbK+JSylXk4osvnncXAAAAAJb16U9/\net5dWDUEY0PYtm3bvLsAAAAAsKzvfe978+7CqiEYW6FpPBoXAAAAYBqEYysjGAMAAACgSYKxFdp3\n333n3QUAAACAFdl///3n3YVVQTA2hLVr1867CwAAAADLEoqtnGBsCMccc8y8uwAAAACwrEc84hHz\n7sKq4RSoIZx00kl5yUteMtV9rF27NmeffXbWr18/1f2QbN68OR/96Eenvp+zzjorBxxwwNT3gzGt\n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\n1+NAX4sdWosdWosdWo8dWosdSmXC2DriZVSLA30tDvT1ONDXYofWYofWYofWY4fWYodSnTC2TngZ\n1eJAX4sDfT0O9LXYobXYobXYofXYobXYoSQQxtYBL6NaHOhrcaCvx4G+Fju0Fju0Fju0Hju0FjuU\nFMLYGudlVIsDfS0O9PU40Ndih9Zih9Zih9Zjh9Zih5JEGFvDvIxqcaCvxYG+Hgf6WuzQWuzQWuzQ\neuzQWuxQ0ghja5SXUS0O9LU40NfjQF+LHVqLHVqLHVqPHVqLHUoiYWwN8jKqxYG+Fgf6ehzoa7FD\na7FDa7FD67FDa7FDSSWMrTFeRrU40NfiQF+PA30tdmgtdmgtdmg9dmgtdijJhLE1xMuoFgf6Whzo\n63Ggr8UOrcUOrcUOrccOrcUOJZ0wtkZ4GdXiQF+LA309DvS12KG12KG12KH12KG12KEgjK0JXka1\nONDX4kBfjwN9LXZoLXZoLXZoPXZoLXYo/E4YW2VeRrU40NfiQF+PA30tdmgtdmgtdmg9dmgtdij8\nQRhbRV5GtTjQ1+JAX48DfS12aC12aC12aD12aC12KPyVMDYgv/7667J+/qeffvIyWsPm5uba1NTU\n3/7c1NRUm5ubc6BfB5Yz059//tmBfo1b7v+jDvRr23Ln6UC/ttmh9dihtdihtdihtSwsLLQjR478\n7c8dOXKkLSws9PBEGTb0ebOZmZktrbVv/vxn4+PjbXh4uM/HGKhDhw616enp9t1333V2Dy+j/hw8\neLA988wzbW5ubll/b8OGDe23335b0s860PdrpTNdKgf6fnU9z9Yc6PvUxzzt0P7YofXYobXYobXY\nobUcO3asPfXUU+3TTz9ti4uLS/o7GzdubDt37mz79u1rd911V8dP2K0LFy602dnZ//zjKyYmJs73\ncf+hPm5S0dmzZ9vk5GT7+uuvO72Pl1E/Tp8+3SYmJtovv/yyor/vQL/2/NOZLoUDfX/6mGdrDvR9\n6Wuedmg/7NB67NBa7NBa7NBazp8/33bv3t1OnDix7L+7uLjYZmdn2/33399uueWWdvjw4bZly5YO\nnrI+YWwFzp49226++ebO7+Nl1I/Tp0+32267rfP7OND3p4+ZOtD3p6//Rx3o+9HXPO3Qftih9dih\ntdihtdihtZw/f76Nj4+3+fn5f3ytEydOtPHx8Xby5Mm2bdu2ATxdFt8xtgKTk5Od38PLqD8TExOd\n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\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\nYwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQKSh1X6AhYWF1X6Egdi0aVO77LLLlvXz\nFy5c6PCJAAAAANa21e5CG/q82czMzJbW2jd93hMAAACAdeWKiYmJ833cyEcpAQAAAIjU62+M/dnM\nzMxvq3VvAAAAANaWiYmJ3juV3xgDAAAAINJqfvn+Fat4bwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANa+/wNu\nq6ZQIoR66gAAAABJRU5ErkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "10. To find the equilibrium state, we need to minimize the total potential energy of the system. The following function computes the energy of the system, given the positions of the masses. This function is explained in *How it works...*." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def energy(P):\n", - " # The argument P is a vector (flattened matrix).\n", - " # We convert it to a matrix here.\n", - " P = P.reshape((-1, 2))\n", - " # We compute the distance matrix.\n", - " D = dist(P)\n", - " # The potential energy is the sum of the\n", - " # gravitational and elastic potential energies.\n", - " return (g * m * P[:,1].sum() + \n", - " .5 * (k * A * (D - L)**2).sum())" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "11. Let's compute the potential energy of the initial configuration." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "energy(P0.ravel())" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 11, - "text": [ - "-0.98099999999999998" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "12. Now, let's minimize the potential energy with a function minimization method. We need a **constrained optimization algorithm**, because we make the assumption that the two first masses are fixed to the wall. Therefore, their positions cannot change. The [**L-BFGS-B**](http://en.wikipedia.org/wiki/Limited-memory_BFGS#L-BFGS-B) algorithm, a variant of the BFGS algorithm, accepts bound constraints. Here, we force the first two points to stay at their initial positions, whereas there are no constraints on the other points. The `minimize` function accepts a `bounds` list containing, for each dimension, a pair of `[min, max]` values." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "bounds = np.c_[P0[:2,:].ravel(), P0[:2,:].ravel()].tolist() + \\\n", - " [[None, None]] * (2*(n-2))" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 12 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "P1 = opt.minimize(energy, P0.ravel(),\n", - " method='L-BFGS-B',\n", - " bounds=bounds).x.reshape((-1, 2))" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 13 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "13. Let's display the stable configuration." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "show_bar(P1);\n", - "plt.title(\"Equilibrium configuration\");" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAABMYAAAQgCAYAAAANEFBTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAuIwAALiMBeKU/dgAAIABJREFUeJzs3XmYXFWB//93VVdvScgCIRBIQtjGsCuoOLiAThhcZpyF\nGYcvm3EDlwEZHBV1RJRBGMYfKpIZ/YrsMMNoYBQZAcOmfgFlACUIQQUCCQkkISQh6XS6q6t+f5zu\n0Knc211161b1ct+v56kHcqvOuae6bt2q+6mzgCRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiQp244BShG3OTXUcVVE+btrbEdUG95fQ/nzIso/U2MbxqrzyO5zl8ar6cDH\ngWuBx4BVwBaqO18viHmcNJYswONYUgYURroBkqRI5XFSRxptGKuy/NylsWwS8K+EUKC9isdX+173\nnKDxwONY0riTH+kGSKrLXKJ/yWvU7etNeVaSJI2M2cCDwOlUF4oB5BrXHEmS1Gj2GJNUC38llCSN\nV63A94HX1FjOz0aNpLOAqRXb7gbuHYG2SNKYZDAmSZIkwYeAN8bctxZ4uP+/PRH3b25Uo6RhnMWO\nc9yVMBiTpKoZjEnS6OTQnLHP11AaW86I2LYZ+BhwPfX3DPOcoPHA41jSuGMwJo1PLwI/aUC9v2pA\nnXr1YmvgvzlGbmiOQ4KSqXwNK/9f0ui2N3BAxPbPA9clqG80ndelpDyOJUnSqDeX6Eny7xrBNmlk\nXMXIHwfnRbTh6Sa3QZKSOIEdz189hBUqpdFsGTseu+eOZIMkaaxxVUpJkiRl3R9FbHsa2NTshkiS\npOYyGJMkSVLWVa7qB2GifUmSNM4ZjEmSJCnrJkdsi1p9UpIkjTMGY5IkSco6F6TSeOLKkZJUA78E\nSGq2NuDNwOuAvYCJwBZgDfAE8HPghRFrnZrlj4DjgbcSVoKbDnQS5vN5BngY+DFwC1BsYrt2Bv4c\n+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\nnOV17kvBHxGG+r2VMDxoOmFo5WbCcJWHCBOM/5DkX37Hi8MJPRTfQZhzZVfCvFMbCRc8DxHCxtvw\nS/hY0UnD+kBdAAAgAElEQVQ43xxNGBY7lzAcrYNwPnyFcE5cSuiV87P+W1rvhTbgnYShTYf3738a\n4Rw9cD5+CniQsBrf3Yz/Y2sXtl+4AsLfot5edo2yCyEkO4gwD2Yb4fz5PLCE8Fka1Wv044SFPAbr\nYui5Has1hzBf1jsJ89TtSvh83Uzo9fYo4Tx1M8l7XI02BxC+1xxNmOtx4DjqIhw7TxKGtv+YMD9k\npYn9ZSo914jGjkL7ERYjeTPhe8GehL9JmXCMLCd8B/s54ftAWr3GJUmSxqxlhF9ZB9/OHckGSZI0\nhlzDjp+j/zuiLZIkaYQ5lFKSJEka/1qJXljmwWY3RJKk0cRgTJIkSRr/3gfsHrH9nia3Q5KkUcVg\nTJIkSRrfJhMmvK+0hbDSoiRJmWUwJkmSJI1fBeAKYJ+I+77P+JkIX5KkRAzGJEmSpNFpLnAfYeXD\nJKvJ7w4sBv464r4i8C+JWyZJkiSp6ZbhqpSSpOyYy6ufd88B3wCOBiYNUaYAvB74FtDFjp+bA7dL\nGtVoSZLGksJIN0CSJEnSsGYBZ/bfSsAfgBXAeqAbmArsAhwMTBymrgeBcxrWUkmSxhCDMUmSJGls\nyQN/1H+r1cPAu4CeVFskSdIY5RxjkiRJ0vhXAv4v8BZg3Qi3RZKkUcNgTJIkSRqdVgIfB+4hBFtJ\nFIGbgCOBjxKGXUqSpH4OpZQ0lpT7b5IkZUEP8O3+22TgTcAfA/OAvQjzjk0CJhB+8O4GXiJM1L8E\nuB/4CfYQkyRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJUkbkRmrHixcv3nWk9i1JkiRJkqTR\nZf78+Wuavc+RXJVy9QjuW5IkSZIkSaNL0ztw5Zu9Q0mSJEmSJGk0aGoS1z980p5ikiRJkiRJijOj\nWcMq7TEmSZIkSZKkTBrJOcYAOOCAAygURrwZqTr55JP51a9+VfXj3/jGN3Ldddc1sEWSJEmSJEmj\nT7FY5Iknnhix/Y94IlUoFGhtbR3pZqSqq6uLDRs21PT48fY3kCRJkiRJGu0cSilJkiRJkqRMMhiT\nJEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLBmCRJkiRJkjLJ\nYEySJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZjEmSJEmSJCmTDMYkSZIkSZKUSQZjkiRJkiRJ\nyiSDMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJmWQwJkmSJEmSpEwyGJMkSZIkSVImGYxJkiRJ\nkiQpkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJkiRlksGYJEmSJEmSMslgTJIkSZIkSZlkMCZJ\nkiRJkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLB\nmCRJkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZjEmSJEmSJCmTDMYkSZIkSZKU\nSQZjkiRJkiRJyiSDMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJmWQwJkmSJEmSpEwyGJMkSZIk\nSVImGYxJkiRJkiQpkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJkiRlksGYJEmSJEmSMslgTJIk\nSZIkSZlkMCZJkiRJkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMx\nSZIkSZIkZZLBmCRJkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZjEmSJEmSJCmT\nDMYkSZIkSZKUSQZjkiRJkiRJyiSDMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJmWQwJkmSJEmS\npEwyGJMkSZIkSVImGYxJkiRJkiQpkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJkiRlksGYJEmS\nJEmSMslgTJIkSZIkSZlkMCZJkiRJkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOS\nJEmSJEnKJIMxSZIkSZIkZZLBmCRJkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZ\njEmSJEmSJCmTDMYkSZIkSZKUSQZjkiRJkiRJyiSDMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJ\nmWQwJkmSJEmSpEwyGJMkSZIkSVImGYxJkiRJkiQpkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJ\nkiRlksGYJEmSJEmSMslgTJIkSZIkSZlkMCZJkiRJkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJ\nkiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLBmCRJkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIY\nkyRJkiRJUiYZjEmSJEmSJCmTDMYkSZIkSZKUSQZjkiRJkiRJyiSDMUmSJEmSJGWSwZgkSZIkSZIy\nyWBMkiRJkiRJmWQwJkmSJEmSpEwyGJMkSZIkSVImGYxJkiRJkiQpkwzGJEmSJEmSlEkGY5IkSZIk\nScokgzFJkiRJkiRlksGYJEmSJEmSMslgTJIkSZIkSZlkMCZJkiRJkqRMMhiTJEmSJElSJhmMSZIk\nSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLBmCRJkiRJkjLJYEySJEmSJEmZZDAm\nSZIkSZKkTDIYkyRJkiRJUiYZjEmSJEmSJCmTDMYkSZIkSZKUSQZjkiRJkiRJyiSDMUmSJEmSJGWS\nwZgkSZIkSZIyyWBMkiRJkiRJmWQwJkmSJEmSpEwyGJMkSZIkSVImGYxJkiRJkiQpkwzGJEmSJEmS\nlEkGY5IkSZIkScokgzFJkiRJkiRlksGYJEmSJEmSMslgTJIkSZIkSZlkMCZJkiRJkqRMMhiTJEmS\nJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLBmCRJkiRJkjLJYEyS\nJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZjEmSJEmSJCmTDMYkSZIkSZKUSQZjkiRJkiRJyiSD\nMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJmWQwJkmSJEmSpEwyGJMkSZIkSVImGYxJkiRJkiQp\nkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJkiRlksGYJEmSJEmSMslgTJIkSZIkSZlkMCZJkiRJ\nkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLBmCRJ\nkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIYa4BSqTTSTZAkSZIkSdIwDMZSdMcdd3D00Udz//33\n11Tu17/+NXfccUeDWiVJkiRJkqQoBmMpWLNmDcceeywnnHACS5Ysqbn85s2bOeGEEzj22GNZs2ZN\nA1ooSZIkSZKkSgZjdVqzZg2HHHIIDz30UN11PfTQQxxyyCGsWrUqhZZJkiRJkiRpKAZjdTrxxBPp\n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\nDh2a55ap37hxQ29Pm+pwrkev3qp4//0GJLp3Z86cyVqav3XrVt28edOQe6tWrZpVhDVp0kS+vr6G\n3GukqVMmO/zv+cADD6hnr14GJcLdoBgDAAAAADilRIkSGjNmjHr06KGoqCitWrUqx2ekpqZq9uzZ\n+uijjzRs2DD16NFDPj4+bkibc+/OnqXLly9lO1OqVGm9PmCgQYlyLj09Xfv27cv6iOR3331nyL0+\nPj4KDAzMKsOqV69uyL255eiPP2rxBx84nBsRGqrChQsbkAh3i2IMAAAAAHBPKleurPfee099+/ZV\neHi40wv6w8LCshb0t27dOlcX9J8/f14L5s11OPfm4CEqXry4AYnu3sWLF7Vp0ybFxcUpMTFR165d\nM+TeihUrKjg4WDabTc2aNVPRokUNuTcviIkZ6/BNnX9/7DG9+OJLBiXC3aIYAwAAAAC4RIMGDbRu\n3TqtXbtWY8aMcWpB/4kTJ9StWzc1atRI0dHRatCggRuSOjZt8iSlpPwn25nKVaqoy6vdjAmUjczM\nTH399deKj49XXFycDh48KLvd7vZ7PTw8FBAQkLU4/9FHH81Xbxt1lT179mjd2rUO58IjIuXp6WlA\nIuQExRgAAAAAwGUsFotat26tZ555RosWLdKkSZN05cqVHJ+zZ88eBQcH64UXXlB4eLiqVKnihrR/\n7od//1vLly11ODd8RGiufezz2rVr2rx5s+Lj47Vp0yb98ssvhtx73333yWq1ymq1KigoSKVKlTLk\n3rzKbrdrTGSEw7nmTz2lp59+2oBEyCmKMQAAAACAy/n4+KhPnz7q2LGjpk6dqvnz5zu1oH/16tVa\nt26devfurSFDhhiyoH/8uLHKzMzMdubx2nXUuk1bt2e5w26368iRI1lvkNy9e7fDj+65St26dWW1\nWmWz2VS3bl2eevqNdevWal9SUrYzFotF4eGOyzPkDooxAAAAAIDblChRQlFRUerRo4eio6OdXtA/\na9asrAX93bt3d9uTWrt37VJC3L8czoWNDpeHh4dbMtxx8+ZNbd++PWtx/unTp9163x3FihXT008/\nreDgYLVo0ULly5c35N78Ji0tTWOjoh3OvfjSS6r1+OMGJIIzKMYAAAAAAG5XpUqVrAX9o0eP1p49\ne3J8xpUrVxQaGpq1oP+5555z6U4ru92ucWOjHM4FtbAqsElTl937WydOnMjaFbZjxw7dvn3bLff8\nUc2aNbN2hQUEBMjb29uQe/OzDz9crOPHj2U7U6hQIY0YGWpQIjiDYgwAAAAAYJgGDRpo/fr197Sg\n//jx43r11VddvqB//bq1Onhgf7YzFotFI8JGueQ+Sbp9+7Z27dqV9RHJo0ePuuzs7BQuXFjNmjWT\nzWaTzWbTgw8+aMi9BUXyjRuaMmmSw7mevXrz3zaPoxgDAAAAABjqtwv6Fy5cqMmTJ9/Tgv527dpp\n9OjRTi3ov3jxoqT/fuRzwrixDudffLmD/P0fzfE9v3X27FnFx8crISFBW7duVXJy8j2dd7ceeugh\nBQcHy2q1qmnTpvL19TXk3oJo1qxZWb93/krJkiX15qBBBiWCsyjGAAAAAAC5wsfHR3379s1a0L9g\nwQKnFvSvWrVKa9euVe/evTV06FCVKFHiT+dSUlI0cOBArVu3TikpKX95nqdF8vKQvLx+/yNzIV9f\nvTXsnznOl56ern379mU9Ffbtt9/m+AxneHt7KzAwMOupsOrVq7v0o6dmdf7cOc19d47DucFDhhry\nsgjcG4oxAAAAAECuKlmypKKjo7MW9K9evTrHZ/x2Qf/w4cP12muvZS3onzBhgmbMmJFtGfZbGXYp\nI0O6nZEuLw+pkPd/f3Tu0bOX7n/ggbs64+LFi0pMTFRcXJwSExN19erVHP87OaNixYqyWq0KDg5W\ns2bNVKxYMUPuNZPJkybp1q1b2c5UrlxZ3Xv0MCgR7gXFGAAAAAAgT3jooYcUGxubtaB/7969OT7j\nypUrGjlypBYsWKCePXtq7NixDkuM7KRnSum301X2vlJ6fcAbfzmXmZmpb775JuupsP3798tutzt9\n793y8PBQw4YNsxbn//3vf+epMDf697+P6KOPljicGxkapkKFChmQCPeKYgwAAAAAkKc0bNhQGzZs\n0BdffKExY8boxIkTOT7j+PHjCg113dsAf710RT/99JNq166d9bXr169r8+bNio+P16ZNm3ThwgWX\n3Zed0qVLy2q1ymazKSgoSKVKlTLkXkhjo6KVmZmZ7czjj9fWC+3aGZQI94piDAAAAACQ51gsFrVp\n00YhISGKjY3V5MmTDfs44l955plntGXLFsXFxSkhIUG7d+9Wenq6IXfXrl07a1dYvXr15Onpaci9\n+P927tihf/1ro8O5iMhIeXh4GJAIrkAxBgAAAADIs3x8fNSvXz916tRJU6ZM0YIFC5SWlpYrWVJT\nUxUYGGjIXcWKFdPTTz8tm82mFi1aqEKFCobciz9nt9s1JjLC4VwLq1VPNmtmQCK4CsUYAAAAACDP\nK1mypMaOHauePXsqKipKn332WW5HcrlHHnkka1dYo0aN5O3tnduR8H/WfP65Dh48mO2MxWLR6HDH\n5RnyFooxAAAAAEC+8dBDD2nhwoVZC/qTkpJyO5LTChcurCeffDLrI5KVK1fO7Uj4E6mpqRo7Ntrh\nXMdOnfToo48akAiuRDEGAAAAAMh3AgICtHHjRq1Zs0ZjxozRTz/9lNuR7kqVKlUUHBwsq9Wqpk2b\nqnDhwrkdCQ588P4i/ezg91fhwoX1zxEjjAkEl6IYAwAAAADkSxaLRW3bts1a0D9lypRcX9D/R97e\n3mrcuHHWU2E1atSQxWLJ7Vi4S9evX9fUKVMczvXp21f33/+AAYngahRjAAAAAIB8rVChQnr99dfV\nqVMnVatWLbfjqEKFCrJarQoODlazZs1UvHjx3I4EJ82c8Y4uX76c7cx9992nAQPfMCgRXI1iDAAA\nAABQIJQqVSpX7vXw8FCDBg2yFuc/9thjPBVWAJw9e0bz5s51ODf0rbcoP/MxijEAAAAAQIFw8eJF\nQ+9r3bq1WrduraCgIJUuXdrQu+F+EydMUEpKSrYzD1Wtqq6vdjMmENyCYgwAAAAAACe88847Klmy\nZG7HgBscPnxYyz7+2OHcqFGj5ePjY0AiuItHbgcAAAAAAMAVypQpY+h9lGIFV3TUGNnt9mxn6tWr\np9Zt2hiUCO5CMQYAAAAAQA5ZLBaHS9mRP23btlWbEhIczkVEjmGXXAFAMQYAAAAAKDB8fX0Nucdu\nt6t+/XqaNWumwz1UyD8yMzMVFTnG4VxISIgaBwYakAjuRjEGAAAAACgwnn32WcPuun79uiIiIvTE\nE420cuVKZWZmGnY33GP1qlX65puvs53x8PDQqPBwgxLB3SjGAAAAAAAFxsyZMw2557efoDt16pR6\n9+4lm82mHTt2GHI/XO/27dsaFzPW4dw/OnfRww8/YkAiGIFiDAAAAABQYPj6+hr2cco/+uqrg2rT\nprU6d+6sH3/8MVcywHkLY2N16tSpbGf8/Pw0fPhwgxLBCBRjAAAAAIAC5Y033nDr+Y72rW/YsF5N\nmgRq2LBh+vXXX92aBa5x9epVTZ821eFcv9f7q3yFCgYkglEoxgAAAAAABcqIESPk5+fnlrPv9iWE\nGRkZWrgwVg0a1Ne0adN069Ytt+SBa7w9fbquXr2a7UyZsmXVv39/gxLBKBRjAAAAAIACJyEhIbcj\nSJKSk5MVEzNWjRoF6OOPP2ZBfx508uRJvbdgvsO5YcOGq2ixYgYkgpEoxgAAAAAABU7NmjW1efNm\n+fj43PNZPj4+SkxM1EcffaTq1Ws4dcbZs2c1YEB/BQU9rS1bttxzJrjOhPHjlJqamu1MtWrV1LlL\nF4MSwUgUYwAAAACAAql27do6f/68QkJCnD4jJCRE58+fV506ddSyZUtt375dkydPUZkyZZw679Ch\nQ2rfvp06dHhZ339/2OlccI1D33yjTz/5xOHcqPBweXt7G5AIRqMYAwAAAAAUaEuXLtXZs2f12GOP\n3fX31KpVS2fPntXSpUt/93Vvb291795dSUn7NGTIUKffgJmQkKBmzZpp8OBBOn/+vFNn4N7Y7XZF\nRkY4nGsYEKBWrZ41IBFyA8UYAAAAAKDA8/X11bZt2/TDDz+oTp068vLy+p8ZLy8v1alTR8ePH9fW\nrVuzLb2KFy+usLAw7d2bpI4dO8lyt1v5fyMzM1OLFy9WQEBDTZo0UcnJyTk+A87bvHmzvty2zeFc\nROQYp359kT9QjAEAAAAATKNMmTJKTEzUL7/8osuXL+uHH37QDz/8oMuXL+uXX35RYmKiSpYsedfn\nPfDAA5o9e7Y2b96i5s2bO5Xp5s2bmjhxogICGurDDxcrIyPDqXNw9zIyMhQ1JtLh3LPPPaeAgAD3\nB0KuoRgDAAAAAJhWmTJlnN4X9lu1atXSypWrtGLFCvn7+zt1xoULFzRo0CA1a/akEhLiZbfb7zkX\n/twnn6zQ4e++y3bG09NTo0aNNigRcgvFGAAAAAAALmCxWNSihVVbt27TO++8o/LlKzh1zpEjR9Sh\nQwe1b99Ohw4dcnFK/Oc//9GEceMcznV99VVVq17dgETITRRjAAAAAAC4kKenpzp37qKkpCSNGDFC\nRYoUceqcrVu36umnn1L//v115swZF6c0rwUL5uvs2bPZzhQpUkRD3xpmUCLkJooxAAAAAADcoEiR\nIho2bLj27k1S165d5eGR8x/B7Xa7li37WAEBDTV27Fhdv37dDUnN49KlS3pn+nSHcwMGvqFy5coZ\nkAi5jWIMAAAAAAA3qlChgqZPf1tffvmlbDabU2ekpKRo+vRpatiwgWJjY5WWlubilObw9rRpunHj\nRrYz5cqVV99+/QxKhNxGMQYAAAAAgAFq1vTXsmXLtWrVatWqVcupMy5evKjhw4epadOmWr9+PQv6\nc+Cnn37SwoWxDuf+eQ8ff0X+QzEGAAAAAICBmjdvrsTEzZo9e47uv/9+p844evRHdenSWW3atNaB\nAwdcnLBgGh8T4/BJu4cfflidXnnFoETICyjGAAAAAAAwmIeHhzp27Ki9e5M0atRoFS1a1Klzdu7c\nKZvNqj59euvkyZMuTllwHDxwQKtXr3I4Nzo8Ql5eXgYkQl5BMQYAAAAAQC4pXLiwBg8erH379qtH\nj57y9PR06pxPP/1UjRoFKDIyQteuXXNxyvzNbrdrTGSkw7nGjQMV/Mwz7g+EPIViDAAAAACAXFa2\nbFlNmjRJO3bsVMuWrZw6IzU1VTNnzlT9+vU0b95cpaamujhl/pQQH6+dO3c4nIsYEymLxWJAIuQl\nFGMAAAAAAOQRNWrU0JIlS/TFF2tVt249p864cuWKQkNDFRjYWGvWfG7qBf3p6emKGhPpcK5t2+dV\nr1599wdCnkMxBgAAAABAHhMYGKi4uDjNn79ADz74oFNnnDhxQq+99ppatgxRUtJeFyfMH5YvW6Z/\n//vf2c54e3srdNQogxIhr6EYAwAAAAAgD/Lw8FD79u21e/cejRkzRiVKlHDqnKSkJIWEhOi117rp\n+PHjLk6Zd928eVMTJ4x3ONfttddUtWpVAxIhL6IYAwAAAAAgD/P19dWAAQO1b99+9e3bV97e3k6d\ns2bNGgUGNlZo6EhdvnzZxSnznvnz5ur8+fPZzhQrVkyDhww1KBHyIooxAAAAAADygdKlSysmZpx2\n7dqttm3bOnVGWlqa5s2bp/r162nmzBlKSUlxccq84ddff9XMGTMczr3x5psqU6aMAYmQV1GMAQAA\nAACQj1StWlULFy7Sxo0bFRAQ4NQZ169fV2RkpJ54opE+/fRTZWZmujhl7po2dYqSk5OznalYsaJ6\n9e5jUCLkVRRjAAAAAADkQw0bBmj9+g1atOh9p3dknTp1Sn369JbNZtOOHTtcnDB3HD92TB+8/77D\nuREjR8rPz8/9gZCnUYwBAAAAAJBPWSwWtWnTRjt37tK4ceNVqlQpp8756quDatOmtf7xj3/ohx9+\ncHFKY8XEjFV6enq2M/6PPqqXO3Q0KBHyMooxAAAAAADyOR8fH/Xp00f79x/QwIFvqFChQk6ds3Hj\nBjVt2kTDhg3Tr7/+6uKU7rdvX5K+WLPG4VzKLH4lAAAOw0lEQVRERKQ8PT0NSIS8jmIMAAAAAIAC\nokSJEoqMjNTu3Xv04osvOnVGRkaGFi6MVYMG9TVt2jTdunXLxSndw263a0xkpMO5J5s109NBQe4P\nhHyBYgwAAAAAgAKmcuXKmjdvvhISNqlJkyZOnZGcnKyYmLEKCGiojz/+OM8v6N+wYb327N7tcC4i\nIlIWi8WARMgPKMYAAAAAACig6tatq88/X6MlSz5S9eo1nDrj3LlzGjCgv4KCntaWLVtcG9BF0tLS\nFD1mjMO59i++qMdr1zYgEfILijEAAAAAAAowi8Wili1bavv27Zo8eYrKlCnj1DmHDh1S+/bt1KHD\ny/r++8MuTnlvPlqyRMeOHct2xsfHRyNDwwxKhPyCYgwAAAAAABPw9vZW9+7dlZS0T0OGDJWvr69T\n5yQkJKhZs2YaNOhNnT9/3sUpcy75xg1NmjTR4VyPnr1UuXJlAxIhP6EYAwAAAADARIoXL66wsDDt\n3Zukjh07ObVvKzMzUx9++KEaNmygiRMnKDk52Q1J786cOXN00cEbNEuUKKFBgwcblAj5CcUYAAAA\nAAAm9MADD2j27NnavHmLmjdv7tQZt27d0qRJkxQQ0FAffrhYGRkZLk6ZvQvnz2vOnNkO5wYNHqJS\npUoZkAj5DcUYAAAAAAAmVqtWLa1cuUorVqyQv7+/U2dcuHBBgwYNUrNmTyohIV52u93FKf/c5MmT\ndevmzWxnKlWqpB49exqSB/kPxRgAAAAAACZnsVjUooVVW7du0zvvvKPy5Ss4dc6RI0fUoUMHtWvX\nTocOHXJxyt/74Yd/66MlHzqcGxka5vQ+NRR8FGMAAAAAAECS5Onpqc6duygpKUkjRoxQkSJFnDpn\n27atevrpp/T666/rzJnTLk75X2Ojox1+dPOxWrXU/sUX3XI/CgaKMQAAAAAA8DtFihTRsGHDtXdv\nkrp27SoPj5zXB3a7XcuXL1NAQIDGjh2r69evuyzf7l27tHHDBodzEZGRTmWHefC7AwAAAAAA/KkK\nFSpo+vS39eWXX8pmszl1RkpKiqZPn6aGDRsoNjZWaWlpTp1z69Yt3bp1S3a7XWMiIxzOPx0UpObN\nn3LqLpgHxRgAAAAAAMhWzZr+WrZsuVatWq1atWo5dcbFixc1fPgwNW3aVOvXr892QX96eroWLVqk\n5s2bq1y5cipdurQqVaqkSpUq6b777tOepH1Kz7Qr8//++iOLxaLR4Y7LM4BiDAAAAAAA3JXmzZsr\nMXGzZs+eo/vvv9+pM44e/VFdunRWmzatdeDAgd/9s7i4ODVv3lwVKlTQ0KFDdejQIaWnp//lWZn/\n91f6Hwqylzt00GOPPeZUPpgLxRgAAAAAALhrHh4e6tixo/buTdKoUaNVtGhRp87ZuXOnbDarevfu\npa+++ko2m00dO3bUoUOHlJmZmePz7hRk3t7eGjEy1KlMMB+KMQAAAAAAkGOFCxfW4MGDtW/ffvXo\n0VOenp5OnfPppysVFBSk/fv3uyTX7bR0Fu7jrvE7BQAAAAAAOK1s2bKaNGmSduzYqZYtW+V2HGVm\nZqp9+/a5HQP5BMUYAAAAAAC4ZzVq1NCSJUv0xRdrVbduvbv6nmz279+TI0eOaPbs2e45HAUKxRgA\nAAAAAHCZwMBAxcXFaf78BXrwwQdzLUdMTEy2i/sBiWIMAAAAAAC4mIeHh9q3b6/du/dozJgxKlGi\nxP/MuOtpsTtSUlIUHh7u3kuQ71GMAQAAAAAAt/D19dWAAQO1b99+9e3bV97e3obeHxsbq1u3bhl6\nJ/IXijEAAAAAAOBWpUuXVkzMOO3atVtt27Y17N60tDSNHz/esPuQ/1CMAQAAAAAAQ1StWlULFy7S\nxo0bDbtz/fr1ht2F/IdiDAAAAAAAGKphwwDD7vr5558Nuwv5D8UYAAAAAAAwlJF7vzIzM5WSkmLY\nfchfKMYAAAAAAABgShRjAAAAAADAUH5+fobd5eHhIV9fX8PuQ/5CMQYAAAAAAAzn5eVlyD1VqlQx\n5B7kTxRjAAAAAADAcP7+/obc06pVK0PuQf5EMQYAAAAAAAzXrVs3t9/h7e2tsLAwt9+D/ItiDAAA\nAAAAGK5Lly7y8HBvLdGjRw/2iyFbFGMAAAAAAMBwXl5e+vvf/+628319fRUVFeW281EwUIwBAAAA\nAIBc4c6POYaFhRm24B/5F8UYAAAAAADIFcHBwapfv77Lz61Zs6b69+/v8nNR8FCMAQAAAACAXLN0\n6VL5+Pi47Dxvb2+tXr3aZeehYKMYAwAAAAAAuaZs2bI6ePCgatasec9n1axZU1999ZXKly/vgmQw\nA4oxAAAAAACQqypWrKidO3cqOjraqbdI+vr6Kjo6Wjt37lTFihXdkBAFFcUYAAAAAADIE/r376+T\nJ0+qd+/e8vb2djjv7e2tvn376uTJk+wUg1MoxgAAAAAAQJ7h5eWlCRMm6MSJE+rfv7+qVq0qD4//\nX194eHioatWq6t+/v37++WeNGzeOt0/CafzOAQAAAAAAeY6fn5+io6MVHR0tSbp161bW1wFXoRgD\nAAAAAAB5HoUY3IGPUgIAAAAAAMCUKMYAAAAAAABgShRjAAAAAAAAMCWKMQAAAAAAAJgSxRgAAAAA\nAABMiWIMAAAAAAAApkQxBgAAAAAAAFOiGAMAAAAAAIApUYwBAAAAAADAlCjGAAAAAAAAYEoUYwAA\nAAAAADAlijEAAAAAAACYEsUYAAAAAAAATIliDAAAAAAAAKZEMQYAAAAAAABTohgDAAAAAACAKVGM\nAQAAAAAAwJQoxgAAAAAAAGBKFGMAAAAAAAAwJYoxAAAAAAAAmBLFGAAAAAAAAEyJYgwAAAAAAACm\nRDEGAAAAAAAAU6IYAwAAAAAAgClRjAEAAAAAAMCUKMYAAAAAAABgShRjAAAAAAAAMCWKMQAAAAAA\nAJgSxRgAAAAAAABMiWIMAAAAAAAApkQxBgAAAAAAAFOiGAMAAAAAAIApUYwBAAAAAADAlCjGAAAA\nAAAAYEoUYwAAAAAAADAlijEAAAAAAACYEsUYAAAAAAAATIliDAAAAAAAAKZEMQYAAAAAAABTohgD\nAAAAAACAKVGMAQAAAAAAwJQoxgAAAAAAAGBKFGMAAAAAAAAwJYoxAAAAAAAAmBLFGAAAAAAAAEyJ\nYgwAAAAAAACmRDEGAAAAAAAAU6IYAwAAAAAAgClRjAEAAAAAAMCUKMYAAAAAAABgShRjAAAAAAAA\nMCWKMQAAAAAAAJgSxRgAAAAAAABMiWIMAAAAAAAApkQxBgAAAAAAAFOiGAMAAAAAAIApUYwBAAAA\nAADAlCjGAAAAAAAAYEoUYwAAAAAAADAlijEAAAAAAACYEsUYAAAAAAAATIliDAAAAAAAAKZEMQYA\nAAAAAABTohgDAAAAAACAKVGMAQAAAAAAwJQoxgAAAAAAAGBKFGMAAAAAAAAwJYoxAAAAAAAAmBLF\nGAAAAAAAAEyJYgwAAAAAAACmRDEGAAAAAAAAU6IYAwAAAAAAgClRjAEAAAAAAMCUKMYAAAAAAABg\nShRjAAAAAAAAMCWKMQAAAAAAAJgSxRgAAAAAAABMiWIMAAAAAAAApkQxBgAAAAAAAFOiGAMAAAAA\nAIApUYwBAAAAAADAlCjGAAAAAAAAYEoUYwAAAAAAADAlijEAAAAAAACYEsUYAAAAAAAATIliDAAA\nAAAAAKZEMQYAAAAAAABTohgDAAAAAACAKVGMAQAAAAAAwJQoxgAAAAAAAGBKFGMAAAAAAAAwJYox\nAAAAAAAAmBLFGAAAAAAAAEyJYgwAAAAAAACmRDEGAAAAAAAAU6IYAwAAAAAAgClRjAEAAAAAAMCU\nKMYAAAAAAABgShRjAAAAAAAAMCWKMQAAAAAAAJgSxRgAAAAAAABMiWIMAAAAAAAApkQxBgAAAAAA\nAFOiGAMAAAAAAIApUYwBAAAAAADAlCjGAAAAAAAAYEoUYwAAAAAAADAlijEAAAAAAACYEsUYAAAA\nAAAATIliDAAAAAAAAKZEMQYAAAAAAABTohgDAAAAAACAKVGMAQAAAAAAwJQoxgAAAAAAAGBKFGMA\nAAAAAAAwJYoxAAAAAAAAmBLFGAAAAAAAAEyJYgwAAAAAAACmRDEGAAAAAAAAU6IYAwAAAAAAgClR\njAEAAAAAAMCUKMYAAAAAAABgShRjAAAAAAAAMCWKMQAAAAAAAJgSxRgAAAAAAABMiWIMAAAAAAAA\npkQxBgAAAAAAAFOiGAMAAAAAAIApUYwBAADg/7VzxzgRw1AARINElSYVeyIf2yeCI2QlaGmRIA6a\n92pL/9cj2wAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAA\nAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAA\nScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJ\nwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnC\nGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIY\nAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEmvqxd4Pp+rV/h1\n+75vx3H86Px5nn+4EQAAAMD9rO5CL1cOm3O+bdv2fuVMAAAAAP6Vxxjj44pBnlICAAAAkHTpjbHv\n5pyfq2YDAAAAcC9jjMs7lRtjAAAAACSt/Hz/sXA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/cFeLLb66Tn\nxYEAAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This configuration looks realistic. The tension appears to be maximal on the top springs near the wall." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How it works..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This example is conceptually simple. The state of the system is only described by the positions of the masses. If we can write a Python function that returns the total energy of the system, finding the equilibrium is just a matter of minimizing this function. This is the **principle of minimum total potential energy**, due to the second law of thermodynamics." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here, we give an expression of the total energy of the system. Since we are only interested in the *equilibrium*, we omit any kinetic aspect and we only consider potential energy due to gravity (**gravitational force**) and spring forces (**elastic potential energy**)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let $U$ be the total potential energy of the system. It is the sum of the gravitational potential energies of the masses, and the elastic potential energies of the springs. Therefore:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$U = \\sum_{i=1}^n mgy_i + \\frac{1}{2} \\sum_{i,j=1}^n k a_{ij} \\left( ||\\mathbf{p}_i - \\mathbf{p}_j|| - l_{ij} \\right)^2$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "where:\n", - "\n", - "* $m$ is the mass,\n", - "* $g$ is the gravity of Earth,\n", - "* $k$ is the stiffness of the springs,\n", - "* $\\mathbf{p}_i = (x_i, y_i)$ is the position of mass $i$,\n", - "* $a_{ij}$ is 1 if masses $i$ and $j$ are attached by a spring, $0$ otherwise,\n", - "* $l_{ij}$ is the relaxed length of spring $(i,j)$, or $0$ if masses $i$ and $j$ are not attached." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `energy` function implements this formula using vectorized computations on NumPy arrays." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## There's more..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The following references contain details about the physics behind this formula:\n", - "\n", - "* [Potential energy](http://en.wikipedia.org/wiki/Potential_energy).\n", - "* [Elastic potential energy](http://en.wikipedia.org/wiki/Elastic_potential_energy).\n", - "* [Hooke's law, which is the linear approximation of the spring's response](http://en.wikipedia.org/wiki/Hooke%27s_law).\n", - "* [Principle of minimum energy](http://en.wikipedia.org/wiki/Minimum_total_potential_energy_principle)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You will find related recipes on the [book's repository](https://github.com/ipython-books/cookbook-code)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Featured Recipe #2: Simulating a Physical System by Minimizing an Energy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Mathematical optimization is a wide area of applied mathematics. It consists in finding a best solution to a given problem. Many real-world problems can be expressed in an optimization framework." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this recipe, we show how to find the equilibrium configuration of a physical system by minimizing its potential energy. More specifically, we consider a structure made of masses and springs, attached to a vertical wall and subject to gravity. Starting from an initial position, we want to find the equilibrium configuration where the gravity and elastic forces compensate." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How to do it..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Let's import NumPy, SciPy and matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy.optimize as opt\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We define a few constants in the International System of Units." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "g = 9.81 # gravity of Earth\n", + "m = .1 # mass, in kg\n", + "n = 20 # number of masses\n", + "e = .1 # initial distance between the masses\n", + "l = e # relaxed length of the springs\n", + "k = 10000 # spring stiffness" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. We define the initial positions of the masses. They are arranged on a two-dimensional grid with two lines and $n/2$ columns." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "P0 = np.zeros((n, 2))\n", + "P0[:,0] = np.repeat(e*np.arange(n//2), 2)\n", + "P0[:,1] = np.tile((0,-e), n//2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. Now, let's define the connectivity matrix between the masses. Coefficient $i,j$ is $1$ if masses $i$ and $j$ are connected by a spring." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "A = np.eye(n, n, 1) + np.eye(n, n, 2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. We also specify the spring stiffness of each spring. It is $l$, except for *diagonal* springs where it is $l \\times \\sqrt{2}$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "L = l * (np.eye(n, n, 1) + np.eye(n, n, 2))\n", + "for i in range(n//2-1):\n", + " L[2*i+1,2*i+2] *= np.sqrt(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. We also need the indices of the spring connections." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "I, J = np.nonzero(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. The `dist` function computes the distance matrix (distance between any pair of masses)." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dist = lambda P: np.sqrt((P[:,0]-P[:,0][:, np.newaxis])**2 + \n", + " (P[:,1]-P[:,1][:, np.newaxis])**2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. We define a function that displays the system. The springs are colored according to their tension." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def show_bar(P):\n", + " plt.figure(figsize=(5,4));\n", + " # Wall.\n", + " plt.axvline(0, color='k', lw=3);\n", + " # Distance matrix.\n", + " D = dist(P)\n", + " # We plot the springs.\n", + " for i, j in zip(I, J):\n", + " # The color depends on the spring tension, which\n", + " # is proportional to the spring elongation.\n", + " c = D[i,j] - L[i,j]\n", + " plt.plot(P[[i,j],0], P[[i,j],1], \n", + " lw=2, color=plt.cm.copper(c*150));\n", + " # We plot the masses.\n", + " plt.plot(P[[I,J],0], P[[I,J],1], 'ok',);\n", + " # We configure the axes.\n", + " plt.axis('equal');\n", + " plt.xlim(P[:,0].min()-e/2, P[:,0].max()+e/2);\n", + " plt.ylim(P[:,1].min()-e/2, P[:,1].max()+e/2);\n", + " plt.xticks([]); plt.yticks([]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. Here is the system in its initial configuration." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": [ + "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\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRhbjg4yAAAgAElEQVQAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKM\n", + "AQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAA\n", + "TRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgA\n", + "AAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAk\n", + "wRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAAANAkwRgAAAAATRKMAQAA\n", + "ANAkwRgAAAAATRKMAQAAANAkwRis0PXXX5/rr79+3t1ggoxpLcazFuNZi/Gsx5jWYjxrMZ613Hjj\n", + "jbnxxhvn3Y3S1s67A1Vs37593l1ggrZu3ZoXvvCFOfPMM7N169be71m/fn2e+MQn5i1veUvWr18/\n", + "4x4yLGNai/GsxXjWYjzrMaa1GM9ajGctt9xyS1772tfmPe95T2644Ybe7zn44IPzjGc8I6985Suz\n", + "bt26GfewpjWz3NmWLVsOTXLt7ts2btyYffbZZ5bdmKhzzjknr3vd63LRRRcN9br99tsv7373u/P4\n", + "xz9+Sj1jFK9//evz5je/eWBRGWT9+vV50YtelJe97GVT6hmjMqa1GM9ajGctxrMeY1qL8azFeNZy\n", + "6qmn5pRTThkYhg1y8MEH5+Uvf3me85znTKlns3Hrrbf2ZSp337Rp03Wz2L9gbETXXXddnvnMZ+aC\n", + "Cy4Yq53jjjsuZ5xxRg499NAJ9YxRXHLJJdm0aVNuvvnmsdrZd999s2XLlmzYsGFCPWNUxrQW41mL\n", + "8azFeNZjTGsxnrUYz1ouv/zynHjiibnmmmvGauewww7LRz7ykdzrXveaUM9ma97BmHuMjeC6667L\n", + "xo0bxw7FkuSCCy7Ixo0bc9VVV02gZ4zikksuyfHHHz92cUmSm2++Occff3wuvPDCCfSMURnTWoxn\n", + "LcazFuNZjzGtxXjWYjxrufzyy/PgBz947FAsSa655po8+MEPzle/+tUJ9Kw9zhgbweMe97iJhGK7\n", + "27BhQ84777yJtsnKHHXUURMpLrtbt25drr766om2ycoZ01qMZy3GsxbjWY8xrcV41mI8aznmmGMm\n", + "Eort7qCDDsqll1460TZnwRljq8w555wz8VAs6dL/t73tbRNvl+W9/vWvn3hxSbqbJj7zmc+ceLvs\n", + "mTGtxXjWYjxrMZ71GNNajGctxrOWU089deKhWJJ8+9vfzkte8pKJt1udM8aG9OhHP3roG+2v1Pr1\n", + "63PFFVdk7VoPC52VI488cugbVg7jyiuv9OSXGTOmtRjPWoxnLcazHmNai/GsxXjWcr/73W/oG+2v\n", + "1Jo1a3LVVVetqidWOmNsFdm2bVu+9KUvTa39rVu35lWvetXU2ueOtm7dOtXikiRPeMITpto+d2RM\n", + "azGetRjPWoxnPca0FuNZi/Gs5ZZbbplaKJYkO3bsyLOe9ayptV+RU5OG8Gd/9mfZvn37VPfxrne9\n", + "K09/+tOl9TOwefPmqe/joosuymc+85kcdNBBU98XxrQa41mL8azFeNZjTGsxnrUYz1pmcQulLVu2\n", + "5MYbb8yBBx449X1V4FLKIUzzMkoAAACASTjxxBNzxhlnzLsbK+JSylXk4osvnncXAAAAAJb16U9/\n", + "et5dWDUEY0PYtm3bvLsAAAAAsKzvfe978+7CqiEYW6FpPBoXAAAAYBqEYysjGAMAAACgSYKxFdp3\n", + "333n3QUAAACAFdl///3n3YVVQTA2hLVr1867CwAAAADLEoqtnGBsCMccc8y8uwAAAACwrEc84hHz\n", + "7sKq4RSoIZx00kl5yUteMtV9rF27NmeffXbWr18/1f2QbN68OR/96Eenvp+zzjorBxxwwNT3gzGt\n", + "xnjWYjxrMZ71GNNajGctxrOWt73tbTnjjDOmvp93vvOdU99HFWtmubMtW7YcmuTa3bdt3Lgx++yz\n", + "zyy7MbJt27bl8MMPz/bt26e2j5NPPjmnnHLK1Nrndlu3bs2RRx451X1s3Lgxn/jEJ6a6D273zW9+\n", + "Mxs3bpzqPozp7Nx000255z3vOdV9GM/ZMefWYjzrUUNrUUNrMefWcsstt+Twww+f6j42bdqU973v\n", + "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\n", + "tdihtdih9dihtdihVCSMrUNeRrU40NfiQF+PA30tdmgtdmgtdmg9dmgtdihVCWPrjJdRLQ70tTjQ\n", + "1+NAX4sdWosdWosdWo8dWosdSmXC2DriZVSLA30tDvT1ONDXYofWYofWYofWY4fWYodSnTC2TngZ\n", + "1eJAX4sDfT0O9LXYobXYobXYofXYobXYoSQQxtYBL6NaHOhrcaCvx4G+Fju0Fju0Fju0Hju0FjuU\n", + "FMLYGudlVIsDfS0O9PU40Ndih9Zih9Zih9Zjh9Zih5JEGFvDvIxqcaCvxYG+Hgf6WuzQWuzQWuzQ\n", + "euzQWuxQ0ghja5SXUS0O9LU40NfjQF+LHVqLHVqLHVqPHVqLHUoiYWwN8jKqxYG+Fgf6ehzoa7FD\n", + "a7FDa7FD67FDa7FDSSWMrTFeRrU40NfiQF+PA30tdmgtdmgtdmg9dmgtdijJhLE1xMuoFgf6Whzo\n", + "63Ggr8UOrcUOrcUOrccOrcUOJZ0wtkZ4GdXiQF+LA309DvS12KG12KG12KH12KG12KEgjK0JXka1\n", + "ONDX4kBfjwN9LXZoLXZoLXZoPXZoLXYo/E4YW2VeRrU40NfiQF+PA30tdmgtdmgtdmg9dmgtdij8\n", + "QRhbRV5GtTjQ1+JAX48DfS12aC12aC12aD12aC12KPyVMDYgv/7667J+/qeffvIyWsPm5uba1NTU\n", + "3/7c1NRUm5ubc6BfB5Yz059//tmBfo1b7v+jDvRr23Ln6UC/ttmh9dihtdihtdihtSwsLLQjR478\n", + "7c8dOXKkLSws9PBEGTb0ebOZmZktrbVv/vxn4+PjbXh4uM/HGKhDhw616enp9t1333V2Dy+j/hw8\n", + "eLA988wzbW5ubll/b8OGDe23335b0s860PdrpTNdKgf6fnU9z9Yc6PvUxzzt0P7YofXYobXYobXY\n", + "obUcO3asPfXUU+3TTz9ti4uLS/o7GzdubDt37mz79u1rd911V8dP2K0LFy602dnZ//zjKyYmJs73\n", + "cf+hPm5S0dmzZ9vk5GT7+uuvO72Pl1E/Tp8+3SYmJtovv/yyor/vQL/2/NOZLoUDfX/6mGdrDvR9\n", + "6Wuedmg/7NB67NBa7NBa7NBazp8/33bv3t1OnDix7L+7uLjYZmdn2/33399uueWWdvjw4bZly5YO\n", + "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\n", + "e/Zsm56eLhHF1gK/MTYg99xzT/vggw+W/PO33357e+211zp8Igbt22+/ba21dvnll6/ykzAoZlqL\n", + "edZinrWYZz1mWot51mKetfz7XyLdtGnTKj9Jd1b7N8bkRVgii6UeM63FPGsxz1rMsx4zrcU8azHP\n", + "WioHsbXCRykBAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQCRhDAAAAIBIwhgAAAAAkYQxAAAAACIJ\n", + "YwAAAABEEsYAAAAAiCSMAQAAABBJGAMAAAAgkjAGAAAAQKSh1X6AhYWF1X6Egdi0aVO77LLLlvXz\n", + "Fy5c6PCJAAAAANa21e5CG/q82czMzJbW2jd93hMAAACAdeWKiYmJ833cyEcpAQAAAIjU62+M/dnM\n", + "zMxvq3VvAAAAANaWiYmJ3juV3xgDAAAAINJqfvn+Fat4bwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANa+/wNu\n", + "q6ZQIoR66gAAAABJRU5ErkJggg==\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "show_bar(P0);\n", + "plt.title(\"Initial configuration\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10. To find the equilibrium state, we need to minimize the total potential energy of the system. The following function computes the energy of the system, given the positions of the masses. This function is explained in *How it works...*." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def energy(P):\n", + " # The argument P is a vector (flattened matrix).\n", + " # We convert it to a matrix here.\n", + " P = P.reshape((-1, 2))\n", + " # We compute the distance matrix.\n", + " D = dist(P)\n", + " # The potential energy is the sum of the\n", + " # gravitational and elastic potential energies.\n", + " return (g * m * P[:,1].sum() + \n", + " .5 * (k * A * (D - L)**2).sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "11. Let's compute the potential energy of the initial configuration." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.98099999999999998" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "energy(P0.ravel())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "12. Now, let's minimize the potential energy with a function minimization method. We need a **constrained optimization algorithm**, because we make the assumption that the two first masses are fixed to the wall. Therefore, their positions cannot change. The [**L-BFGS-B**](http://en.wikipedia.org/wiki/Limited-memory_BFGS#L-BFGS-B) algorithm, a variant of the BFGS algorithm, accepts bound constraints. Here, we force the first two points to stay at their initial positions, whereas there are no constraints on the other points. The `minimize` function accepts a `bounds` list containing, for each dimension, a pair of `[min, max]` values." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "bounds = np.c_[P0[:2,:].ravel(), P0[:2,:].ravel()].tolist() + \\\n", + " [[None, None]] * (2*(n-2))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "P1 = opt.minimize(energy, P0.ravel(),\n", + " method='L-BFGS-B',\n", + " bounds=bounds).x.reshape((-1, 2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "13. Let's display the stable configuration." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": [ + "iVBORw0KGgoAAAANSUhEUgAABMYAAAQgCAYAAAANEFBTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", + "AAAuIwAALiMBeKU/dgAAIABJREFUeJzs3XmYXFWB//93VVdvScgCIRBIQtjGsCuoOLiAThhcZpyF\n", + "GYcvm3EDlwEZHBV1RJRBGMYfKpIZ/YrsMMNoYBQZAcOmfgFlACUIQQUCCQkkISQh6XS6q6t+f5zu\n", + "0Knc211161b1ct+v56kHcqvOuae6bt2q+6mzgCRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\n", + "kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\n", + "kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\n", + "kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\n", + "kiRJkiRJkiRJkiRJkiQp244BShG3OTXUcVVE+btrbEdUG95fQ/nzIso/U2MbxqrzyO5zl8ar6cDH\n", + "gWuBx4BVwBaqO18viHmcNJYswONYUgYURroBkqRI5XFSRxptGKuy/NylsWwS8K+EUKC9isdX+173\n", + "nKDxwONY0riTH+kGSKrLXKJ/yWvU7etNeVaSJI2M2cCDwOlUF4oB5BrXHEmS1Gj2GJNUC38llCSN\n", + "V63A94HX1FjOz0aNpLOAqRXb7gbuHYG2SNKYZDAmSZIkwYeAN8bctxZ4uP+/PRH3b25Uo6RhnMWO\n", + "c9yVMBiTpKoZjEnS6OTQnLHP11AaW86I2LYZ+BhwPfX3DPOcoPHA41jSuGMwJo1PLwI/aUC9v2pA\n", + "nXr1YmvgvzlGbmiOQ4KSqXwNK/9f0ui2N3BAxPbPA9clqG80ndelpDyOJUnSqDeX6Eny7xrBNmlk\n", + "XMXIHwfnRbTh6Sa3QZKSOIEdz189hBUqpdFsGTseu+eOZIMkaaxxVUpJkiRl3R9FbHsa2NTshkiS\n", + "pOYyGJMkSVLWVa7qB2GifUmSNM4ZjEmSJCnrJkdsi1p9UpIkjTMGY5IkSco6F6TSeOLKkZJUA78E\n", + "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\n", + "TJIkSRrfJhMmvK+0hbDSoiRJmWUwJkmSJI1fBeAKYJ+I+77P+JkIX5KkRAzGJEmSpNFpLnAfYeXD\n", + "JKvJ7w4sBv464r4i8C+JWyZJkiSp6ZbhqpSSpOyYy6ufd88B3wCOBiYNUaYAvB74FtDFjp+bA7dL\n", + "GtVoSZLGksJIN0CSJEnSsGYBZ/bfSsAfgBXAeqAbmArsAhwMTBymrgeBcxrWUkmSxhCDMUmSJGls\n", + "yQN/1H+r1cPAu4CeVFskSdIY5RxjkiRJ0vhXAv4v8BZg3Qi3RZKkUcNgTJIkSRqdVgIfB+4hBFtJ\n", + "FIGbgCOBjxKGXUqSpH4OpZQ0lpT7b5IkZUEP8O3+22TgTcAfA/OAvQjzjk0CJhB+8O4GXiJM1L8E\n", + "uB/4CfYQkyRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJUkbkRmrHixcv3nWk9i1JkiRJkqTR\n", + "Zf78+Wuavc+RXJVy9QjuW5IkSZIkSaNL0ztw5Zu9Q0mSJEmSJGk0aGoS1z980p5ikiRJkiRJijOj\n", + "WcMq7TEmSZIkSZKkTBrJOcYAOOCAAygURrwZqTr55JP51a9+VfXj3/jGN3Ldddc1sEWSJEmSJEmj\n", + "T7FY5Iknnhix/Y94IlUoFGhtbR3pZqSqq6uLDRs21PT48fY3kCRJkiRJGu0cSilJkiRJkqRMMhiT\n", + "JEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLBmCRJkiRJkjLJ\n", + "YEySJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZjEmSJEmSJCmTDMYkSZIkSZKUSQZjkiRJkiRJ\n", + "yiSDMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJmWQwJkmSJEmSpEwyGJMkSZIkSVImGYxJkiRJ\n", + "kiQpkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJkiRlksGYJEmSJEmSMslgTJIkSZIkSZlkMCZJ\n", + "kiRJkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLB\n", + "mCRJkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZjEmSJEmSJCmTDMYkSZIkSZKU\n", + "SQZjkiRJkiRJyiSDMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJmWQwJkmSJEmSpEwyGJMkSZIk\n", + "SVImGYxJkiRJkiQpkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJkiRlksGYJEmSJEmSMslgTJIk\n", + "SZIkSZlkMCZJkiRJkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOSJEmSJEnKJIMx\n", + "SZIkSZIkZZLBmCRJkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZjEmSJEmSJCmT\n", + "DMYkSZIkSZKUSQZjkiRJkiRJyiSDMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJmWQwJkmSJEmS\n", + "pEwyGJMkSZIkSVImGYxJkiRJkiQpkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJkiRlksGYJEmS\n", + "JEmSMslgTJIkSZIkSZlkMCZJkiRJkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJkiRJkpRJBmOS\n", + "JEmSJEnKJIMxSZIkSZIkZZLBmCRJkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIYkyRJkiRJUiYZ\n", + "jEmSJEmSJCmTDMYkSZIkSZKUSQZjkiRJkiRJyiSDMUmSJEmSJGWSwZgkSZIkSZIyyWBMkiRJkiRJ\n", + "mWQwJkmSJEmSpEwyGJMkSZIkSVImGYxJkiRJkiQpkwzGJEmSJEmSlEkGY5IkSZIkScokgzFJkiRJ\n", + "kiRlksGYJEmSJEmSMslgTJIkSZIkSZlkMCZJkiRJkqRMMhiTJEmSJElSJhmMSZIkSZIkKZMMxiRJ\n", + "kiRJkpRJBmOSJEmSJEnKJIMxSZIkSZIkZZLBmCRJkiRJkjLJYEySJEmSJEmZZDAmSZIkSZKkTDIY\n", + "kyRJkiRJUiYZjEmSJEmSJCmTDMYkSZIkSZKUSQZjkiRJkiRJyiSDMUmSJEmSJGWSwZgkSZIkSZIy\n", + "yWBMkiRJkiRJmWQwJkmSJEmSpEwyGJMkSZIkSVImGYxJkiRJkiQpkwzGJEmSJEmSlEkGY5IkSZIk\n", + "ScokgzFJkiRJkiRlksGYJEmSJEmSMslgTJIkSZIkSZlkMCZJkiRJkqRMMhiTJEmSJElSJhmMSZIk\n", + "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\n", + "6VL5+Pi47Dxvb2+tXr3aZeehYKMYAwAAAAAAuaZs2bI6ePCgatasec9n1axZU1999ZXKly/vgmQw\n", + "A4oxAAAAAACQqypWrKidO3cqOjraqbdI+vr6Kjo6Wjt37lTFihXdkBAFFcUYAAAAAADIE/r376+T\n", + "J0+qd+/e8vb2djjv7e2tvn376uTJk+wUg1MoxgAAAAAAQJ7h5eWlCRMm6MSJE+rfv7+qVq0qD4//\n", + "X194eHioatWq6t+/v37++WeNGzeOt0/CafzOAQAAAAAAeY6fn5+io6MVHR0tSbp161bW1wFXoRgD\n", + "AAAAAAB5HoUY3IGPUgIAAAAAAMCUKMYAAAAAAABgShRjAAAAAAAAMCWKMQAAAAAAAJgSxRgAAAAA\n", + "AABMiWIMAAAAAAAApkQxBgAAAAAAAFOiGAMAAAAAAIApUYwBAAAAAADAlCjGAAAAAAAAYEoUYwAA\n", + "AAAAADAlijEAAAAAAACYEsUYAAAAAAAATIliDAAAAAAAAKZEMQYAAAAAAABTohgDAAAAAACAKVGM\n", + "AQAAAAAAwJQoxgAAAAAAAGBKFGMAAAAAAAAwJYoxAAAAAAAAmBLFGAAAAAAAAEyJYgwAAAAAAACm\n", + "RDEGAAAAAAAAU6IYAwAAAAAAgClRjAEAAAAAAMCUKMYAAAAAAABgShRjAAAAAAAAMCWKMQAAAAAA\n", + "AJgSxRgAAAAAAABMiWIMAAAAAAAApkQxBgAAAAAAAFOiGAMAAAAAAIApUYwBAAAAAADAlCjGAAAA\n", + "AAAAYEoUYwAAAAAAADAlijEAAAAAAACYEsUYAAAAAAAATIliDAAAAAAAAKZEMQYAAAAAAABTohgD\n", + "AAAAAACAKVGMAQAAAAAAwJQoxgAAAAAAAGBKFGMAAAAAAAAwJYoxAAAAAAAAmBLFGAAAAAAAAEyJ\n", + "YgwAAAAAAACmRDEGAAAAAAAAU6IYAwAAAAAAgClRjAEAAAAAAMCUKMYAAAAAAABgShRjAAAAAAAA\n", + "MCWKMQAAAAAAAJgSxRgAAAAAAABMiWIMAAAAAAAApkQxBgAAAAAAAFOiGAMAAAAAAIApUYwBAAAA\n", + "AADAlCjGAAAAAAAAYEoUYwAAAAAAADAlijEAAAAAAACYEsUYAAAAAAAATIliDAAAAAAAAKZEMQYA\n", + "AAAAAABTohgDAAAAAACAKVGMAQAAAAAAwJQoxgAAAAAAAGBKFGMAAAAAAAAwJYoxAAAAAAAAmBLF\n", + "GAAAAAAAAEyJYgwAAAAAAACmRDEGAAAAAAAAU6IYAwAAAAAAgClRjAEAAAAAAMCUKMYAAAAAAABg\n", + "ShRjAAAAAAAAMCWKMQAAAAAAAJgSxRgAAAAAAABMiWIMAAAAAAAApkQxBgAAAAAAAFOiGAMAAAAA\n", + "AIApUYwBAAAAAADAlCjGAAAAAAAAYEoUYwAAAAAAADAlijEAAAAAAACYEsUYAAAAAAAATIliDAAA\n", + "AAAAAKZEMQYAAAAAAABTohgDAAAAAACAKVGMAQAAAAAAwJQoxgAAAAAAAGBKFGMAAAAAAAAwJYox\n", + "AAAAAAAAmBLFGAAAAAAAAEyJYgwAAAAAAACmRDEGAAAAAAAAU6IYAwAAAAAAgClRjAEAAAAAAMCU\n", + "KMYAAAAAAABgShRjAAAAAAAAMCWKMQAAAAAAAJgSxRgAAAAAAABMiWIMAAAAAAAApkQxBgAAAAAA\n", + "AFOiGAMAAAAAAIApUYwBAAAAAADAlCjGAAAAAAAAYEoUYwAAAAAAADAlijEAAAAAAACYEsUYAAAA\n", + "AAAATIliDAAAAAAAAKZEMQYAAAAAAABTohgDAAAAAACAKVGMAQAAAAAAwJQoxgAAAAAAAGBKFGMA\n", + "AAAAAAAwJYoxAAAAAAAAmBLFGAAAAAAAAEyJYgwAAAAAAACmRDEGAAAAAAAAU6IYAwAAAAAAgClR\n", + "jAEAAAAAAMCUKMYAAAAAAABgShRjAAAAAAAAMCWKMQAAAAAAAJgSxRgAAAAAAABMiWIMAAAAAAAA\n", + "pkQxBgAAAAAAAFOiGAMAAAAAAIApUYwBAADg/7VzxzgRw1AARINElSYVeyIf2yeCI2QlaGmRIA6a\n", + "92pL/9cj2wAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAA\n", + "AEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAA\n", + "ScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJ\n", + "whgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnC\n", + "GAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIY\n", + "AAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEnCGAAAAABJwhgAAAAAScIYAAAAAEmvqxd4Pp+rV/h1\n", + "+75vx3H86Px5nn+4EQAAAMD9rO5CL1cOm3O+bdv2fuVMAAAAAP6Vxxjj44pBnlICAAAAkHTpjbHv\n", + "5pyfq2YDAAAAcC9jjMs7lRtjAAAAACSt/Hz/sXA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/cFeLLb66Tn\n", + "xYEAAAAASUVORK5CYII=\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "show_bar(P1);\n", + "plt.title(\"Equilibrium configuration\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This configuration looks realistic. The tension appears to be maximal on the top springs near the wall." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How it works..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This example is conceptually simple. The state of the system is only described by the positions of the masses. If we can write a Python function that returns the total energy of the system, finding the equilibrium is just a matter of minimizing this function. This is the **principle of minimum total potential energy**, due to the second law of thermodynamics." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, we give an expression of the total energy of the system. Since we are only interested in the *equilibrium*, we omit any kinetic aspect and we only consider potential energy due to gravity (**gravitational force**) and spring forces (**elastic potential energy**)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let $U$ be the total potential energy of the system. It is the sum of the gravitational potential energies of the masses, and the elastic potential energies of the springs. Therefore:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$U = \\sum_{i=1}^n mgy_i + \\frac{1}{2} \\sum_{i,j=1}^n k a_{ij} \\left( ||\\mathbf{p}_i - \\mathbf{p}_j|| - l_{ij} \\right)^2$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where:\n", + "\n", + "* $m$ is the mass,\n", + "* $g$ is the gravity of Earth,\n", + "* $k$ is the stiffness of the springs,\n", + "* $\\mathbf{p}_i = (x_i, y_i)$ is the position of mass $i$,\n", + "* $a_{ij}$ is 1 if masses $i$ and $j$ are attached by a spring, $0$ otherwise,\n", + "* $l_{ij}$ is the relaxed length of spring $(i,j)$, or $0$ if masses $i$ and $j$ are not attached." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `energy` function implements this formula using vectorized computations on NumPy arrays." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## There's more..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following references contain details about the physics behind this formula:\n", + "\n", + "* [Potential energy](http://en.wikipedia.org/wiki/Potential_energy).\n", + "* [Elastic potential energy](http://en.wikipedia.org/wiki/Elastic_potential_energy).\n", + "* [Hooke's law, which is the linear approximation of the spring's response](http://en.wikipedia.org/wiki/Hooke%27s_law).\n", + "* [Principle of minimum energy](http://en.wikipedia.org/wiki/Minimum_total_potential_energy_principle)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You will find related recipes on the [book's repository](https://github.com/ipython-books/cookbook-code)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/featured/03_gps.ipynb b/featured/03_gps.ipynb index e3c4144..e42771f 100644 --- a/featured/03_gps.ipynb +++ b/featured/03_gps.ipynb @@ -1,717 +1,734 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:5286b45f32b884d0319ca69afc30f846b4ee9bec990305401e26537143c989ad" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Featured Recipe #3: Creating a route planner for road network" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this featured recipe, we create a simple **GPS-like route planner** in Python. We retrieve California's road network data from the *United States Census Bureau* in order to find shortest paths and compute road itineraries between any two locations in California." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Getting Ready" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this recipe, you need IPython, NumPy, Pandas, matplotlib." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You also need [NetworkX](http://networkx.github.io/) and [GDAL/OGR](http://www.gdal.org/ogr/). On Windows, you can find binary installers on [Chris Gohlke's webpage](http://www.lfd.uci.edu/~gohlke/pythonlibs/)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> At the time of this writing, NetworkX's support of Shapefile doesn't seem to be compatible with Python 3.x. For this reason, this recipe has only been successfully tested with Python 2.x." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You also need [**Smopy**](https://github.com/rossant/smopy) and [Pillow](https://pillow.readthedocs.org/en/latest/) for displaying [OpenStreetMap maps](http://www.openstreetmap.org/):" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!pip install smopy" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, you need to download the [*Road* dataset](https://github.com/ipython-books/cookbook-data) on the book's website an extract it in the current folder. The data comes from the [United States Census Bureau website](http://www.census.gov/geo/maps-data/data/tiger.html)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How to do it..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Let's import the packages." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import networkx as nx\n", - "import numpy as np\n", - "import pandas as pd\n", - "import json\n", - "import smopy\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline\n", - "import matplotlib as mpl\n", - "mpl.rcParams['figure.dpi'] = mpl.rcParams['savefig.dpi'] = 300" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [] - } - ], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. We load the data (a Shapefile dataset) with NetworkX. This dataset contains detailed information about the primary roads in California. NetworkX's `read_shp` function returns a graph, where each node is a geographical position, and each edge contains information about the road linking the two nodes." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "g = nx.read_shp(\"data/tl_2013_06_prisecroads.shp\")" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. This graph is not necessarily connected, but we need a connected graph in order to compute shortest paths. Here, we take the largest connected subgraph using the `connected_component_subgraphs` function." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sg = list(nx.connected_component_subgraphs(g.to_undirected()))[0]\n", - "len(sg)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 4, - "text": [ - "464" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. We define two positions (with the latitude and longitude). We will find the shortest path between these two positions." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "pos0 = (36.6026, -121.9026)\n", - "pos1 = (34.0569, -118.2427)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Each edge in the graph contains information about the road, including a list of points along this road. We first create a function that returns this array of coordinates, for any edge in the graph." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def get_path(n0, n1):\n", - " \"\"\"If n0 and n1 are connected nodes in the graph, this function\n", - " return an array of point coordinates along the road linking\n", - " these two nodes.\"\"\"\n", - " return np.array(json.loads(sg[n0][n1]['Json'])['coordinates'])" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. We will notably use the road path to compute its length. We first need to define a function that computes the distance between any two points in geographical coordinates. This function has been found in [StackOverflow](http://stackoverflow.com/questions/8858838/need-help-calculating-geographical-distance)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "EARTH_R = 6372.8\n", - "def geocalc(lat0, lon0, lat1, lon1):\n", - " \"\"\"Return the distance (in km) between two points in \n", - " geographical coordinates.\"\"\"\n", - " lat0 = np.radians(lat0)\n", - " lon0 = np.radians(lon0)\n", - " lat1 = np.radians(lat1)\n", - " lon1 = np.radians(lon1)\n", - " dlon = lon0 - lon1\n", - " y = np.sqrt(\n", - " (np.cos(lat1) * np.sin(dlon)) ** 2\n", - " + (np.cos(lat0) * np.sin(lat1) \n", - " - np.sin(lat0) * np.cos(lat1) * np.cos(dlon)) ** 2)\n", - " x = np.sin(lat0) * np.sin(lat1) + \\\n", - " np.cos(lat0) * np.cos(lat1) * np.cos(dlon)\n", - " c = np.arctan2(y, x)\n", - " return EARTH_R * c" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. Now, we define a function computing a path's length." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def get_path_length(path):\n", - " return np.sum(geocalc(path[1:,0], path[1:,1],\n", - " path[:-1,0], path[:-1,1]))" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. Now, we update our graph by computing the distance between any two connected nodes. We add this information in the `distance` attribute of the edges." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Compute the length of the road segments.\n", - "for n0, n1 in sg.edges_iter():\n", - " path = get_path(n0, n1)\n", - " distance = get_path_length(path)\n", - " sg.edge[n0][n1]['distance'] = distance" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "9. The last step before we can find the shortest path in the graph, is to find the two nodes in the graph that are closest to the two requested positions." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nodes = np.array(sg.nodes())\n", - "# Get the closest nodes in the graph.\n", - "pos0_i = np.argmin(np.sum((nodes[:,::-1] - pos0)**2, axis=1))\n", - "pos1_i = np.argmin(np.sum((nodes[:,::-1] - pos1)**2, axis=1))" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "10. Now, we use NetworkX's `shortest_path` function to compute the shortest path between our two positions. We specify that the weight of every edge is the length of the road between them." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Compute the shortest path.\n", - "path = nx.shortest_path(sg, \n", - " source=tuple(nodes[pos0_i]), \n", - " target=tuple(nodes[pos1_i]),\n", - " weight='distance')\n", - "len(path)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 11, - "text": [ - "19" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "11. The itinerary has been computed. The `path` variable contains the list of edges that form the shortest path between our two positions. Now, we can get information about the itinerary with Pandas. The dataset has a few fields of interest, including the name and type (State, Interstate, etc.) of the roads." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "roads = pd.DataFrame([sg.edge[path[i]][path[i + 1]] \n", - " for i in range(len(path) - 1)], \n", - " columns=['FULLNAME', 'MTFCC', \n", - " 'RTTYP', 'distance'])\n", - "roads" - ], - "language": "python", - "metadata": { - "strip_output": [ - 3, - 3 - ] - }, - "outputs": [ - { - "html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
FULLNAMEMTFCCRTTYPdistance
0 State Rte 1 S1200 S 100.658130
1 State Rte 1 S1200 S 33.419556
2 Cabrillo Hwy S1200 M 4.399051
3 State Rte 1 S1200 S 12.400382
4 Cabrillo Hwy S1200 M 36.693272
5 Cabrillo Hwy S1200 M 0.017746
6 Cabrillo Hwy S1200 M 0.439355
7 Cabrillo Hwy S1200 M 0.130107
8 State Hwy 1 S1200 S 0.007007
9 el Camino Real S1200 M 5.774056
10 el Camino Real S1200 M 0.507131
11 el Camino Real S1200 M 33.550742
12 US Hwy 101 S1200 U 140.786519
13 US Hwy 101 S1200 U 75.852281
14 Ventura Fwy S1200 M 49.045475
15 Hollywood Fwy S1200 M 0.885826
16 Hollywood Fwy S1200 M 14.087603
17 Hollywood Fwy S1200 M 0.010107
\n", - "
" - ], - "metadata": {}, - "output_type": "pyout", - "prompt_number": 12, - "text": [ - " FULLNAME MTFCC RTTYP distance\n", - "0 State Rte 1 S1200 S 100.658130\n", - "1 State Rte 1 S1200 S 33.419556\n", - "2 Cabrillo Hwy S1200 M 4.399051\n", - "3 State Rte 1 S1200 S 12.400382\n", - "4 Cabrillo Hwy S1200 M 36.693272\n", - "5 Cabrillo Hwy S1200 M 0.017746\n", - "6 Cabrillo Hwy S1200 M 0.439355\n", - "7 Cabrillo Hwy S1200 M 0.130107\n", - "8 State Hwy 1 S1200 S 0.007007\n", - "9 el Camino Real S1200 M 5.774056\n", - "10 el Camino Real S1200 M 0.507131\n", - "11 el Camino Real S1200 M 33.550742\n", - "12 US Hwy 101 S1200 U 140.786519\n", - "13 US Hwy 101 S1200 U 75.852281\n", - "14 Ventura Fwy S1200 M 49.045475\n", - "15 Hollywood Fwy S1200 M 0.885826\n", - "16 Hollywood Fwy S1200 M 14.087603\n", - "17 Hollywood Fwy S1200 M 0.010107" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here is the total length of this itinerary." - ] - }, - { - "cell_type": "code", - "collapsed": true, - "input": [ - "roads['distance'].sum()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 13, - "text": [ - "508.66434555909808" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "12. Finally, let display the itinerary on the map. We first retrieve the map with Smopy." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "map = smopy.Map(pos0, pos1, z=7, margin=.1)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 14 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "13. Our path contains connected nodes in the graph. Every edge between two nodes is characterized by a list of points (constituting a part of the road). Therefore, we need to define a function that concatenates the positions along every edge in the path. A difficulty is that we need to concatenate the positions in the right order along our path. We choose the order based on the fact that the last point in an edge needs to be close to the first point in the next edge." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def get_full_path(path):\n", - " \"\"\"Return the positions along a path.\"\"\"\n", - " p_list = []\n", - " curp = None\n", - " for i in range(len(path)-1):\n", - " p = get_path(path[i], path[i+1])\n", - " if curp is None:\n", - " curp = p\n", - " if np.sum((p[0]-curp)**2) > np.sum((p[-1]-curp)**2):\n", - " p = p[::-1,:]\n", - " p_list.append(p)\n", - " curp = p[-1]\n", - " return np.vstack(p_list)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 15 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "14. We convert the path in pixels in order to display it on the Smopy map." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "linepath = get_full_path(path)\n", - "x, y = map.to_pixels(linepath[:,1], linepath[:,0])" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 16 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "15. Finally, we display the map, with our two positions and the computed itinerary between them." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "plt.figure(figsize=(6,6));\n", - "map.show_mpl();\n", - "# Plot the itinerary.\n", - "plt.plot(x, y, '-k', lw=1.5);\n", - "# Mark our two positions.\n", - "plt.plot(x[0], y[0], 'ob', ms=10);\n", - "plt.plot(x[-1], y[-1], 'or', ms=10);" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 17 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![Route planner](images/road.jpg)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How it works..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We computed the shortest path with NetworkX's `shortest_path` function. Here, this function used **Dijkstra's algorithm**. This algorithm has a wide variety of applications, for example in network routing protocols.\n", - "\n", - "There are different ways to compute the geographical distance between two points. Here, we used a relatively precise formula: the **orthodromic distance** (also called **great-circle distance**), which assumes that the Earth is a perfect sphere. We could also have used a simpler formula since the distance between two successive points on a road is small." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## There's more..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can find more information about shortest path problems and Dijkstra's algorithm in the following references:\n", - "\n", - "* [Shortest path](http://en.wikipedia.org/wiki/Shortest_path_problem).\n", - "* [Dijkstra's algorithm](http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are a few references about geographical distances:\n", - "\n", - "* [Geographical distance](http://en.wikipedia.org/wiki/Geographical_distance).\n", - "* [Great circle](http://en.wikipedia.org/wiki/Great_Circle).\n", - "* [Great circle distance](http://en.wikipedia.org/wiki/Great-circle_distance)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Featured Recipe #3: Creating a route planner for road network" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this featured recipe, we create a simple **GPS-like route planner** in Python. We retrieve California's road network data from the *United States Census Bureau* in order to find shortest paths and compute road itineraries between any two locations in California." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting Ready" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this recipe, you need IPython, NumPy, Pandas, matplotlib." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You also need [NetworkX](http://networkx.github.io/) and [GDAL/OGR](http://www.gdal.org/ogr/). On Windows, you can find binary installers on [Chris Gohlke's webpage](http://www.lfd.uci.edu/~gohlke/pythonlibs/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> At the time of this writing, NetworkX's support of Shapefile doesn't seem to be compatible with Python 3.x. For this reason, this recipe has only been successfully tested with Python 2.x." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You also need [**Smopy**](https://github.com/rossant/smopy) and [Pillow](https://pillow.readthedocs.org/en/latest/) for displaying [OpenStreetMap maps](http://www.openstreetmap.org/):" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "!pip install smopy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, you need to download the [*Road* dataset](https://github.com/ipython-books/cookbook-data) on the book's website an extract it in the current folder. The data comes from the [United States Census Bureau website](http://www.census.gov/geo/maps-data/data/tiger.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How to do it..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Let's import the packages." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [] + } + ], + "source": [ + "import networkx as nx\n", + "import numpy as np\n", + "import pandas as pd\n", + "import json\n", + "import smopy\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "import matplotlib as mpl\n", + "mpl.rcParams['figure.dpi'] = mpl.rcParams['savefig.dpi'] = 300" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We load the data (a Shapefile dataset) with NetworkX. This dataset contains detailed information about the primary roads in California. NetworkX's `read_shp` function returns a graph, where each node is a geographical position, and each edge contains information about the road linking the two nodes." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "g = nx.read_shp(\"data/tl_2013_06_prisecroads.shp\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. This graph is not necessarily connected, but we need a connected graph in order to compute shortest paths. Here, we take the largest connected subgraph using the `connected_component_subgraphs` function." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "464" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sg = list(nx.connected_component_subgraphs(g.to_undirected()))[0]\n", + "len(sg)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. We define two positions (with the latitude and longitude). We will find the shortest path between these two positions." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "pos0 = (36.6026, -121.9026)\n", + "pos1 = (34.0569, -118.2427)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Each edge in the graph contains information about the road, including a list of points along this road. We first create a function that returns this array of coordinates, for any edge in the graph." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def get_path(n0, n1):\n", + " \"\"\"If n0 and n1 are connected nodes in the graph, this function\n", + " return an array of point coordinates along the road linking\n", + " these two nodes.\"\"\"\n", + " return np.array(json.loads(sg[n0][n1]['Json'])['coordinates'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. We will notably use the road path to compute its length. We first need to define a function that computes the distance between any two points in geographical coordinates. This function has been found in [StackOverflow](http://stackoverflow.com/questions/8858838/need-help-calculating-geographical-distance)." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "EARTH_R = 6372.8\n", + "def geocalc(lat0, lon0, lat1, lon1):\n", + " \"\"\"Return the distance (in km) between two points in \n", + " geographical coordinates.\"\"\"\n", + " lat0 = np.radians(lat0)\n", + " lon0 = np.radians(lon0)\n", + " lat1 = np.radians(lat1)\n", + " lon1 = np.radians(lon1)\n", + " dlon = lon0 - lon1\n", + " y = np.sqrt(\n", + " (np.cos(lat1) * np.sin(dlon)) ** 2\n", + " + (np.cos(lat0) * np.sin(lat1) \n", + " - np.sin(lat0) * np.cos(lat1) * np.cos(dlon)) ** 2)\n", + " x = np.sin(lat0) * np.sin(lat1) + \\\n", + " np.cos(lat0) * np.cos(lat1) * np.cos(dlon)\n", + " c = np.arctan2(y, x)\n", + " return EARTH_R * c" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. Now, we define a function computing a path's length." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def get_path_length(path):\n", + " return np.sum(geocalc(path[1:,0], path[1:,1],\n", + " path[:-1,0], path[:-1,1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. Now, we update our graph by computing the distance between any two connected nodes. We add this information in the `distance` attribute of the edges." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Compute the length of the road segments.\n", + "for n0, n1 in sg.edges_iter():\n", + " path = get_path(n0, n1)\n", + " distance = get_path_length(path)\n", + " sg.edge[n0][n1]['distance'] = distance" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. The last step before we can find the shortest path in the graph, is to find the two nodes in the graph that are closest to the two requested positions." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nodes = np.array(sg.nodes())\n", + "# Get the closest nodes in the graph.\n", + "pos0_i = np.argmin(np.sum((nodes[:,::-1] - pos0)**2, axis=1))\n", + "pos1_i = np.argmin(np.sum((nodes[:,::-1] - pos1)**2, axis=1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10. Now, we use NetworkX's `shortest_path` function to compute the shortest path between our two positions. We specify that the weight of every edge is the length of the road between them." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "19" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Compute the shortest path.\n", + "path = nx.shortest_path(sg, \n", + " source=tuple(nodes[pos0_i]), \n", + " target=tuple(nodes[pos1_i]),\n", + " weight='distance')\n", + "len(path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "11. The itinerary has been computed. The `path` variable contains the list of edges that form the shortest path between our two positions. Now, we can get information about the itinerary with Pandas. The dataset has a few fields of interest, including the name and type (State, Interstate, etc.) of the roads." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "strip_output": [ + 3, + 3 + ] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FULLNAMEMTFCCRTTYPdistance
0 State Rte 1 S1200 S 100.658130
1 State Rte 1 S1200 S 33.419556
2 Cabrillo Hwy S1200 M 4.399051
3 State Rte 1 S1200 S 12.400382
4 Cabrillo Hwy S1200 M 36.693272
5 Cabrillo Hwy S1200 M 0.017746
6 Cabrillo Hwy S1200 M 0.439355
7 Cabrillo Hwy S1200 M 0.130107
8 State Hwy 1 S1200 S 0.007007
9 el Camino Real S1200 M 5.774056
10 el Camino Real S1200 M 0.507131
11 el Camino Real S1200 M 33.550742
12 US Hwy 101 S1200 U 140.786519
13 US Hwy 101 S1200 U 75.852281
14 Ventura Fwy S1200 M 49.045475
15 Hollywood Fwy S1200 M 0.885826
16 Hollywood Fwy S1200 M 14.087603
17 Hollywood Fwy S1200 M 0.010107
\n", + "
" + ], + "text/plain": [ + " FULLNAME MTFCC RTTYP distance\n", + "0 State Rte 1 S1200 S 100.658130\n", + "1 State Rte 1 S1200 S 33.419556\n", + "2 Cabrillo Hwy S1200 M 4.399051\n", + "3 State Rte 1 S1200 S 12.400382\n", + "4 Cabrillo Hwy S1200 M 36.693272\n", + "5 Cabrillo Hwy S1200 M 0.017746\n", + "6 Cabrillo Hwy S1200 M 0.439355\n", + "7 Cabrillo Hwy S1200 M 0.130107\n", + "8 State Hwy 1 S1200 S 0.007007\n", + "9 el Camino Real S1200 M 5.774056\n", + "10 el Camino Real S1200 M 0.507131\n", + "11 el Camino Real S1200 M 33.550742\n", + "12 US Hwy 101 S1200 U 140.786519\n", + "13 US Hwy 101 S1200 U 75.852281\n", + "14 Ventura Fwy S1200 M 49.045475\n", + "15 Hollywood Fwy S1200 M 0.885826\n", + "16 Hollywood Fwy S1200 M 14.087603\n", + "17 Hollywood Fwy S1200 M 0.010107" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "roads = pd.DataFrame([sg.edge[path[i]][path[i + 1]] \n", + " for i in range(len(path) - 1)], \n", + " columns=['FULLNAME', 'MTFCC', \n", + " 'RTTYP', 'distance'])\n", + "roads" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is the total length of this itinerary." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "508.66434555909808" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "roads['distance'].sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "12. Finally, let display the itinerary on the map. We first retrieve the map with Smopy." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "map = smopy.Map(pos0, pos1, z=7, margin=.1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "13. Our path contains connected nodes in the graph. Every edge between two nodes is characterized by a list of points (constituting a part of the road). Therefore, we need to define a function that concatenates the positions along every edge in the path. A difficulty is that we need to concatenate the positions in the right order along our path. We choose the order based on the fact that the last point in an edge needs to be close to the first point in the next edge." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def get_full_path(path):\n", + " \"\"\"Return the positions along a path.\"\"\"\n", + " p_list = []\n", + " curp = None\n", + " for i in range(len(path)-1):\n", + " p = get_path(path[i], path[i+1])\n", + " if curp is None:\n", + " curp = p\n", + " if np.sum((p[0]-curp)**2) > np.sum((p[-1]-curp)**2):\n", + " p = p[::-1,:]\n", + " p_list.append(p)\n", + " curp = p[-1]\n", + " return np.vstack(p_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "14. We convert the path in pixels in order to display it on the Smopy map." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "linepath = get_full_path(path)\n", + "x, y = map.to_pixels(linepath[:,1], linepath[:,0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "15. Finally, we display the map, with our two positions and the computed itinerary between them." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(6,6));\n", + "map.show_mpl();\n", + "# Plot the itinerary.\n", + "plt.plot(x, y, '-k', lw=1.5);\n", + "# Mark our two positions.\n", + "plt.plot(x[0], y[0], 'ob', ms=10);\n", + "plt.plot(x[-1], y[-1], 'or', ms=10);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Route planner](images/road.jpg)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How it works..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We computed the shortest path with NetworkX's `shortest_path` function. Here, this function used **Dijkstra's algorithm**. This algorithm has a wide variety of applications, for example in network routing protocols.\n", + "\n", + "There are different ways to compute the geographical distance between two points. Here, we used a relatively precise formula: the **orthodromic distance** (also called **great-circle distance**), which assumes that the Earth is a perfect sphere. We could also have used a simpler formula since the distance between two successive points on a road is small." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## There's more..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can find more information about shortest path problems and Dijkstra's algorithm in the following references:\n", + "\n", + "* [Shortest path](http://en.wikipedia.org/wiki/Shortest_path_problem).\n", + "* [Dijkstra's algorithm](http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are a few references about geographical distances:\n", + "\n", + "* [Geographical distance](http://en.wikipedia.org/wiki/Geographical_distance).\n", + "* [Great circle](http://en.wikipedia.org/wiki/Great_Circle).\n", + "* [Great circle distance](http://en.wikipedia.org/wiki/Great-circle_distance)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/featured/04_scikit.ipynb b/featured/04_scikit.ipynb index 6718adb..073ae7d 100644 --- a/featured/04_scikit.ipynb +++ b/featured/04_scikit.ipynb @@ -1,847 +1,5889 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:e9a28ed3b80a8dbf3172298a17dcdb7a6ad1077cc4d1bc05f9668b9e4aefdd44" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Featured Recipe #4: Introduction to Machine Learning in Python with scikit-learn" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In **Statistical Data Analysis**, we are interested in getting insight into data, understanding complex phenomena through partial observations, and making informed decisions in the presence of uncertainty. In **Machine Learning**, we are still interested in analyzing and processing data using statistical tools. However, the goal is not necessarily to *understand* the data, but to *learn* from it." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Learning from data is close to what we do, as humans. From our experience, we intuitively learn general facts and relations about the world, even if we don't fully understand its complexity. The increasing computational power of computers makes them able to learn from data, too. That's the heart of [**machine learning**](http://en.wikipedia.org/wiki/Machine_learning), a modern and fascinating branch of artificial intelligence, computer science, statistics, and applied mathematics." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This featured recipe is a hands-on introduction to the most fundamental concepts in machine learning. These concepts are routinely used by data scientists. We will illustrate them with **scikit-learn**, a popular and user-friendly Python package for machine learning." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This featured recipe is [Chapter 8](https://github.com/ipython-books/cookbook-code/blob/master/toc.md#chapter-8-machine-learning)'s introduction. In the [book](http://ipython-books.github.io/), the rest of the chapter illustrates many standard machine learning algorithms for classification, regression, feature selection, clustering, and dimension reduction." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fundamental concepts in Machine Learning" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's describe the fundamental definitions and concepts of machine learning." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Learning from data\n", - "\n", - "In machine learning, most datasets can be represented as tables containing numerical values. Every row is called an **observation**, a **sample**, or a **data point**. Every column is called a **feature** or a **variable**." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's call $N$ the number of rows (or number of points), and $D$ the number of columns (or number of features). The number $D$ is also called the **dimensionality** of the data. The reason is that we can view this table as a set $E$ of vectors in a space with $D$ dimensions (or **vector space**). Here, a vector $x$ contains $D$ numbers $(x_1, ..., x_D)$, also called **components**. This mathematical point of view is very useful and we will use it throughout this recipe. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One generally makes the distinction between *supervised learning* and *unsupervised learning*." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* [**Supervised learning**](http://en.wikipedia.org/wiki/Supervised_learning) is when we have a label $y$ associated to every data point $x$. The goal is to learn the mapping from $x$ to $y$ from our data. The data gives us this mapping for a finite set of points, but what we want is to *generalize* this mapping. In other words, we want to find the label of any point $x$ that does not belong to our data.\n", - "\n", - "* [**Unsupervised learning**](http://en.wikipedia.org/wiki/Unsupervised_learning) is when we don't have any labels. What we want to do is discover some hidden structure in the data." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Supervised learning\n", - "\n", - "Mathematically, supervised learning consists of finding a function $f$ that maps a set of points $E$ to a set of labels $F$, knowing a finite set of associations $(x, y)$ which is given by our data. This is what generalization is about: after observing the pairs $(x_i, y_i)$, given a new $x$, we are able to find the corresponding $y$ by applying the function $f$ to $x$." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is a common practice to split the set of data points into two subsets: the **training set** and the **test set**. We learn the function $f$ on the training set, and test it on the test set. This is essential when assessing the predictive power of a model. By training and testing a model on the same set, our model may not be able to generalize well. This is the fundamental concept of **overfitting**, which we will detail later." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One generally makes the distinction between **classification** and **regression**, two particular instances of supervised learning." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* **Classification** is when our labels $y$ can only take a finite set of values (categories). Examples include:\n", - " * Handwritten digit recognition: $x$ is an image with a handwritten digit, $y$ is a digit between 0 and 9.\n", - " * Spam filtering: $x$ is an e-mail, and $y$ is 0 or 1 whether that e-mail is a spam or not." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* **Regression** is when our labels $y$ can take any real (continuous) value. Examples include:\n", - " * Predicting stock market.\n", - " * Predicting sales.\n", - " * Detecting the age of a person from a picture." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The figure below illustrates the difference between classification and regression." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![Difference between classification and regression](images/ml.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Unsupervised learning\n", - "\n", - "Broadly speaking, unsupervised learning helps us discover systemic structures in our data. It is harder to grasp than supervised learning, in that there is no precise question and answer in general." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are a few important terms related to unsupervised learning: \n", - "\n", - "* **Clustering**: Grouping similar points together within clusters.\n", - "* **Density estimation**: Estimating a probability density that can explain the distribution of the data points.\n", - "* **Dimension reduction**: Getting a simple representation of high-dimensional data points by projecting them onto a lower-dimensional space. This technique is notably used for data visualization.\n", - "* **Manifold learning** (or nonlinear dimension reduction): Finding a low-dimensional manifold containing the data points." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Feature selection and feature extraction\n", - "\n", - "In a supervised learning context, when our data contains many features, it is sometimes necessary to choose a subset of them. The features we want to keep are those that are most relevant to our question. This is the problem of **feature selection**." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Additionally, we may want to extract new features by applying complex transformations on our original dataset. This is **feature extraction**. For example, in computer vision, training a classifier directly on the pixels is not the most efficient method in general. We may want to extract the relevant points of interest or make appropriate mathematical transformations. These steps depend on our dataset and on the questions we want to answer." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For example, it is often necessary to preprocess the data before learning models. **Feature scaling** (or **data normalization**) is a common preprocessing step where features are linearly rescaled to fit in the range $[-1,1]$ or $[0,1]$." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Feature extraction and feature selection involve a balanced combination of domain expertise, intuition, and mathematical methods. These early steps are crucial, and they may be even more important than the learning steps themselves. The reason is that the few dimensions that are relevant to our problem are generally hidden in the high dimensionality of our dataset. We need to uncover the low-dimensional structure of interest to improve the efficiency of our learning models." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "*Chapter 8* illustrates a few feature selection and feature extraction methods. Methods that are specific to signals, images or sounds are covered in *Chapter 10* and *Chapter 11*. Here are a few further references:\n", - "\n", - "* [Feature selection in scikit-learn](http://scikit-learn.org/stable/modules/feature_selection.html)\n", - "* [Feature selection on Wikipedia](http://en.wikipedia.org/wiki/Feature_selection)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Overfitting, underfitting, and the bias-variance tradeoff" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A central notion in machine learning is the trade-off between [**overfitting**](http://en.wikipedia.org/wiki/Overfitting) and [**underfitting**](http://en.wikipedia.org/wiki/Underfitting). A model may be able to represent our data accurately. However, if it is *too* accurate, it may not generalize well to unobserved data. For example, in face recognition, a too-accurate model would be unable to identity someone who styled their hair differently that day. The reason is that our model may learn irrelevant features in the training data. On the contrary, an insufficiently trained model would not generalize well either. For example, it would be unable to correctly recognize twins. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A popular solution to reduce overfitting consists of adding structure to the model, for example with [**regularization**](http://en.wikipedia.org/wiki/Regularization_%28mathematics%29). This method favors simpler models during training ([Occam's razor](http://en.wikipedia.org/wiki/Occam%27s_razor))." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The [**bias-variance dilemma**](http://en.wikipedia.org/wiki/Bias-variance_dilemma) is closely related. The **bias** of a model quantifies how precise a model is across training sets. The **variance** quantifies how sensitive the model is to small changes in the training set. A robust model is not overly sensitive to small changes. The dilemma involves minimizing both bias and variance; we want a precise and robust model. Simpler models tend to be less accurate but more robust. Complex models tend to be more accurate but less robust." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The importance of this trade-off cannot be overstated. This question pervades the entire discipline of machine learning. *Chapter 8* contains many examples." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Model selection" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As we will see in *Chapter 8*, there are many supervised and unsupervised algorithms. For example, well-known classifiers that we will cover include logistic regression, nearest-neighbors, Naive Bayes, support vector machines. There are many others algorithms that we couldn't cover." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "No model performs uniformly better than the others. One model may perform well on one dataset and badly on another. This is the question of [**model selection**](http://en.wikipedia.org/wiki/Model_selection)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will see systematic methods for assessing the quality of a model on a particular dataset (notably cross-validation). In practice, machine learning is not an \"exact science\" in that it frequently involves trials and errors. We need to try different models and empirically choose the one that performs best." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That being said, understanding the details of the learning models allows us to gain intuition about which model is best adapted to our current problem." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are a few references on this question:\n", - "\n", - "* [Model evaluation in scikit-learn](http://scikit-learn.org/stable/modules/model_evaluation.html)\n", - "* [How to choose a classifier?](http://blog.echen.me/2011/04/27/choosing-a-machine-learning-classifier/)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "An important class of machine learning methods that we couldn't cover in *Chapter 8* include [**neural networks**](http://en.wikipedia.org/wiki/Artificial_neural_network) and [**deep learning**](http://en.wikipedia.org/wiki/Deep_learning). Deep learning is the subject of very active research in machine learning. Many state-of-the-art results are currently achieved by deep learning methods." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Getting started with scikit-learn" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's now introduce the basics of the machine learning package [**scikit-learn**](http://scikit-learn.org). This package is the main tool we are going to use throughout the chapter. Its clean API makes it really easy to define, train, and test models. Plus, scikit-learn is specifically designed for speed and (relatively) big data." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will show here a very basic example of **linear regression** in the context of **curve fitting**. This toy example will allow us to illustrate key concepts such as linear models, overfitting, underfitting, regularization, and cross-validation." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You will find all instructions to install scikit-learn on the [documentation](http://scikit-learn.org/stable/install.html)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How to do it..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will generate a one-dimensional dataset with a simple model (including some noise), and we will try to fit a function to this data. With this function, we can predict values on new data points. This is a curve-fitting regression problem." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. First, let's make all the necessary imports." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy as np\n", - "import scipy.stats as st\n", - "import sklearn.linear_model as lm\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. We now define the deterministic function underlying our generative model." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "f = lambda x: np.exp(3 * x)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. We generate the values along the curve on $[0, 2]$." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "x_tr = np.linspace(0., 2, 200)\n", - "y_tr = f(x_tr)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. Now, let's generate our data points within $[0, 1]$. We use the function $f$ and we add some Gaussian noise." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "x = np.array([0, .1, .2, .5, .8, .9, 1])\n", - "y = f(x) + np.random.randn(len(x))" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Let's plot our data points on $[0, 1]$." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "plt.figure(figsize=(6,3));\n", - "plt.plot(x_tr[:100], y_tr[:100], '--k');\n", - "plt.plot(x, y, 'ok', ms=10);" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAABhIAAANFCAYAAACeGGbGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAuIwAALiMBeKU/dgAAIABJREFUeJzs3X+YXXV9L/r3JJkkMAjEEEqEIFQ8AUNKOFC9c4IWL6Fw\nuAkFQq05V370Cv5CLIQW/HUgt/ZyEWvEKvjjXJDkYAOFBDRCtU3L0R6xVKTQhB+pEfQEjBCZYDQ/\nmITZ94+dZCaT7DAz2WvW3juv1/Psx73WrO9any/j83l45s13fRMAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY57WV\nXcAAtSU5KsnUJEckOTjJK0nWJfn3JD/cdgwAAAAAAOwjxiX54yR3JVmbpGcPn1eSLEnyjiE+a0/3\nHsjnyCE+FwAAAAAAGIKbUw0HhvJH/duTvG6Qz9ubEOHVCBIAAAAAAGBYPZLd/9G+O8nPkvxLkn9N\n0lXjun9O0jGI5wkSAAAAAABgN0aVXcAArEvy10nuT/JPSTb0+dmIJG9P8ufb/ne7t6a6MuEPh/C8\nx5NcNcgxLwzhOQAAAAAAwBD9MMlPUt0jYcwArh+R5MvZdbXAqQN8Xt8x/zjIWgEAAAAAgGF2Vga/\nWmJEqq886hsK3DHAsYIEAAAAAADYB5yfnUOBtQMcJ0gAAAAAAIDdGFF2AXX2T/2OX59kbBmFAAAA\nAABAK2i1IOHl3Zw7aNirAAAAAACAFtFqQcLhuzn30rBXAQAAAAAALWKwGxo3urf3O/5Zkq1DvNfE\nJG9I0pFkXZJfJlkz9NIAAAAAAICyfTc7b5z8xQGO6zvml0me6Xdu++fnSRYlOaOuVQMAAAAAAIU7\nKzv/0f/VJCcPcOzuQoPX+vwoyfH1Kx8AAAAAACjK65Oszs5/6F88iPH9Q4JX+31qhQkbkpxflxkA\nAAAAAACFGJHkgez8B/6u7H7j5Vp6kryQ5NYkc5JMSXLQtnsfmGRqkg8l+dfsGiZszq57MwAAAAAA\nAA3is9l1NcEfDvIeczLwjaffl2RTv2euTjJmkM8EAAAAAICG11Z2AXvpI0lu6nfu00k+VvBzz01y\nd6orFrb70yTz9/bGy5Ytm7C39wAAAAAAoFgzZsxYW3YNw2Wg/xV+I/ov2TVE+FqKDxGS5N4k/z3J\nRX3OXZA6BAlJXqzDPQAAAAAAKFaz/4f6AzbitS9pSDOTLOh3bnGSS4axhs/2O/6dJIcO4/MBAAAA\nAKBwzZiYvDPVzZX77knwd6mGC1uHuZZfZOfw4B1J/udgb7LtdUZWIgAAAAAANJ9DW/01R822IuFt\nSb6ZnUOE76e6Z8FwhwhJ8ny/40NKqAEAAAAAAArTTHsk/E6Sv03S0efco0nOSrKplIqSLf2O2+t1\n4+OOOy6jRjXTrwdoRBs3bsy0adOSJI899lj233//kisCWoHeAhRBbwGKoLcA9bZ169Y89dRTZZcx\n7JrlL9WTk/x9koP7nHsyyRlJfl1KRVWH9Tuu2/KVUaNGpb29brkEsI8aNWpUfvWrX+34rq8A9aC3\nAEXQW4Ai6C0A9dEMrzZ6Y5JlSSb0OfdMktOTvFRKRVVHJDmyz3ElyeqSagEAAAAAgEI0epAwMck/\nJDm8z7nnkpyWZE0pFfV6b7/j1Ul+UkYhAAAAAABQlEYOEl6f6uuMfrvPuRdTXYnws1Iq6nVckqv6\nnbuvjEIAAAAAAKBIjRokvC7Jt5O8pc+5dUl+P8nKOj7nhCRXJtlvEGOmpVrbAX3ObUxyQx3rAgAA\nAACAhtComy1/M8nJ/c59LsmhSWYM8l6PJHm5xs/GJflsko8nWZLk3iQ/zK57L7QlOT7JpUnel2R0\nv59/LMkvBlkXAAAAAAA0vEYNEn5vN+f+fIj3OjXJ917jmvGphgSXbjt+IdUw4deprjw4PMnBuxlX\nSTWI+MIQawMoVHd3907fOzo6SqwGaBV6C1AEvQUogt4CUB+NGiSU7be2ffbkV0k+lGRR8eUADM3W\nrVt3+x1gb+gtQBH0FqAIegtAfTTqHglJ9b/2r8dnT/4tyTWp7nnQNYDrK0meSvJnSY6KEAEAAAAA\ngBbXqCsShivg6ErymW2fJDkyyZuTTEp1/4T9kmxOdaPnNUke3vYdAAAAAAD2CY0aJJTlf237ALSE\nkSNH7vY7wN7QW4Ai6C1AEfQWgPpo5FcbAbCXxowZs9vvAHtDbwGKoLcARdBbAOpDkAAAAAAAANQk\nSAAAAAAAAGqyRwJAC+vo6EhXV1fZZQAtRm8BiqC3AEXQWwDqw4oEAAAAAACgJkECAAAAAABQkyAB\nAAAAAACoSZAAAAAAAADUJEgAAAAAAABqEiQAAAAAAAA1CRIAAAAAAICaBAkAAAAAAEBNggSAFrZx\n48Z0dnams7MzGzduLLscoEXoLUAR9BagCHoLQH2MKrsAAIpTqVSycuXKHd8B6kFvAYqgtwBF0FsA\n6sOKBAAAAAAAoCZBAgAAAAAAUJNXGwG0sDFjxuS2227b8R2gHvQWoAh6C1AEvQWgPtrKLoBk2bJl\nE5K82Pfc1KlT097eXlJFAAAAAAD0t2XLlixfvrz/6UNnzJixtox6hotXGwEAAAAAADUJEgAAAAAA\ngJoECQAAAAAAQE2CBAAAAAAAoCZBAgAAAAAAUJMgAQAAAAAAqEmQAAAAAAAA1CRIAAAAAAAAahIk\nAAAAAAAANQkSAAAAAACAmkaVXQAAxenp6cnKlSuTJJMnT86IEfJjYO/pLUAR9BagCHoLQH0IEgBa\n2KZNmzJ9+vQkyerVq9PR0VFyRUAr0FuAIugtQBH0FoD6EMMCAAAAAAA1CRIAAAAAAICaBAkAAAAA\nAEBN9kgAaGEdHR3p6uoquwygxegtQBH0FqAIegtAfViRAAAAAAAA1CRIAAAAAAAAahIkAAAAAAAA\nNQkSAAAAAACAmgQJAAAAAABATYIEAAAAAACgJkECAAAAAABQkyABAAAAAACoSZAAAAAAAADUJEgA\nAAAAAABqEiQAAAAAAAA1jSq7AACK093dnfnz5ydJ5s6dm9GjR5dcEdAK9BagCHoLUAS9BaA+2sou\ngGTZsmUTkrzY99zUqVPT3t5eUkVAq9iwYUMmTZqUJFm9enU6OjpKrghoBXoLUAS9BSiC3gLU25Yt\nW7J8+fL+pw+dMWPG2jLqGS5ebQQAAAAAANQkSAAAAAAAAGqyRwJACxs5cmTOPvvsHd8B6kFvAYqg\ntwBF0FsA6sMeCQ3AHgkAAAAAAI3PHgkAAAAAAAD9CBIAAAAAAICaBAkAAAAAAEBNggQAAAAAAKAm\nQQIAAAAAAFCTIAEAAAAAAKhJkAAAAAAAANQkSAAAAAAAAGoSJAAAAAAAADUJEgAAAAAAgJoECQAA\nAAAAQE2CBIAWtnHjxnR2dqazszMbN24suxygRegtQBH0FqAIegtAfYwquwAAilOpVLJy5cod3wHq\nQW8BiqC3AEXQWwDqw4oEAAAAAACgJkECAAAAAABQk1cbAbSwMWPG5LbbbtvxHaAe9BagCHoLUAS9\nBaA+2sougGTZsmUTkrzY99zUqVPT3t5eUkUAAAAAAPS3ZcuWLF++vP/pQ2fMmLG2jHqGi1cbAQAA\nAAAANQkSAAAAAACAmgQJAAAAAABATYIEAAAAAACgJkECAAAAAABQkyABAAAAAACoSZAAAAAAAADU\nJEgAAAAAAABqEiQAAAAAAAA1CRIAAAAAAICaRpVdAADF6enpycqVK5MkkydPzogR8mNg7+ktQBH0\nFqAIegtAfQgSAFrYpk2bMn369CTJ6tWr09HRUXJFQCvQW4Ai6C1AEfQWgPoQJAAAAAAAQD+VSiWP\nPfZYHn/88TzxxBNZsWJFnn/++dx+++1llzbsBAkAAAAAALDNSy+9lEWLFmXhwoVZtWrVTj876KCD\nSqqqXM0QJLQlOSrJ1CRHJDk4yStJ1iX59yQ/3HZcT2OT/KckxyYZl6Q7yeokDyd5ts7PAgAAAACg\nZGvXrs28efOyePHidHd3l11OQ2nUIGFcknOSnJnkf08yfg/Xbklyf5KbknxvL587Icl1SS5Osn+N\na36U5FNJvrmXzwIoXEdHR7q6usouA2gxegtQBL0FKILeAgxEpVLJvffem6uvvlrPqKERg4Sbk1yS\npH2A17enGjqck2RhksuT/HoIzz01yd3Zc2iRJCcluW/bsy5NNcgAAAAAAKDJrFu3LldccUWWLl1a\ndikNrRGDhLdl9yHC1iRrkryw7edvTPU1R31dmOrriE5LsmEQzzwlyQOpvtKor3WpvspoXJIjk4zs\n96wDkpw/iOcAAAAAANAA1qxZk/POOy8rV64su5SGN6LsAl7DulRXKJyV6h/z35jkrUlOTHJIkncm\n+ad+Y96a5PZBPGNckruyc4jw0yR/kOrqhJOTvCnVfRq+0m/seUmuHMSzAAAAAAAo2Zo1azJz5kwh\nwgA1YpBQSXUVwHuTvCHVVxV9O7uuMOhJ8t1Uw4Sv9vvZ7FRfVTQQf5ZkYp/jZ1LdaLn/Wpbnk3ww\nySf6nb82u66MAAAAAACgAa1bty7nnXdenn322bJLaRqNGCRcl2Rykq8leWUA1/ck+VCSR/qdv2QA\nYyekGlRsV0l134Nf7GHM/5udN3U+KMmfDuBZAAAAAACUqFKp5IorrrASYZAaMUh4INX9EAajJ8mN\n/c6dMYBx707S0ef4e0keHMC4/7vf8f81gDEAAAAAAJTo3nvvtbHyEDRikDBU/fdKeH123Ty5vz/o\nd3zrAJ/1YKqvX9rusCT/2wDHAgAAAAAwzNauXZurr7667DKaUisFCS/v5txBe7j+gCTv6HNcSfJ3\ng3jesn7HMwcxFgAAAACAYTRv3rx0dXWVXUZTaqUg4fDdnHtpD9dPSTKqz/GzSV4cxPO+3+942iDG\nAgAAAAAwTH75y19m8eLFZZfRtFopSHh7v+OfZc97LRzX7/jJQT7vqde4HwAAAAAADeDOO+9Md3d3\n2WU0rVYKEvpvePzAa1w/ud/x6kE+r//1RyYZPch7AAAAAABQoEqlkoULF5ZdRlMb9dqXNIWzsvOK\nhEqS219jzKH9jp8b5DNfSPJqkpHbjkckGZ9kzSDvA1CY7u7uzJ8/P0kyd+7cjB4t7wT2nt4CFEFv\nAYqgtwBJ8thjj2XVqlVll9HU2souoA5en+Tx7LxHwr1JZr/GuLuS/GGf4yuS/NUgn70+1U2bk2p4\ncWySHw/yHlm2bNmE9NufYerUqWlvbx/srQB2smHDhkyaNClJsnr16nR0dJRcEdAK9BagCHoLUAS9\nBUiS22+/PXPnzq3LvQ466KDd7bVw6IwZM9bW5QENqtlfbTQiyR3ZOUR4OclHBjD2gH7Hm4fw/E19\nvrft5p4AAAAAAJToiSeeKLuEptfsQcJnkpzZ57iS5P1Jnh/A2LH9joey08Yr/Y73G8I9AAAAAAAo\nyIoVK8ouoek18x4JH0lyZb9zNya5e4Dj+69AGMpL8sa8xj0BSjVy5MicffbZO74D1IPeAhRBbwGK\noLcASfLUU0+VXULTa9Y9Ev5Lqq806utrSd47iHsUsUfCcUn+fZD32O0eCW94wxsycuTIjB07NiNG\nDHzhyNatWzNqVG8+1NbWlv33339Q9WzevDmvvvrqjuP29vZBb0a0YcOGnY7322+/Qc/jlVd6F3yY\nh3kk5rGdefQyj17mUWUevcyjl3lUmUcv8+hlHlXm0cs8eplHlXn0Mo9e5lFlHr0aeR49PT055JBD\nBlXLntgjoXnMTLKg37nFSS4Z5H1+0+94sLvttGXXVxn1v+eQdXZ2ZvLkyXnjG9+YSZMmDfhz9NFH\n73R82mmnDfrZH/jAB3a6x/z58wd9j/51rVy5clDjv/Wtb5nHNubRyzyqzKOXefQyjyrz6GUevcyj\nyjx6mUcv86gyj17m0cs8qsyjl3n0Mo8q8+jVyPPo7h7KG+3pr9mChHem+uqivmvR/i7JnFRXBAzG\nC/2Ojxjk+N/qV0dPkl8O8h4AAAAAANDQmunVRm9Lsiw7rxz4fpLfT7JpCPe7KNXXIW33QKqrHQbq\nrUn+uc/xM0mOGUIdXm20G62+pGowzKOXeVSZRy/z6GUeVebRyzx6mUeVefQyj17mUWUevcyjl3lU\nmUcv8+hlHlXm0auR5+HVRvXRLEHC7yT5H0kO7nPu0VRXKPx6iPd8W5If9Dn+aZLfHsT4vQ0idthd\nkDB16tS0t7cP5XYAAAAAAGxz1FFHZf369XW5174aJDTDq40mJ/n77BwiPJnkjAw9RNh+jy19jt+Y\n5LBBjJ/e7/ixvagFAAAAAIACHHfccWWX0PQaPUh4Y6qvM5rQ59wzSU5P8tJe3vvXSb7X57ht230H\noi3JjH7nlu5lPQAAAAAA1Nnxxx9fdglNr5GDhIlJ/iHJ4X3OPZfktCRr6vSMb/Y7fu8Ax70zyVF9\njn+R5OF6FAQAAAAAQP1MmTKl7BKaXqMGCa9P9XVGffcseDHVFQM/q+Nz7kzSdxePd6QaEuxJW5Lr\n+p372u4uBAAAAACgXCeccELZJTS9RgwSXpfk20ne0ufcuiS/n2RlnZ+1NskX+537/1JdDVHLx5K8\nvc/xy0k+U+e6AAAAAACog2nTpuWYY44pu4ymNqrsAnbjm0lO7nfuc0kOza77EryWR1L9Q/+e3Jjk\novRutHx0koeSfCQ773twRJJPJnlfv/H/zwCeAQAAAABACdra2nLhhRfm2muvLbuUptWIQcLv7ebc\nnw/xXqdm5w2Vd2ddkj9K8p0kY7ede2OSb6QaEPw0ycFJjsyuKzjuS/LZIdYGAAAAAMAwmDNnTv7i\nL/4i3d3dZZfSlBrx1UZl+Kck/0eSrn7nD04yLdWNlfv/s/p6qgEEQMPauHFjOjs709nZmY0bN5Zd\nDtAi9BagCHoLUAS9Bdhu/PjxmT17dtllNK1GXJGQJJUSnvlgqvsyXJfqq4723801lST/muQvUl2N\nANDQKpVKVq5cueM7QD3oLUAR9BagCHoL0Ne8efPyne98J11d/f97cl5LIwYJZa6SeDHJZUmuSvKf\nkhyb6qqE7iTPJ3k4yTOlVQcAAAAAwJBMmDAhN954Yy655JKyS2k6Xm20e5uT/GOSW5Jcn+QvkyyK\nEAEAAAAAoGls3bo1V1xxRb773e8mSc4999zMmjWr5KqaTyOuSACgTsaMGZPbbrttx3eAetBbgCLo\nLUAR9BbYt23ZsiUf+MAHcu+99+buu+/O3/zN32T69Om56aab8uMf/zhPP/102SU2jbayCyBZtmzZ\nhFRfq7TD1KlT097eXlJFAAAAAADNq7u7O5dcckm+9a1v7TjX0dGRe+65J29729uyZs2azJw5M88+\n++yg7nvQQQdl8eLF/U8fOmPGjLV7X3Xj8mojAAAAAABaxsaNG/Oe97xnpxAhSTZs2JB3vetd+dGP\nfpSJEyfmW9/6Vo499tiSqmwuggQAAAAAAFrC+vXr8653vSvLli3b7c9//etf5/zzz8/jjz+eiRMn\n5v7777dnwgAIEgAAAAAAaHpdXV0577zz8tBDD+3xul/96lc577zz8sQTT2TcuHFZsGBBbr311owf\nP36YKm0+ggQAAAAAAJraL37xi8yaNSuPPvrogK7v6enJ5s2bdxyfe+65eeihhzJnzpyMHj26qDKb\nliABAAAAAICmtXr16sycOTNPPfXUgK4fN25c7rvvvpx00kk7nZ8wYUJuvvnmPPHEE/nzP//zHHPM\nMUWU25RGlV0AAAAAAAAMxapVq3LOOefk5z//+YCuP+SQQ3LvvfdmypQpNa8ZP358PvzhD+eyyy7L\nY489lscffzxPPvlkVqxYkeeee65epTcVQQIAAAAAAE1nxYoVmT17dtauXTug69/whjdkyZIl+Q//\n4T8M6Pq2traceOKJOfHEE3ec27JlS5YvXz6kepuZVxsBAAAAANBUfvjDH2bWrFkDDhGOPvroPPDA\nAwMOEdiZIAEAAAAAgKbxve99L+edd15+9atfDej6Y489Nvfff3+OPPLIgitrXYIEAAAAAACawne+\n85380R/9UTZs2DCg66dNm5alS5fmsMMOK7iy1maPBIAW1tPTk5UrVyZJJk+enBEj5MfA3tNbgCLo\nLUAR9BZoLUuWLMkHPvCBbN26dUDXd3Z2ZtGiRTnwwAMLrqz1CRIAWtimTZsyffr0JMnq1avT0dFR\nckVAK9BbgCLoLUAR9BZoHQsXLsyVV16ZSqUyoOtPO+20LFiwIPvvv3/Ble0bxLAAAAAAADSsW265\nJVdcccWAQ4RZs2bljjvuECLUkRUJAAAAAAA0nEqlkuuvvz6f/exnBzxmzpw5+fznP59Ro/zpu56s\n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\nCQAAAAAAdVOpVPLYY4/l8ccfzxNPPJEVK1bkqaeeyvr163e67sADD8xxxx2X448/PlOmTMkJJ5yQ\nadOmpa2traTKoVyCBAAAAACgpb300ktZtGhRFi5cmFWrVr3m9evXr8/DDz+chx9+eMe5Y445Jhde\neGHmzJmT8ePHF1kuNBxrdAAAAACAlrR27dpcdtllmTJlSq699toBhQi1rFq1Ktdee22mTJmSyy67\nLGvXrq1jpdDYBAm7NzHJSUnekWTqtmMAAAAAoAlUKpUsWbIknZ2dWbRo0Y79D+qhu7s7ixYtSmdn\nZ5YsWZJKpVK3e0OjEiTs7HdS3eT5+SQ/TPI/kjy+7fjnSRYlOaOs4gAGa+PGjens7ExnZ2c2btxY\ndjlAi9BbgCLoLUAR9JZ907p163LxxRfnkksuSVdXV2HP6erqyiWXXJKLL74469atK+w50AjskbCz\n12/77M5hSf5o2+dfk1yUZMUw1QUwJJVKJStXrtzxHaAe9BagCHoLUAS9Zd+zZs2anHfeeTt+78Nh\n6dKl+fGPf5zFixdn4kQvNqE1WZGwq0q/z+6cmOThJOcPV1EAAAAAQG1r1qzJzJkzhzVE2O7pp5/O\nzJkzs2bNmmF/NgwHQULV2iRfS/J/pvp6o9cnaU8yLskJST6c6iuO+tovyR1J3j58ZQIAAAAA/a1b\nty7nnXdenn322dJqePbZZzN79myvOaIlebVRNTy4O8nW3fxsfZLl2z63JHlfks8nGbPt56OT/HWS\nY5K8Us+iXnrppYwcOTJjx47NiBEDz3u2bt2aUaN6f61tbW3Zf//9B/XszZs359VXX91x3N7entGj\nRw/qHhs2bNjpeL/99hv0PF55pfcfqXmYR2Ie2w1mHmPGjMltt9224/t2zTaPWsyjl3lUmUevIudR\nq7f01+jzGCjz6GUevcyjqp7z2Lp1a770pS9l5MiRe+wtu9NI89iu2X8f25lHL/OoarZ5bP/3lu19\nZvt9mm0e2zX772O7es+jUqnkIx/5SCkrEfp7+umnc+WVV+b2228f0PWt+PtImmMe/Z+XJK+88spO\n8xg1atQu89i6dXd/Rm59ViRUN1Ae6G//q0n+S5KePucOT3JZvYvq7OzM5MmT88Y3vjGTJk0a8Ofo\no4/e6fi0004b9LM/8IEP7HSP+fPnD/oe/esabCP/1re+ZR7bmEcv86gazDxGjRqVc845J+ecc85O\n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\nJZCQHwz5RRIyzx83k8yczD2Ze+Y+c87MvN+v1/2a+5ycc13fk5n5zn2f731dF1AGuQWgPRQSAGpk\n69atVYcwYlu3bp3QhYRHHnkkP/MzP1NqH+MxImE0ayTMmTMnr3rVq7J8+fJTBYP+58uXL093d/ek\nHW0CAAAAtE4hAaBGtm3bVnUII7Z9+/aqQxiTnp6e0vsYjxEJXV1dOffcc3P06NFT+5YsWZJly5ad\nKhAUCwXz5s0rPS4AAABg8lBIAKiRxx9/vOoQRmyssR4+fDjPPfdcnnvuuTz77LODvi5btiy/8Au/\n0KZIhzZehYS+vr5SP93f0dGRj33sY1mwYEGWL1+enp6ezJw5s7T+IElmzpyZu+6669RzgHaQW4Ay\nyC0A7WHeghrYsmVLd5LdA/ddccUVmTFjRkURAVV59atfnd7e3qrDGJG5c+fm6aefHrSvr68vL774\nYnbv3n2qMNBfHOh/7Nq1K88999yw1/kt3/It+Yu/+ItS49+/f38uvvjiUvtIki9/+ctZtGhR6f0A\nAAAA5Tt+/Hgee+yx4u7F69at21NFPOPFiASAmjh58uSEKSIkSW9vb26++eY899xzpwoHu3fvzuHD\nh8fc9rPPPtuGCIc3f/78M6YEKsM3vvENhQQAAABgQlNIAKiJY8eOVR1Cyz7+8Y+X0u6ePXty/Pjx\nUkdmdXR0pKenJ0899VRb2lu0aFGWLVuWpUuXDvp64YUXtqV9AAAAgKooJABQO319fdm9e3eWLVtW\naj9Lliw5ayFh2rRpueCCC9LT05OlS5dm6dKl6enpSU9Pz6mCQU9PT84999xSYwUAAACoikICQE10\ndnZWHUKtPPvss6UXEl796ldn165dp4oExWLB0qVLc8EFF2T6dH8uAQAAgKnLnRGAChw5ciTPP/98\ndu/eneeffz579uzJnj170tnZOSGnOCrDc889V3ofd9xxR+l9AAAAAEx0CgkA4+itb31rnnjiiRw6\ndKjqUGpvPBZcBgAAAODsFBIAxtGRI0cUEZqYPXt2lixZkgsuuCBLlizJ8uXLqw4JAAAAgCgkAFNA\nX19fent7s3fv3jz//PPZt2/fqa8D9334wx/OxRdfXGos3d3dpbZfR/PmzcuSJUtOFQn6CwUDv15w\nwQWZPXt21aECAAAAMASFBGBC6evry+HDh7Nv375ThYD+rwOfF4sFJ06cOGvb73nPe0ovJHR1dZXa\n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\nAAAAAAAo0f8PwtD9IUwXllYAAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. Now, we use scikit-learn to fit a linear model to the data. There are three steps. First, we create the model (an instance of the `LinearRegression` class). Then we fit the model to our data. Finally, we predict values from our trained model." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# We create the model.\n", - "lr = lm.LinearRegression()\n", - "# We train the model on our training dataset.\n", - "lr.fit(x[:, np.newaxis], y);\n", - "# Now, we predict points with our trained model.\n", - "y_lr = lr.predict(x_tr[:, np.newaxis])" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": { - "style": "tip" - }, - "source": [ - "We need to convert `x` and `x_tr` to column vectors, as it is a general convention in scikit-learn that observations are rows, while features are columns. Here, we have 7 observations with 1 feature." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. We now plot the result of the trained linear model. We obtain a regression line, in green here." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "plt.figure(figsize=(6,3));\n", - "plt.plot(x_tr, y_tr, '--k');\n", - "plt.plot(x_tr, y_lr, 'g');\n", - "plt.plot(x, y, 'ok', ms=10);\n", - "plt.xlim(0, 1);\n", - "plt.ylim(y.min()-1, y.max()+1);\n", - "plt.title(\"Linear regression\");" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAABgwAAANzCAYAAAB1XDMtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAuIwAALiMBeKU/dgAAIABJREFUeJzs3XmcVNWd8P9P080irYIsiguCokEFRknUQIzbSBIdjYqM\nUWNY8miiMcYtv+TJOvI4mjjGmMwkxvGXEQFxIYagMRqNoGjGLZMoPuxCQAVFQUBA1m66nz9ONzTF\nre5abtWtqv68X6960XXr3nO+t+rWafp87zkHJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSFDREPMYmGpEkqVSMZ8/fEcuSDEiSJKnYapIOQJIktQvdgOsjti8DJhU5\nllSNCdcvSSpd/o6QJEntigkDSZJUDPsB/xKx/TmSTxhIkiRJkiSgQ9IBSJKkds07NyVJkiRJKhEm\nDCRJkiRJkiRJkgkDSZIkSZLSqEo6AEmSpGJyDQNJktTeOA2SJClKY8q/qT9LkiRJkiQpBv2BhojH\nMwnGJEmSJEmSWnBKIkmSJEmSJEmSZMJAkiRJkiRJkiSZMJAkSZIkSZIkSZgwkCRJkiRJkiRJQE3S\nAUiSJFWonsBI4HPAEOBAoCuwDlgNLAT+CDwOrCxwLN2As4FTmmLpD3QHOgNbgPeBxcBLTfH8rUBx\nHAicBhwHHAUcCfQA9gWqCe/NWuA94GXgeeC/gY8KFE9rBgDnEt6zo4A+wN7AJmAp8B/AxATiSucf\ngHOATwEDgf0J19sGYAkwnnC9ZapUrplmNcBw4ONNsewNbCNcLwua4nizwDFkogfweeAMYBBwKLAP\nYZH35cATwPVZlNcB+HRTeScSrsv9gVqgHlgPLANeJSwi/ziwNYbzSNWfcF5DgWObYti3KY5twGbC\n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\nAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. The linear fit is not well adapted here, since the data points are generated according to a nonlinear model (an exponential curve). Therefore, we are now going to fit a nonlinear model. More precisely, we will fit a polynomial function to our data points. We can still use linear regression for that, by pre-computing the exponents of our data points. This is done by generating a **Vandermonde matrix**, using the `np.vander` function. We will explain this trick in more detail in *How it works...*." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "lrp = lm.LinearRegression()\n", - "plt.figure(figsize=(6,3));\n", - "plt.plot(x_tr, y_tr, '--k');\n", - "\n", - "for deg, s in zip([2, 5], ['-', '.']):\n", - " lrp.fit(np.vander(x, deg + 1), y);\n", - " y_lrp = lrp.predict(np.vander(x_tr, deg + 1))\n", - " plt.plot(x_tr, y_lrp, s, label='degree ' + str(deg));\n", - " plt.legend(loc=2);\n", - " plt.xlim(0, 1.4);\n", - " plt.ylim(-10, 40);\n", - " # Print the model's coefficients.\n", - " print(' '.join(['%.2f' % c for c in lrp.coef_]))\n", - "plt.plot(x, y, 'ok', ms=10);\n", - "plt.title(\"Linear regression\");" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "22.03 -4.25 0.00\n", - "-476.66 1286.40 -1171.56 419.94 -38.56 0.00\n" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAABi4AAANzCAYAAAA+9ODAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAuIwAALiMBeKU/dgAAIABJREFUeJzs3Xl4VNX9+PF3FgiyBlBARMBdqVbcRayi4tKquH1daivS\nqlXrrnVta7G2tlbrQhHtomKrdW3rWosCLkXEHy5YFURRREA0bIIECAmZ3x8nYDK5k8yaGcj79Tzz\nkDlzzzmfzNybkPO55xyQJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJElS7tRGPE7Pa0SSpEIxksa/I2bnMyBJkqR8KM13AJIkSS2kC3BJRPls4L4WjiVeLM/9\nS5IKl78jJElSq2PiQpIktRZdgWsjyl8i/4kLSZIkSZJUpzjfAUiSJOWZd7JKkiRJklRATFxIkiRJ\nkiRJkqSCYeJCkiRJkqTCVZTvACRJklqae1xIkiS1PJenkiRFicX9G/+1JEmSJEmSNiL9gdqIx8Q8\nxiRJkiRJkuK4VJQkSZIkSZIkSSoYJi4kSZIkSZIkSVLBMHEhSZIkSZIkSZIKhokLSZIkSZIkSZJU\nMErzHYAkSZJypjtwHHA4sAuwOdAeWAosBN4HngWeARbkOJYuwJHAAXWx9AfKgTJgFfAF8CHwal08\nb+Qojs2BIcBAYEdgO6Ab0BkoIbw3S4DPgSnAy8AkYEWO4mnKNsAwwnu2I9AL6AhUAh8Do4CxeYgr\nkW8CRwH7ATsAPQjn23JgFjCScL4lq1DOmXVKgUHA7nWxdASqCOfLjLo4PslxDMnoBhwNHAJ8A+gL\ndAJqgbnAv4FLUmivGNi/rr29CedlD6ADUAMsA2YDbwITCZ/F6ix8H/H6E76v3YBd62LoXBdHFbCS\n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\n3q5dO/bff38GDx5Mz54917//r7/+euSd/vl6HyEkck466aRGyZKSkhIGDRrE3nvvTd++fenSpQur\nV69m/vz5vPLKK7z88svrzyOAWbNmcfLJJzNhwgQ6deqUVN/5FLUk2G677ZaHSKTCsmbNGm655RYA\nLr30Utq29Q8ZCbw2pKZ4fUjRvDaUa6/OWcbvXppD5Zq1zR9cp21JERcO3pLDtu+ew8gUxd1DWpnx\n48dvBjRYlHyXXXahTZs2We1n7dq1vP322wDsuuuuLb4h7ZqaWj77KvU7sAW9O5XRtnTjnIy1evVq\nDjzwwEbLCW277baMHj2avfbaK7Le9OnTueCCC5g2bRoAm2yySaNZAk899RT77bdfk/3X1tZy/PHH\n89///rdB+T777MOvfvWrJvc9WL58OTfddBN33nlng+Wd+vXrx8svv9zsOqC/+93vuPHGGxuUtW3b\nlquuuorzzz8/4TU6duxYrr32WiorK4HG3/v+++/PE0880WTfUXtclJSUrB/EHzZsGL/+9a/p3bt3\nZP2qqqoGG6Tn83384osvOPDAAxssC1VUVMSpp57KlVdeGbkPxDqffPIJl19+ORMnTmxQPmzYMO69\n994m+823t99+m4MPPrhBWWlpKe+//z5du3bNWj/5/t0hpaOyspItt9wSCEvIdejQIc8RSYXBa0NK\nzOtDiua1oVxZWxvjvjcW8NDbX6RUb/NObbl26FZs0719jiJrXnV1Ne+88058cY+hQ4c2vV71RsAZ\nF9ooffZVFT/6x/v5DmOD9KcTdqR/103yHUZOjBo1qlHSYocdduCZZ55pcvB1wIABPPXUUxx//PFM\nnTo17aWNRo8e3Wiw/ayzzuK3v/1ts3U7d+7M9ddfz0477cQFF1ywvnzOnDncc889XHjhhQnrzps3\nb/1dK+u0adOGv/zlLxx55JFN9jtixAh23HFHTjrpJCorK9P+3uOtS1qcffbZ3HDDDU0eWz9pAfl7\nHwEuuOCCBkmL0tJSxowZwwknnNBs3/379+fRRx/lggsu4O9///v68ieffJI333yzYDfsjsVikbOM\nvvOd72Q1aSFJkiRJUrZ9uaqa37zwCW99tqL5g+vZZ8vOXDGkH53KHD7Pl43ztmpJilNdXd3orva2\nbdty3333JTX42r59e/72t7/RpUuXtPpfuXIlf/jDHxqUHX744UkNttd36qmnctpppzUou+uuuxot\nfVXffffd1+j18847r9mkxTr77rsvP//5z1OKMxl77LEHv/71r1Oqk8/38c0332TChAkNyn7+858n\nlbSo79Zbb2X77bdvUHbbbbel1EZL+uMf/8jkyZMblLVt25ZrrrkmTxFJkiRJktS8GRWV/PjxmSkl\nLYqAEXtsznWHbW3SIs9MXEhqFZ555hkqKhqsksaZZ57Jdtttl3Qbm222GT/5yU/S6v+BBx5gyZIl\n65+XlJQ0WropWZdffnmDvSa++OILpk6dGnlsbW0t999/f4Oybt26cfnll6fU55lnnsm2226berBN\n+OUvf5nynhn5eh8Bbr/99gbPt9lmG84777yU+y0tLeXSSy9tUDZhwgTWrFmTclu5NnXqVEaOHNmo\n/KKLLkrp2pE2ZiUlJQwbNoxhw4a5vJlUj9eGlJjXhxTNa0PZEovFeHL6Qi57+kMWVSa+QTFe57IS\nbjhiG07drRfFWdrjU+kzcSGpVRg/fnyD50VFRQwfPjzldk499dS0NgiL39j4W9/61vq1O1O1xRZb\nMGDAgAZlkyZNijx25syZjRI2xx9/PO3atUupz3X7OGTLtttuy7777ptyvXy9j6tXr+a5555rUPbd\n73437c3KDz300Ebtv/7662m1lStz587ltNNOazQLZa+99uKKK67IU1RS4WnXrh1jx45l7NixKf9s\nlTZmXhtSYl4fUjSvDWXD6ppafvfSHEZPnkdNbaz5CnV22Kw9Y47bkT36dM5hdEqFiQtJrUL8oPB2\n222X1h3j5eXlDB48OKU6VVVVvPHGGw3K9tlnn5T7rq9v374Nnr/77ruRx0UNhg8dOjStPg877LC0\n6kVJ9T2E/L6Pb7zxRqMZEXvvvXfa/ZaXl9OpU6cGZf/73//Sbi/blixZwoknnthgPw+Anj17cu+9\n91Jc7H8fJEmSJEmFZf6yKi5+ciYTZi1Nqd6RO3bn90dtR4+Oqd+oqtxxoS5JG72VK1fy4YcfNigb\nOHBg2u0NHDiQF154Ienjp02bRlVVVYOy+++/n6effjrtGObPn9/g+eLFiyOPmz59eoPnRUVF7Lrr\nrmn1ud1221FWVtboe0nHN7/5zZTr5PN9fO211xqV/eQnP6FNmzZp97169eoGz+svgZVPy5cv58QT\nT2x0zXTp0oVHHnmEzTffPE+RSZIkSZIUbdLsL7n55TmsrK5Nuk7bkiIuHLwlh23fPYeRKV0mLiRt\n9KIGozPZryHVup999lmjsvnz5zcaNM9EokHvpUsb3mXQtm1bevTokVYfpaWlbLHFFnz88cdp1a9v\ns802S7lOPt/HqL4/+OCDrPULjT+rfKisrOSUU05h2rRpDco7dOjAww8/zM4775ynyCRJkiRJaqym\nNsbd/28+/3h3YfMH17N5p7ZcO3QrtunePkeRKVMmLiRt9JYtW9aorHPn9NcsTLVuSwxIr1q1KrL8\nyy+/bPA8k+87G/XXiV8mKRn5fB9bYjZEor5byqpVq/je977XaHZJ+/bteeihh9hrr73yFJkkSZIk\nSY0trFzDryd8wvSKypTq7bNlZ64Y0o9OZQ6NFzI/HW2Uencq408n7JjvMDZIvTuV5TuErFuxYkWj\nsvbt08+op1o3PnmwTrobO6fSVvzSSpksbQSktTF5lNLS1H/95PN9jOo7m/3mW1VVFaeddhr//e9/\nG5S3a9eO+++/n/322y9PkUmSJEmS1Ngb85bz2xfnsGx1TdJ1ioDT99icUwb2pHgj+pt+Y2XiQhul\ntqXF9O+6Sb7DUIHo2LFjo7KVK1em3V6qddu1a9eo7Pe//z0jRoxIO4Zkxc+QiEripOKrr77KqH4m\n8vk+brJJw58nRUVFTJkyJaMlxwrFmjVrGD58eKN9W8rKyvjrX//KgQcemKfIJEmSJElqqDYW4+9v\nfc7f3vycWAr1OpeVcPVB/dmjT3ZWklDumbiQtNHr0qVLo7Lly5en3V6qdbt3b7zJU0vtZ1BeXt7g\n+YoVK6ipqUlrxgPkdx+GfL6P3bp1a/A8FosVzGbamaiurmbEiBGMHz++QXnbtm0ZO3YshxxySJ4i\nkyRJklTo3n33XT766COOOeaYfIeiVmLZ6hpufPETXp+X2k2VO2zWnp8fshU9OmZnFQm1jOJ8ByBJ\nuRY14P3hhx+m3V6qdaM2w547d27a/aeiT58+DZ7X1tYyY8aMtNpasmQJn3/+eTbCSks+38eePXvm\nre9cqa6u5oc//CHjxo1rUN62bVvuueceDjvssDxFJkmSJKnQVVVVcc455/CDH/yAs88+O+HSvlK2\nzKio5Nx/vZ9y0uKoHTfl90dtZ9JiA2TiQtJGr3379my//fYNyqZNm5Z2e6nW3W233SgubvjjdvLk\nyWn3n4rdd9+9Udnrr7+eVlvp1suWfL6Pe+yxR6OyV199tUX6zoWamhrOOOMM/v3vfzcob9OmDX/5\ny1/49re/nafIJEmSJG0Ifvvb3zJ9+nQAHn30UQYPHtxo+VkpG2KxGP96t4JLn/qARZXVSdcrKy3m\nqiH9uHD/LWlb4hD4hshPTVKrsOeeezZ4/uGHH6Y16+LLL7/klVdeSalOeXk5u+66a6P+Z86cmXL/\nqdpzzz0bbSL92GOPpdXWo48+mo2Q0pbP93H//fdvtLzWuHHjqKlJfhOwQrF27Vp+9KMf8cwzzzQo\nLy0t5U9/+hNHHnlkniKTJEmStCGYMmUKo0aNalC2YMECTjjhBK688sqM9pSU6qtcs5ZfTfyEO6fM\nZ20KG1ps2aWM0cdsz8Hbdmv+YBUsExeSWoWhQ4c2KvvrX/+acjsPPvgg1dXJZ/jX+c53vtOo7Pbb\nb0+5nVR16dKFgw46qEHZlClTmDp1akrtzJ49m6effjqboaUlX+9jp06dGDx4cIOyzz77jIcffjjn\nfWdTbW0t55xzDk888USD8tLSUu666y6GDRuWp8gkSZIkbQi++uorzj33XGKx6FHkP//5zwwZMoQ3\n3nijhSPTxmb2klWc//hM/js7tWXIDtqmK6OP3YF+XTfJUWRqKSYuJLUKRx55ZKM9Ev7yl78wa9as\npNtYtGgRN910U1r9n3nmmY02CX/kkUca3fWeCz/84Q8blV122WWsWrUqqfo1NTVceumlrFmzJtuh\npSyf7+NPfvKTRmXXXnstc+bMyXnf2VBbW8v555/PP//5zwblJSUljBkzhuOOOy5PkUkbtpUrVzJo\n0CAGDRrk3YVSPV4bUmJeH9qQJfM30KxZsxotS5sMrw2t89wHi7nwiZnMX16VdJ02xUVcsF8frhrS\nj03alOQwOrUUExeSWoXS0tJGA/hr1qzh9NNPZ+nSpc3WX7lyJcOHD2fZsmVp9d+5c2cuuOCCBmWx\nWIxzzz2XZ599Nq02AZ5//vnIAfX6Dj/88EZLLL333nuceuqpLF++vMm6q1ev5uyzz+bll19OO8Zs\nyuf7uN9++zFkyJAGZV9++SUnnngiH3zwQVr9rl69mrFjxzJmzJi06icrFotx8cUXN5ohUlJSwh13\n3MEJJ5yQ0/6ljVksFmPmzJnMnDkz4Z2HUmvktSEl5vWhDdVzzz3Hfffd1+xxO++8M1deeWXK7Xtt\nqKqmllv/+yk3v/wpVSmsDdWzY1tuOXo7jh6wWaPlsrXhMnEhqdW48MIL2XbbbRuUvf/++3z7299u\ncuPp6dOnM2zYMF577TUANtkkvemGF154IQceeGCDssrKSk477TQuueSSpO/c/+ijj7jlllvYb7/9\nOHb/oi8AACAASURBVOWUU5gyZUqTxxcXFzN69GjatGnToPzll19m33335Z577mHRokUNXvvyyy95\n8MEHGTx4MI8//jgQlp3abrvtkooxl/L1PgLccccd9OrVq1E7Q4cO5bbbbms2EQThP+OvvfYa11xz\nDQMHDuSyyy7j008/TSrmdF1xxRU88MADDcqKi4v5wx/+wIknnpjTviVJkiRt+BYvXsyFF17Y7HFt\n27blrrvuom3bti0QlTYmny2v4uKnPuDZmYtTqrfPlp2549gd2GGzDjmKTPlS2vwhkrRxKCsrY/To\n0QwbNqzBskcffvghRxxxBHvvvTeHHnoovXv3pri4mAULFvDCCy8wadIkamtrgTBz44orruC6665L\nuf+SkhLuvfdeDj/88AYbg8diMf7617/ywAMPMHDgQPbbbz/69u1LeXk5sViMZcuWsWjRIt577z3e\nfvtt5s6dm3LfAwYM4MYbb+Syyy5rcOfKF198weWXX84VV1zBpptuSteuXVm2bBkLFy5c/z0DFBUV\nccstt3DPPfc0iL24uOXz3/l8H3v16sUDDzzAsGHDqKysXF9eWVnJ9ddfzy233MI+++zD3nvvTY8e\nPSgvL2f16tUsW7aMzz//nLfffpu33347qVk+2TJlyhTuueeeRuXt2rVjzJgx3HHHHWm3vfnmm29w\n+3xIkiRJSk0sFuOyyy6joqKi2WN/+tOfMmDAgBaIShuTSZ98yc0vzWFldW3zB9cpLoLT99ick3ft\nSbGzLDZKJi4ktSp77bUX9913H6effnqD5MW6u+DXzaqIUlRUxI033pjRrIMuXbowbtw4zjnnHJ57\n7rkGr61du5Y33ngjZ5uYnX766RQVFXHZZZc1SEpA+P4XLlzIwoULG9UrLi7mhhtu4Nhjj+WPf/xj\ng9c6deqUk1ibk8/3ceDAgYwbN44RI0Y02iOlsrKSiRMnMnHixJz0nY6amprI8pUrV/Luu+9m1PZX\nX32VUX1pY1BWVrY+OVhWVpbnaKTC4bUhJeb1oQ3NY489xpNPPtnscYMGDeLHP/5x2v14bbQ+NbUx\n7pn6GY+903xSrL7ydqVcc3B/BvbOz5iEWoZLRUlqdQ477DAeeughtthii6TrtG/fnlGjRjFixIiM\n19rs0qULDz74IDfccEOjDcNT1bdvX0499dSkjx8+fDjPP/88AwcOTOr4rbbaikcffZSzzjoLCEtI\n1de5c+fkg82yfL6PO+20E+PHj+ess86iXbt2afdbVFTE7rvvzqGHHpp2G5Lyq7S0lGOPPZZjjz2W\n0lLvCZLW8dqQEvP60Ibk008/bXY/QICOHTsyZswYSkrS3xTZa6N1qVixhsuf+TDlpMXOvTpw53E7\nmrRoBfwpIKlVOvDAA3n11Ve57bbbePjhh5k/f37kce3bt+eYY47h8ssvp1+/fgDrN3rKdMOns88+\nmxEjRvD3v/+dJ554gtdff51Vq1Y1WaekpIRddtmFAw88kEMP/f/s3Xd8VFXex/HvzKQnpBJqEgIE\nEFYg0gSCgggi4iLq2hVYVtYuUuztQVcFWQEBFcXHLuraHhDXFkExFJEq0kRqKCGBFEIKKTPPHyOQ\nSZ07ZDKT5PN+vXiROTnnnt+95GSY+7vnnKHq16+f4X4TExOVnJysFStWaPHixVqzZo3S09OVmZmp\ngIAAtW7dWomJiRo+fLhGjBjhcJ7lpwZHRETU2F9tXa+qeOo6NmnSRNOmTdPkyZO1YMECfffdd9qy\nZYtKS0urbGMymRQYGKjevXtr0KBBGj58uNv3DXH39QcAAADQMJWUlOi2225zaqb1M888c/ozM1CT\nNak5ev6HfTp+surPz5W5tlsz/b1XK1nMfL5tDPhXbmSSk5OjJTnceezatWuFTXvPVmlpqTZt2iRJ\n6t69+1ll3IG6sGHDBu3atUtHjhxRcXGxwsPD1bFjR/Xs2bPOpqgWFRVpw4YNSktLU1ZWlrKzs2Wx\nWNSkSRNFRkYqISFBCQkJHtvkbNeuXerTp49D2dy5cw3NVKgLnryOOTk52rBhg44dO6bMzEzl5uYq\nMDBQISEhatGihRISEhQfH08SoQq8dwAAAADe49///reeffbZGusNGzZMCxcu5HMOalRqtemtdYf1\n0aYjhtoF+1n0wMA26tcmzE2Rea/i4mJt3ry5fHGzIUOGVFzru4FhxgUASDrvvPN03nnneTQGPz8/\nnX/++R6NoTrl95KQpB49enggkup58jqGhYVp0KBBHukbAAAAAGrL2rVrNX369BrrRUZGavbs2SQt\nUKOjeUV6dtle/ZaWZ6hdQlSgHr+4rVqGsu9JY0PiAgBQo6Kiogobczdt2lTnnHOOhyICAAAAALjD\niRMndNttt1W7DO4ps2bNUvPmzesgKtRnaw8c1/Qf9imnsMRQu8vOidKdfWPk58M2zY0RiQsAQI0e\nffRRpaamOpTdfPPNHooGAAAAAOAuDz/8sPbs2VNjvVtuuUV//etf6yAi1FelVpveWX9YH248IpuB\ndv4+Zk1IitWQDpFuiw3ej8QFADQSX3/9tUpKSnTZZZfJbHbuaYWioiI9/PDDeuuttxzKfX199fe/\n/90NUQIAAAAAPGXRokV6//33a6zXrl07PfPMM3UQEeqrY/nFem7pXv2adsJQu5gwfz1+cVu1jQx0\nU2SoL0hcAEAjsX37dj399NNq1aqVRowYoaFDh6pbt26Kjo52qGe1WrVt2zYlJydrwYIFOnz4cIVj\nPfjgg4qJiamr0AEAAAAAbnbw4EFNnDixxno+Pj567bXXFBISUgdRoT5af/C4pi3bp2yDS0MNbh+h\nCQNiFehrcVNkqE9IXABAI3Po0CEtWLBACxYskCSFhoYqIiJCAQEBys3NVWZmpgoLC6tsf9FFFzn1\nn1kAAAAAQP1gtVp11113KTs7u8a6Dz30kHr06FEHUaG+KbXa9P6GNL2/Ic3Q0lC+FpPu6hej4Z2i\n2Ogdp5G4AIBG7vjx4zp+/HiN9Uwmk2666Sa98MILdRAVAAAAAKCuvPTSS1q+fHmN9fr166cJEybU\nQUSobzLzizXth73aeMjY0lCtQ/312MXxah8V5KbIUF+RuACARqJbt27q1KmTduzYYaidyWRSjx49\nNHnyZA0bNsxN0QEAAAAAPOHAgQP617/+VWO90NBQzZ8/XxYLy/jA0YZDuZq2bK+yCowtDTWoXbju\nGxCnID9+plARiQsAaCQGDx6slStXavfu3Vq5cqXWrl2rPXv2KDU1VdnZ2SooKJDJZFJ4eLjCw8PV\ntm1b9e3bVxdccIESExM9HT4AeCWr1Xo6IdypUyeZzWYPRwR4B8YGUDXGB7xNTEyMXn31VU2cOFE5\nOTlV1nvhhRcUGxvrtjgYG/VPqdWmDzam6b0NabIaWBvK12LSHX1jNOIcloZC1UhcAEAj065dO7Vr\n104333yzp0MBgHqvoKBASUlJkqTU1FQFBwd7OCLAOzA2gKoxPuCNRo0apV69eunOO+9USkpKhe9f\nd911uvrqq90aA2OjfskqKNa0Zfu04VCuoXatQv302OC2SmjK0lCoHqlLAAAAAAAAoJGLiYnR559/\nrv/5n/+Rr6/v6fK4uDhNnz7dg5HB22w6lKs7Pt9uOGlxYdtwvTTqHJIWcAqJCwAAAAAAAACyWCy6\n99579e2336pDhw4ym82aP3++QkNDPR0avIDVZtP7G9L04Fd/KDPf+f0sfM0m3d0/Ro8Ojlcw+1nA\nSSwVBQAAAAAAAOC07t27a9myZfrpp5/Ut29fT4cDL5CVX6znf9yndQeNzbJo0cRPj13cVh2ZZQGD\nSFwAAAAALgoODlZmZqanwwC8DmMDqBrjA/VFUFCQhg0bVmf9MTa814aDuZr+w15lFjg/y0KSBsSH\nadIFcQrx5xY0jOOnBgAAAAAAAADgoNRq03sb0rRwQ5psBtr5mE0a36eVRv0lWiaTyW3xoWEjcQEA\nAAAAAAAAOC0jr0jPLdur39LyDLVrHuKnRwfH65xmwW6KDI0FiQsAAAAAAAAAgCTp5/05mvHjPh0/\nWWqoXb82YZpyYZyasDQUagE/RQAAAAAAAADQyBWXWvXGL4f06W8ZhtpZTNL481vrSpaGQi0icQEA\nAAAAAAAAjdjh3JN6dule7cjIN9SuWYivHh3cVp1ZGgq1jMQFAAAAAAAAADRSy/dkadZPqcorMrY0\nVFKbME1iaSi4CT9VAAAAAAAAANDIFJVYNf/ng1qy7aihdr5mk/55fmuN7NKUpaHgNiQuAAAAAAAA\nAKARSc0u1DNL92h3ZqGhdq1C/fXo4Hh1aBrkpsgAOxIXAAAAAAAAANBIJO/M1JwVqSossRpqd1H7\nCE1IilWQn8VNkQFnkLgAAAAAAAAAgAauoLhU81Ye0Hc7Mw2187eYdFf/WA3rGMnSUKgzJC4AAAAA\nAAAAoAHbfaxAzyzdo9Sck4batYkI0KOD4xUfEeimyIDKkbgAAAAAXFRUVKSZM2dKkiZNmiQ/Pz8P\nRwR4B8YGUDXGB1A5xoZ72Gw2fbn9mF5ZfUDFpTZDbYd3itId/WIU4GN2U3RA1Zjb08gkJydHS0ov\nW9a1a1f5+vrWaj+lpaXatGmTJKl79+6yWFj7DgBQPd47UB/l5eUpNjZWkpSamqrg4GAPRwR4B8YG\nUDXGB1A5xkbtyysq1eyf9uvHPdmG2gX5mjVhQJwuah/hpsjgrOLiYm3evLl8cbMhQ4ZkeCKeusSM\nCwAAAAAAAKAeKyoqkslkqvUHU1F/bUvP03PL9iott8hQu4SoQD06uK1ah/m7KTLAOczzAQAAAAAA\nAOqx//mf/9Ff//pXHThwwNOhwMOsNps+3JSmSV/8bjhpMeov0Zo9siNJC3gFZlwAAAAALrJYLBo5\ncuTprwHYMTaAqjE+UNuWLFmi+fPnS5IGDRqkV155RUOHDvVwVMYxNs7esfxiPf/DXm04dMJQuyb+\nFk26IE5J8eFuigwwjj0uGhn2uAAAeCveOwAAAABj9u7dq0GDBun48eMO5ffdd58eeeQR+fjwzHJj\nsSY1RzN+3K+cwhJD7bo0C9Yjg+PVLITN0L1RY97jgqWiAAAAAAAAgHrm5MmTGjduXIWkhSTNnj1b\nV1xxhQ4dOuSByFCXikqtmr/6gB77ZrfhpMX13Zvr35d3IGkBr0TiAgAAAAAAAKhnHn/8cW3cuLHK\n769atUqDBg3SypUr6zAq1KUDOYW6b/Hv+uw3Yw/fhwf46NlL22tc71byMbMgD7wT88UAAAAAAACA\neuTzzz/X66+/XmO9goICNW3atA4iQl2y2Wz6bmem5q08oMISq6G2ia1C9OCgeEUF1e6y8UBtY8YF\nABiUkpKiqKgohz8rVqzwdFgAAAAAgEZg165dmjBhglN1Z86cqY4dO7o5ItSlvKJSTfthn/69fL+h\npIXZJP29V0s9d2kCSQvUC8y4qMhP0jmS4iW1ltREkq+k45KOSdokabuk0lrqL0BS/z/7jJBUJClV\n0s+S9tRSHwDcyGQyyWRiaiUAAAAAwL0KCws1btw4nThxosa6o0eP1jXXXFMHUaGubE/P03PL9upw\nbpGhds1D/PTI4Hh1bhbspsiA2kfiwu5vkoZISpI9gWCpoX6OpA8kvShph4t9Rkt6UtJYSUFV1Fkn\n6WlJi13sA0AdsNlsng4BqNG0adM0Y8aMWjlWQkKCfv7551o5FgAAAADnPfLII9q8eXON9c4991w9\n99xzdRAR6oLVZtMnv6brzbWHVGrwFsTAtuGaMCBWIf7cBkb9wk+s3WxJrQzUD5N0u6R/SHpW0lSD\n/Q2S9LGkqBrq9ZT0f5LekTReUrHBfgAAqHXMMAIAAADq3ieffKK33nqrxnohISF64403FBgY6P6g\n4HaZ+cV6/sd9Wn8w11A7fx+z7uwXo0s7RvIZDvUSiYvK2SQVStov++wKs6SmkuLkuC+Ir+yzJmIl\n3erksQdI+q/sS0SVlSX70lARf/ZTdtbHaEkhss8MAQAAAAAAQCOydetW3XfffU7VnT17thISEtwc\nEerCL6nHNePHfcouLDHUrl1koB65KF5xEeVvPwL1B4kLO5ukg5K+lLRc0ipVvr9EuOzJgyckxZQp\nHycpRdJbNfQTIekjOSYt9kqaIOmLMmWtJT0m6bYyZVdJmihpVg19AADglK5du7rULi4urpYjAQAA\nAFCV48ePa+zYscrPz6+x7rhx43TVVVfVQVRwp+JSq95ce1ifbE433PaKLtEa36eV/HzMNVcGvBiJ\nC7vhkn5zol62pNclfSIpWVKPMt97VtLbsidBqnK/pJZlXu+WfQZGWrl6ByXdIfuMj2fKlD8h6c0/\n4wAAwGUmk0k//PCDp8MAAAAAUA2bzaa7775bf/zxR411u3Xrpn/96191EBXc6WBOoZ5dtlc7jxYY\nahfqb9HkC9uoX5swN0UG1C1Sb3bOJC3KypZ0sxyTFC1k39y7KtGS7inz2ib7vhXlkxZlPSf7DJBT\nwiRNMRQpAAAAAAAA6qW5c+dqyZIlNdZr0qSJ3nzzTQUEsDRQfWWz2fTdzmO68/92GE5adG8ZovlX\nnUPSAg0KiQvXbZe0rlxZl2rqXy8puMzr5ZKWOdFP+Y2/xznRBgAAAHUgPz9f/fr1U79+/ZxavgFo\nLBgbQNUYH3BWSkqKnnrqKafqzp07V23btnVzRO7VmMfGiZMlem7ZXs34cb8Kiq1OtzObpLE9W2ra\n8AQ1DfZzY4RA3WOpqLOzW1KvMq8jq6l7RbnX/+tkH8tk32/j1LtPC0l9Ja12sj0AAADcxGazaceO\nHae/BmDH2ACqxviAMw4dOqR//OMfslprvol91113aeTIkXUQlXs11rHxW9oJTf9hn46cKDLUrnmI\nnx66qI3+0jzETZEBnkXi4uyUn3+XVUW9EEkXlnltk/StgX6SZV9W6pTLReICqDU2m00bN27U7t27\ndfjwYZWUlCg8PFydOnVSjx495O/vXydxHDhwQFu2bNHRo0d17Ngxmc1mRUVFqWXLlurdu7eCg4Nr\nPohBGRkZWrdundLS0nTs2DEFBgYqNjZWiYmJio2NrfX+qlNaWqrNmzdrx44dSk9P18mTJxUUFKRz\nzz1XF154Yc0H+JMnrqNk/znaunWr9uzZo6NHjyorK0tBQUFq2rSp4uLi1KNHD1ksFrf0DQAAAKDh\nKC4u1rhx45SRkVFj3f79++vJJ5+sg6hQ20qtNr2/IU0LN6bJajBPc0HbcE0cEKsQf27touHip9t1\nJkm9y5WtraLuX+R4rfdISjfQ1wo5Ji4SDbQFUIW8vDzNnj1bH330kQ4ePFhpneDgYF155ZWaPHmy\n4uLiaj2GQ4cO6ZVXXtG3335b7WZrvr6+6tWrl/7xj3/oyiuvPOt+v/rqK7388statWpVlU+ydO3a\nVXfeeaeuvfba02V//etftXLlytOvk5KStHjx4mr7SklJ0RVXOE46W7x4sZKS7NsCHThwQHPmzNEn\nn3yinJycCu2TkpJqTFx46jpK0oYNG/Taa69p2bJl1X6wCAkJ0aBBgzRhwgT16NGjVvoGAAAA0PA8\n8cQTWrNmTY31WrRoof/93/+Vjw+39+qbw7knNX3ZPm1NzzPUzt9i0h39YjS8U5RMJpObogO8A7/Z\nXDdOUssyr39TxT0vTulc7vVWg31tq+F4qIa1qFjW4hJJktnXR2Y/Xw9H5B0a+3X58ccfdc8991SZ\nsDglLy9P7733nj777DPNmDFD119/fa30X1BQoOeee06vv/66Tp48WWP94uJirVq1SqtWrdKsWbP0\n6quvqnNn478KMjMzde+99+qrr76qse7mzZt1xx136P3339ebb76pyMiKq+G58h8lk8l0ut27776r\nhx9+WAUFVW88Vl0fnrqOkpSamqpHH31UX375pVP1T5w4oSVLlmjJkiW6/PLLNXfuXIWGhrrUNwDv\n4e/vrzfeeOP01wDsGBtA1RgfqM6nn36qV199tcZ6Pj4+euONN9S8efM6iKpuNJaxkbwzU/NWpirf\nwF4WktQ2IkCPDI5Xm4hAN0UGeBcSF64ZI+nlMq9LJN1ZTf1O5V6nGuyvfP04SX6SjC1+18hkLF2t\nva8sVObKDbKVlkqSTBaLIvufp/g7blT04L4ejtAzuC7SN998ozFjxqi4uNjpNvn5+brrrrtUWFio\nhISEs+r/yJEjuummm7RhwwaX2m/ZskWXXnqpXn/9dQ0dOtTpdseOHdOoUaO0daux3GlKSopGjBih\nr7/+2miolbLZbLLZbJozZ46mTp3q8nE8dR0l6ZdfftHNN9+so0ePutT3kiVLtH37dn344Yf1fgM9\noLHz8fHRqFGjPB0G4HUYG0DVGB+oSl5enh566CGn6k6dOlV9+zasz+8NfWzkFZVqzopULdtV1Urz\nVRvZpanG92ktfx+zGyIDvBOJi8p1lD05cIqvpAhJ58q+yXbZx3PzJf1dUko1x2tW7vUBg/EckVQq\n6dTi6GZJUZIOGzxOo5GRvFLrxzwgW6lj9tpWWqpjP61V5sr16vH284oe0t9DEXoG10Vas2ZNpUkL\ns9msXr16aejQoWrdurV8fHx08OBBLV26VCtXrlTpn0meBx54QI899pjL/aenp+uSSy7RgQOOvwZM\nJpM6d+6spKQknXPOOaefxM/IyNAvv/yi7777TidOnDhd/8SJExo7dqy+/vprde3atcZ+S0pKdO21\n11aatGjRooVGjBihzp07KzIyUllZWdq5c6e++uor7du3T5L0+++/64477qi1qajLli3TrFmzTr8O\nCAjQgAEDlJSUpObNm5++/mvXrlV+fn6F9p66jpI9kXPttddWmOFhsVjUr18/9enTR3FxcQoLC1Nh\nYaEOHjyoFStWaPny5ad/jiTpjz/+0HXXXafvv/9eTZo0carv2mSz2fTKK69o1apV2rZtm44ePar8\n/HyFh4crPDxc8fHx6tevn5KSktS7d/mVEQEAAADUtuDgYH366acaM2bM6c9ilbnyyit1++2312Fk\nOFtbjpzQtGXGN+AO9bdo0oVx6t8m3E2RAd6LxdAqN1vSvTXUKZb0maQnJO2soe5Hkq4p8/o+SXMM\nxnRc9k2+Jfvm3uc40W8FycnJ0Sq3v0bXrl3l61u7ywSVlpZq06ZNkqTu3bvX6Ya0GckrtfH2J1R6\nouLNzrIsIUFKnP9Ug75JXxbXRSosLNTAgQMr7IGQkJCgefPmVXlzduvWrbrnnnu0ceNGSVJgYGCF\npY2++OIL9e9f/TWzWq266qqr9NNPPzmUn3/++frXv/5V7b4Hx48f14wZM/TKK6847EnRpk0bLV++\nXCEhIVW2laTnn39e06dPdyjz8/PTQw89pLvvvrvKMfrWW2/piSeeUF6efd3N8uc+YMAALVq0qNq+\nK9vjwmKxnL6JP3LkSD3zzDNq1apVpe1PnjzpME3Yk9fxyJEjGjhwoMNeFiaTSTfeeKMefPBBtW7d\nusq2e/fu1f3336+lS5c6lI8cOVJvvvlmtf3WhmnTpmnGjBkute3SpYvuvvtuXXPNNTKb3feEjyff\nOwAAAABvkZ2drdtvv13ffvtthe917NhRycnJNX52gXcotdq0cGOa3t9gfAPu81qF6IGB8YoKblxL\ne8NRcXGxNm/eXL642ZAhQ6reZLOBYH6R6z6T9JqcSx6UfzcpdKG/sndJTZUcE7Ivg7R+zAM13pyX\npNIT+Vo/5gFlLF1dB5F5FtfFbs6cORWSFp06ddLXX39d7RPlXbp00RdffHG6TnX7MVRn3rx5FW62\njx8/Xv/9739r3Kw5NDRUTz/9tObMccx57tu37/QaoFU5cOCAZs6c6VDm6+ur119/XRMmTKj25vDY\nsWP1n//8R8HBwZJcP/fyTiUtbrvtNr355ptVJi2kimubeuo6StI999zjkLTw8fHRq6++qjlz5lSb\ntJCk+Ph4ffzxx7rxxhsdyhcvXqz169fX2Lcnbd26VXfeeaeuvPJKHTlyxNPhAAAAAA1aeHi4Fi5c\nqEceecRh1ntISIjeeecdkhb1RFruSU35cqfeXW8saeFjNml8n1Z6bngCSQs0aiQuKmcr83fZP2Vd\nJ+l7SatUcQ+L8gLKvXZlb4ryu86yE08l9r6ysMIySNWxlVq1d/4HbozIO3Bd7Bnq8k+1+/n56e23\n31ZERESN7YOCgvTuu+8qLCzMpf7z8/M1d+5ch7Jhw4Zp2rRpho5z44036pZbbnEomz9/frX7dbz9\n9tsVvn/XXXdpxIgRTvXZt29fPf7444bidEbPnj31zDPPGGrjyeu4fv16ff/99w5ljz/+uK6++mpD\nfc+aNUsdO3Z0KJs9e7ahY9QWk8mksLAwxcfHq3PnzmrdurUCA6t+e0lJSdHAgQP1+++/12GUAAAA\nQONjNps1ZcoUffzxx4qMjJQkzZ07t8JnCXinpX9k6vbPtmvLkTxD7WLC/PXiyI66pltzmWtpqWag\nviJxUbmJsl8by59/gmTf8+JySf8rx9kP50v6WVJ1C4CXn2Hh50JM/uVeuzJro0GzFhUrc6XxTXoz\nV6yXtcj5TZrrG66L3Zdffqn0dIdV0nTrrbeqQ4cOTh8jOjpaU6ZMcan/999/X5mZmadfWyyWCks3\nOev+++93eOrmyJEj+uWXXyqta7Va9d577zmURUZG6v777zfU56233nrWm5KX99RTTxneM8NT11GS\nXnzxRYfX7du311133WW4Xx8fH02aNMmh7Pvvv1dRkSs5bePatWun22+/XR9//LG2bt2q3bt3a926\ndUpJSdGvv/6q/fv36/vvv9f999+vqKioCu0zMjJ03XXXOcw8AQAAAOAegwcP1rJlyzR9+vQKS/DC\n++QVlWr6D3s17Yd9yi92/gFSSbrsnCi9NKqTOjQNclN0QP3C5tzOOSnp4J9//itpmqSPJSX++f1Q\n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\n34zjsS+u6tlBtPJjZQniGXjZF9dE7CBauTEe64qMp2Li1Q5AeR0C3gW8HdgyynZdwJeARcB9RR4j\ny/geL3qOoDPxMYLOwUheAD4K/EH/e6lUopQf2ZyfE3lJExWlvBiPcC5JpRTl/OglmNvijYw+cWoG\neBC4ALiIYH4MaaKimhu/IBhe4UMEw0ON1jZLMP/G3xKMdf5/i4xPyjXR7/SFfs7ti6sWRS0/7Isr\nKqKWG+MR2f54vnG1FD0nE3zpOIbgzrxXCMY+e4Cgw1stMeA1BB2L1v51LxF0fDZXKyjVnajmh1RN\n5oU0sijnxzEEw/AcD0whGKpnF0Fsu6sYl+pDVHNjDsHF2rnAEQR9kL3AiwTDRj0/clNp0rIvLkmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJOn/bw8OCQAAAAAE/X9t9gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMqnIeE/mIDV4AAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have fitted two polynomial models of degree 2 and 5. The degree 2 polynomial appears to fit the data points less precisely than the degree 5 polynomial. However, it seems more robust: the degree 5 polynomial seems really bad at predicting values outside the data points (look for example at the portion $x >= 1$). This is what we call overfitting: by using a too complex model, we obtain a better fit on the trained dataset, but a less robust model outside this set. Note the large coefficients of the degree 5 polynomial: this is generally a sign of overfitting." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "9. We will now use a different learning model, called **ridge regression**. It works like linear regression, except that it prevents the polynomial's coefficients to explode (which was what happened in the overfitting example above). By adding a **regularization term** in the **loss function**, ridge regression imposes some structure on the underlying model. We will see more details in the next section." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The ridge regression model has a meta-parameter which represents the weight of the regularization term. We could try different values with trials and errors, using the `Ridge` class. However, scikit-learn includes another model called `RidgeCV` which includes a parameter search with cross-validation. In practice, it means that we don't have to tweak this parameter by hand: scikit-learn does it for us. Since the models of scikit-learn always follow the `fit`-`predict` API, all we have to do is replace `lm.LinearRegression` by `lm.RidgeCV` in the code above. We will give more details in the next section." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "ridge = lm.RidgeCV()\n", - "plt.figure(figsize=(6,3));\n", - "plt.plot(x_tr, y_tr, '--k');\n", - "\n", - "for deg, s in zip([2, 5], ['-', '.']):\n", - " ridge.fit(np.vander(x, deg + 1), y);\n", - " y_ridge = ridge.predict(np.vander(x_tr, deg + 1))\n", - " plt.plot(x_tr, y_ridge, s, label='degree ' + str(deg));\n", - " plt.legend(loc=2);\n", - " plt.xlim(0, 1.5);\n", - " plt.ylim(-5, 80);\n", - " # Print the model's coefficients.\n", - " print(' '.join(['%.2f' % c for c in ridge.coef_]))\n", - "\n", - "plt.plot(x, y, 'ok', ms=10);\n", - "plt.title(\"Ridge regression\");" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "11.26 5.93 0.00\n", - "4.39 3.80 3.32 3.27 3.97 0.00\n" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAABe8AAANzCAYAAAAwa+NeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAuIwAALiMBeKU/dgAAIABJREFUeJzs3XmYFNW5+PFvz8Iqe3AXcV+uRiCiCMYVNUYlV5Oo0YBc\nYxKMa+KWm8VrzKoxJpqoXK/RcY/G5Je4xBgBiQtCVMQYRUUBg7iAgCj7MNO/P84MzvRUL9XL9Mz0\n9/M8/WhXV53zds3pnuGtU+8BSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSV3HdKAx5XFLOQNqchlt41pQzoAkqYOaTsf8HpckSWqjptwBSJIkAYOAX+RxXD2wEvgQ+AB4GZgN\nLC9eaFkl27GvODpqXJLU0fh9KUmSOiST95IkqSPoA0woYnsLgd8DNwHzitiuJEmSJEntoqrcAUiS\nJJXAUOAi4FXgT8BWZY1GkiRJkqSYTN5LkqSubhzwEvCf5Q5EkiRJkqRcmbyXJEkdXTKHRzb9gXuA\nw0sUoyRJkiRJRWXyXpIkdWTTgeoMj27A5sAI4BvAYxnaqgX+CAwpIJ58LhxIkjoOv8clSZIkSZJi\nGAo0Rjym5dHWKOCNNO01AjcXHm6Hcxlt3+f8cgYkSZIkSSqMM+8lSVJXMxPYD1iQ5vXxwI7tF44k\nSZIkSfGZvJckSV3RMuDUNK9VA8e1YyySJEmSJMVm8l6SJHVVM0lfA9+FayVJkiRJHZrJe0mS1JX9\nJc32ke0ahSRJkiRJMdWUOwBJkqQSejbN9oHtGkVuhgNfAD4N7AoMAJLASuB14DngAWBK0/b2tBNw\nILAb4dwlgA8Ji+LOAWYRFsltb1VNcR1OWOdgJ2BzoDewkXDuFgCzCYsfPwSsK0OcxVAFHAp8BvgU\n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\n+fOf/8xLL72UcZ/evXtz3nnntVNErS2dMoM5ky4l2dCYdp9kQyNzJl3aIRekzcbkvSRJ7WjIkCGc\nfPLJnHTSSQwdOjTjvg8++CAXXnhhm9r4V199NYcccghjxowpYaSSJEmSpErW0NDAz372s6z7fe1r\nX2Pw4MHtEFFrS6fNZPZpF2dM3DdrWLWG2addzIjbr+qQC9OmY9kcSZLawbBhw7j77rt5/vnnueSS\nS7Im7gGOPfZYpk2bxrbbbtvmtUsuuaQEUUqSJEmSFNx3333Mmzcv4z59+vTh7LPPbqeIWlt4w105\nJe6bJRsaWTj57hJGVHwm7yVJKrE777yTqVOncuSRR8Y+duutt6auro5EItFq+9y5c3nxxReLFaIk\nSZIkSZvU19dzxRVXZN3vrLPOYsCAAe0QUWuNG+pZPiPzIrpRlj81m8YN9SWIqDRM3kuSVGKf+cxn\nCjp++PDhHHXUUW22P/LIIwW1K0mSJElSlLvuuouFCxdm3GfAgAFMmjSpfQJK0Vi/sdXitLlKNjTQ\nWL+xBBGVhjXvJZVdMplkzpw5zJ8/n3feeYeNGzfSv39/dtttN0aMGEH37t3bJY633nqLl156ifff\nf59ly5ZRVVXFoEGD2GqrrRg5ciS9e/cuep9Lly7lueee491332XZsmX07NmT7bbbjmHDhrHddtsV\nvb9MGhoaePHFF3n11VdZsmQJ69evp1evXuy1114cdNBBObdTjvMIYRy9/PLLLFiwgPfff58VK1bQ\nq1cvPvGJTzBkyBBGjBhBdXV1SfpuD0cccQR//etfW2178803yxSNJEmSJKmrWr9+PVdddVXW/c49\n91z69u3bDhFVLpP3kspm9erV/OpXv+Kee+5h8eLFkfv07t2b448/ngsuuIAhQ4YUPYa3336bG264\ngb/97W+8/vrraferra1l33335Stf+QrHH398wf0+/PDDXH/99Tz99NMkk8nIffbee2++8Y1vcOKJ\nJ27adtxxxzFjxoxNz8eMGcP999+fsa8nn3ySz33uc6223X///ZsWO33rrbe49tprue+++1i5cmWb\n48eMGZM1eV+u8wjw/PPPc+ONN/LYY4+1Wdi1pc0224xDDjmE8847jxEjRhSl7/a0zTbbtNm2ZMmS\nMkQiSZIkSerKlixZwhZbbJE2VwMwePBgzjjjjHaMqrWq2hoS1dWxZ98nqqupqu08KXHL5kgqi7//\n/e8ccMABXH311Rl/GaxevZo77riDMWPG8Lvf/a5o/a9du5ZLL72Ufffdl+uvvz5jwhlCrbenn36a\nM844g4MOOoi5c+fm1e/y5cv58pe/zJe//GVmzJiRNnEP8OKLL3LmmWfyuc99juXLl0fuk1oHPReJ\nRGLTcbfffjujRo3it7/9bWTiPlsf5TqPAIsWLWLChAmMHTuWe++9N2PiHmDVqlU8+OCDHHHEEZx2\n2ml8+OGHefddDmvWrGmzrUePHmWIRJIkSZLUlW233XY8+uij3Hnnney1116R+5x//vklu7M+F1Xd\nahk4enjs4waOGUFVt9oSRFQaJu8ltbtHHnmEk046KWPSPtWaNWs466yzqKurK7j/9957j+OOO47r\nrruO9evXxz7+pZde4jOf+QyPPvporOOWLVvG5z73OR5++OFYxz355JMcc8wxaZPrcSWTSZLJJNde\ney3nn38+a9euzaudcp1HgGeeeYaxY8fy0EMPxT4W2JTEX7BgQV7Hl0NUrFtuuWUZIpEkSZIkdXWJ\nRIKjjz6a6dOnc/PNN7PLLrtsem2rrbbiv/7rv8oYXTD0zFNIVOee3k5UVzF00pdKGFHxdZ57BCR1\nCf/4xz847bTTqK9vvbJ3VVUV++67L0cccQTbbLMNNTU1LF68mGnTpjFjxgwamm6Duvjii/ne976X\nd/9LlizhyCOP5K233mq1PZFIsMceezBmzBh23333TTXbli5dyjPPPMOjjz7KqlWrNu2/atUqJk6c\nyF//+lf23nvvrP1u3LiRE088kZdffrnNa1tuuSXHHHMMe+yxBwMHDmTFihXMmzePhx9+eFNN89de\ne40zzzwzr5n2UR577DF++ctfbnreo0cPDjzwQMaMGcMWW2yx6fw/++yzkTO+y3UeIVzMOPHEE9tc\nMKiuruaAAw5gv/32Y8iQIfTr149169axePFinnrqKR5//PFN4wjg9ddf56STTmLq1Kn06dMnp77L\nKao80vDh8WcZSHFt2LCBq6++GoBvfetbdOvWrcwRScXnOFclcJyrEjjOVQnae5xXVVXxn//5nxx3\n3HHcd999XHnllZx11lkd4k7wwYeNYsStVzJn0qU0rGqbu2iperNeDJt8OYMPG9VO0RVHcbJAytmU\nKVMGA62KFO+9997U1hb3do2GhgZeeOEFAPbZZ592X6Rxw8ZG3v4o/kxcwdZ9utOtpmveFLNu3ToO\n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\nr1692HXXXVttmzNnTt7txT12+PDhVFW1/rqbMWNG3v3HMWLEiDbbnn322bzayve4YinnefzUpz7V\nZtvTTz/dLn2XwsaNG/nKV77CX/7S+vpzbW0tN910E0cffXSZIpMkSZIkqXyqutUycPTw2McNHDOi\ny5XMgc6VvN8ZaLliXxK4JYfjdkt5HneqZur+Q4DirBgpVZB999231fN58+blNfv+gw8+4KmnUm+I\nyax///7ss88+bfp/9dVXY/cf17777ttmYdX77rsvr7Z+//vfFyOkvJXzPB544IFtFtl95JFHCipB\nVC4NDQ187Wtf46GHHmq1vaamhhtvvJFjjjmmTJFJkiRJklR+Q888hUR17mnrRHUVQyd9qYQRlU9n\nSt6nLlQ7G3gph+NS6zy8FbPf94CWqyRUAW1rgEjKaOzYsW223XbbbbHbufvuu6mvr4993Gc/+9k2\n26655prY7cTVr18/Dj300FbbZs6cyTPPPBOrnQULFvDggw8WM7S8lOs89unThzFjxrTa9vbbb3PP\nPfeUvO9iamxsZNKkSfz5z39utb2mpobJkyczbty4MkUmSZIkSVLHMPiwUYy49UqqN+uVdd/qzXox\n4tYrGXzYqHaIrP11luR9ApiQsq0ux2M3S3m+OmbfSWBtljYlZXHMMce0qZl+00038frrr+fcxvvv\nv8/Pf/7zvPo/44wz2iyce++997aZ/VwKp59+epttF1xwAWvXpn61RNu4cSPf+ta32LBhQ7FDi62c\n5/HCCy9ss+3SSy/lzTffLHnfxdDY2MjZZ5/NH//4x1bbq6uruf766zn++NT12KWOYc2aNRxwwAEc\ncMABrFmzptzhSCXhOFclcJyrEjjOVQkqZZwPHjuaYZMvzzgDP1FdxbDJlzN47Oi0+3R2nSV5fxiw\nXYvn64G7cjw2NdG+Lo/+W2bYEhFtSsqipqamTRJ7w4YNnHbaaaxYsSLr8WvWrGHChAmsXLkyr/77\n9u3LOeec02pbMpnkzDPP5OGHH86rTYBHH300Mqnc0lFHHdWm3MxLL73EKaecwocffpjx2HXr1vH1\nr3+dxx9/PO8Yi6mc53H06NEccsghrbZ98MEHfPGLX+S1117Lq99169ZRV1fH9ddfn9fxuUomk5x/\n/vlt7hSorq7muuuu4/Of/3xJ+5cKkUwmefXVV3n11VdJJpPlDkcqCce5KoHjXJXAca5KUEnjfPDY\n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\nhQsZPXp00O0OHTrEVVddxdatW0Pqb/Xq1VxxxRW8//77oQ7VL5fLhcvlYu7cuTzyyCNNvk+0Ex6m\nKQAAIABJREFUniPAunXruOGGGzh48GCT+l6+fDlfffUVr732Gn369GnSPURiRVxcHFdddVW0hyES\nUVrnEgu0ziUWaJ1La3fkyJGg/h2em5vLpZde6vdr4VznpngLqdmDObRqfUjtUnMyY24TarQoeC8R\nYS0spjR/is9p1S6Hg0Or1lNWXErm4pmk5WVHaYTRoecCn332md/Avclk4oILLmD06NH06NGDuLg4\n9uzZQ1FREcXFxTh+ftExZcoUn8NaQnHgwAEuvfRSfvjhB49ywzAYMGAAOTk5nH322bU7sq1WK+vW\nrePDDz/k2LFjtfWPHTvGuHHjeP/99xk4cGDAfqurq7nuuuv8Bu5PPfVUrrjiCgYMGEBqaiqHDx/m\nm2++4b333uO7774D4Ouvv2b8+PFN2mnvz0cffcTTTz9de52QkMDw4cPJycnhlFNOqX3+69ev93t6\nfbSeI7hfZlx33XU+O/3NZjPDhg1j6NCh9OrViy5dulBVVcWePXtYs2YNn3zySe06Avj222/53e9+\nx8qVK+nUqVNQfYeTy+Vi/vz5rF27li+//JKDBw9y/PhxUlJSSElJIT09nWHDhpGTk8OQIUNafHwi\nIiIiIiISXtOnT+fQoUON1rFYLEyfPj1s//4PJH38WMqKS31iVQ0xzCbSC66P8KikRsusAqlVWFiY\nBhyoXzZw4EAslvC+rXI4HGzevBmAQYMGteghjdbCYjYVTMVxzDfgV5+5YxIZC6a160B1fXouUFVV\nxciRI31yovfr149nnnmmwQDl1q1buf3229m0aRMAiYmJPmle3nnnHbKzG39mTqeTa665hlWrVnmU\nX3jhhTz22GON5kE/evQos2bNYv78+R556Xr37s0nn3xCx44dG+175syZPPHEEx5l8fHx3HPPPfzl\nL39p8M/oiy++yNSpU6moqAB85z58+HDefvvtRvv2l/PebDbXBrLHjBnD448/zmmnnea3/YkTJzw+\nihfN57h//35GjhzpkdveMAzGjh3L3XffTY8ePRpsu2vXLiZPnkxRUZFH+ZgxY3jhhRca7TccZsyY\nwaxZs5rU9pxzzuEvf/kL1157LSaTKcwjc4vmzw0REREREZH27vPPPyc3Nxens/Eg+R133MHDDz/c\n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\nIiIiIiIiIiIiIiIZRuG9iIiIiIiIiIiIiEiGUXgvIiIiIiIiIiIiIpJhFN6LiIiIiIiIiIiIiGQY\nhfciIiIiIiIiIiIiIhlG4b2IiIiIiIiIiIiISIZReC8iIiIiIiIiIiIikmEU3ouIiIiIiIiIiIiI\nZBiF9yIiIiIiIiIiIiIiGUbhvYgkRSgUGvZjkclE61ysQOtcrEDrXKxA61ysQOtcrEDr3FoU3otI\nUng8nmE/FplMtM7FCrTOxQq0zsUKtM7FCrTOxQq0zq3Fke4BCAQCgXQPQSThgsEgU6dOHfjY7/en\neUQiiad1LlagdS5WoHUuVqB1LlagdS5WoHWeWunObY203t2Cdu/eXQpcTvc4RERERERERERERCRu\nM9euXduSihupbY6IiIiIiIiIiIiISIZR5X0a7d6920z3GERERERERERERERkdGvXrk15lq7KexER\nERERERERERGRDKMNa9NrZroHICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi\nIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi\nIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi/6e9e4+Wq6oPOP69gTwI74fRJBAk0vKqjwUY\nBMRcH1BZpSBi+UOB2rVEba2PohRYQrlVFBQULMjSUqCo5WGrlJZiwSKF8o6hYkXkIcRAeAcCJIQA\nye0f+951z+w7d2bO3DN39p75ftaaxd0nZ5/zy+I3k/3bd88+kiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkvrAQLcDyMCbgEXA9sAM4DngXuBWYF0X4xoA9gTeBswZ\nOfYEcDdwV7eCUtZSy/XpwC7AHsDrgc2B1cBKQp7fA2zoQlzKV2o5LnVC6nm+EbAXsDth/DKd8Nn+\nCCHO+/CzXc2lmufbAHsDOwFbEcbrzxPyewnwZPdCkyphDapeZw0qSRn5ALCU8MFc7/UC8HfAtlMc\n13TgC8CjDWJbDhwHbDzFsSlPKeX6TsDxwHXASw1i2kAo1M8Fdp6CuJS3lHK8FbOBBxkf58XdDErJ\nSz3PdwLOJ3x2N/psXwVcCRzcnTCVuFTz/EjgxgZxjb6WAscSfoklxeYDhwNnAD8j5HMxfx7uXmjW\n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\n/H7CqiWpKLVcH6xz/mReUmo53o6h6PquelAs5TyfNkFs60diu5P645oNwBL8qrrGpJrniwjj8Ho5\n/ARh5ebPgccmOOdVwkp8aRmTH/te3OQe1qBKwTLSyvXBCuIpvqRlpJXj7RiKrn9RxdeXKjGT8ITx\nVt9YT1HuzTKZN9oC4H9LxLaU8PVhqZ6Ucn2wRBzNXutLxKjellKOt2Mour4DJ9WTcp7PIBQgZT7D\nr8SJe42Xap4vAh4oEdfo6zHg/SXiU29bxuTHv83GCJP5LF+ANaiqsYy0cn2wgnhGX9aggvRyvB1D\nJePRFJjW7QAStA74MPAh4BcNzlsNfBvYHbip5D2Gae/rLcsJRcIJhEH/RFYAxwP7jPws1ZNSrg8X\n/juZl1SUUo63I35fSPWknOevEPa6P5jGDy3cANwOHAIcTtgvXypKNc/vJHwV/jOErXIa9R0m7Mf/\nRcIey/9ZMj71rsmOf1vNWWtQdVtquW4NqqqlluPtsAZNUL39lVTrTYQByDzCCrJVhP2nbiEUpd0y\nAOxFKBheN3LsKUJBc1e3glLWUs11qSrmuPpBynk+j7CNyQJgFmGrk8cJsT3TxbiUn1TzfA5hknMu\nsBVhvP488CRhC51HJ+4qZcEaVJIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZLUZf8PmQsBJpTu24QAAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This time, the degree 5 polynomial seems more precise than the simpler degree 2 polynomial (which now causes underfitting). Ridge regression reduces the overfitting issue here. Observe how the degree 5 polynomial's coefficients are much smaller than in the previous example." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How it works...\n", - "\n", - "In this section, we will explain all the aspects covered in the example above." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### scikit-learn API\n", - "\n", - "scikit-learn implements a clean and coherent API for supervised and unsupervised learning. Our data points should be in a $N \\times D$ matrix $\\mathbf{X}$, where $N$ is the number of observations, and $D$ is the number of features. In other words, each row is an observation. The first step in a machine learning task is to define what our matrix $\\mathbf{X}$ is exactly." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In a supervised learning setup, we also have a *target*, a $N$-long vector $\\mathbf{y}$ with a scalar value for each observations. This value is continuous or discrete, depending on whether we have a regression or classification problem, respectively." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In scikit-learn, models are implemented in classes that have `fit` and `predict` methods. The `fit` method accepts the data matrix `X` as input, and `y` as well for supervised learning models. This method *trains* the model on the given data.\n", - "\n", - "The `predict` method also takes data points as input (as a matrix $M \\times D$). It returns the labels or transformed points, according to the trained model." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Ordinary Least Squares regression\n", - "\n", - "[Ordinary least squares regression](http://en.wikipedia.org/wiki/Ordinary_least_squares) is one of the simplest regression methods. It consists of modeling the output values $\\hat{y}_i$ as a linear combination of $X_{ij}$:\n", - "\n", - "$$\\forall i \\in \\{1, \\ldots, N\\}, \\quad \\hat{y}_i = \\sum_{j=1}^D w_j X_{ij}, \\quad \\textrm{or, in matrix form:} \\quad \\mathbf{\\hat{y}} = \\mathbf{X} \\mathbf{w}.$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here, $\\mathbf{w} = (w_1, \\ldots, w_D)$ is the (unknown) *parameter vector*. Also, $\\mathbf{\\hat{y}}$ represents the model's output. We want this vector to match the data points $\\mathbf{y}$ as closely as possible. Of course, the exact equality $\\mathbf{\\hat{y}} = \\mathbf{y}$ cannot hold in general (there is always some amount of noise in real-world data). Therefore, we want to *minimize* the difference between those two vectors. The ordinary least squares regression method consists of minimizing the following [**loss function**](http://en.wikipedia.org/wiki/Loss_function):\n", - "\n", - "$$\\min_{\\mathbf{w}} || \\mathbf{y} - \\mathbf{X} \\mathbf{w} ||_2^2 = \\min_{\\mathbf{w}} \\left( \\sum_{i=1}^N \\left(y_i - \\hat{y}_i\\right)^2 \\right)$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This sum of the components squared is called the [**$l_2$ norm**](http://en.wikipedia.org/wiki/Lp_space) (or [**Euclidean norm**](http://en.wikipedia.org/wiki/Euclidean_distance)). It is convenient because it leads to *differentiable* loss functions, so that gradients can be computed and common optimization procedures can be performed." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Polynomial interpolation with linear regression\n", - "\n", - "Ordinary Least Squares regression fits a linear model to the data. The model is linear both in the data points $X_i$ and in the parameters $w_j$. In our example, we obtained a poor fit because the data points were generated according to a nonlinear generative model (an exponential function)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "However, we can still use the linear regression method with a model that is linear in $w_j$, but nonlinear in $\\mathbf{x}_i$. To do this, we need to increase the number of dimensions in our dataset by using a basis of polynomial functions. In other words, we consider the following observations:\n", - "\n", - "$$\\mathbf{x}_i, \\mathbf{x}_i^2, \\ldots, \\mathbf{x}_i^D$$\n", - "\n", - "where $D$ is the maximum degree. The input matrix $\\mathbf{X}$ is therefore the [**Vandermonde matrix**](http://en.wikipedia.org/wiki/Vandermonde_matrix) associated to the original data points $\\mathbf{x}_i$." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Ridge regression\n", - "\n", - "Polynomial interpolation with linear regression can lead to overfitting issues if the degree of the polynomials is too large. By capturing the random fluctuations (noise) instead of the general trend of the data, the model's predictive power decreases. This corresponds to an explosion of the polynomial's coefficients $w_j$." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A solution to this problem is to prevent these coefficients from growing unboundedly. With [**ridge regression**](http://en.wikipedia.org/wiki/Tikhonov_regularization), this is done by adding a *regularization* term to the loss function:\n", - "\n", - "$$\\min_{\\mathbf{w}} || \\mathbf{y} - \\mathbf{X} \\mathbf{w} ||_2^2 + \\alpha ||\\mathbf{w}||_2^2$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "By minimizing this loss function, we not only minimize the error between the model and the data (first term, related to the bias), but also the size of the model's coefficients (second term, related to the variance). The bias-variance trade-off is quantified by the hyperparameter $\\alpha$, which precises the relative weight between the two terms in the loss function.\n", - "\n", - "Here, ridge regression led to a polynomial with smaller coefficients, and thus a better fit." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Cross-validation and grid search\n", - "\n", - "A drawback of the ridge regression model compared to the ordinary least squares model is the presence of an extra hyperparameter $\\alpha$. The quality of the prediction depends on the choice of this parameter. One possibility would be to fine-tune this parameter manually, but this procedure can be tedious and can also lead to overfitting." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can use a [**grid search**](http://en.wikipedia.org/wiki/Hyperparameter_optimization) for this: we loop over many possible values for $\\alpha$, and we evaluate the performance of the model for each possible value. Then, we choose the parameter that yields the best performance." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How to assess the performance of a model with a given $\\alpha$ value? A common solution is to use [**cross-validation**](http://en.wikipedia.org/wiki/Cross-validation_%28statistics%29). This procedure consists of splitting the dataset into a *train set* and a *test set*. We fit the model on the train set, and test its predictive performance on the *test set*. By testing the model on a different dataset than the one used for training, we avoid overfitting." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are many ways to split the initial dataset into two parts like this. One possibility is to remove *one* sample to form the train set, and to put this one sample into the test set. This is called **Leave-One-Out** cross-validation. With $N$ samples, we obtain $N$ sets of train and test sets. The cross-validated performance is the average performance on all these set decompositions." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As we will see in *Chapter 8*, scikit-learn implements several easy-to-use functions to do cross-validation and grid search. Here, we used a special estimator called `RidgeCV` that implements a cross-validation and grid search procedure that is specific to the ridge regression model. Using this model ensures that the best hyperparameter $\\alpha$ is found automatically for us." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> In the book, the [rest of the chapter](https://github.com/ipython-books/cookbook-code/blob/master/toc.md#chapter-8-machine-learning) introduces many standard algorithms in machine learning." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## There's more\u2026" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are a few references about cross-validation and grid search:\n", - "\n", - "* [Cross validation in scikit-learn](http://scikit-learn.org/stable/modules/cross_validation.html).\n", - "* [Grid search in sciki-learn](http://scikit-learn.org/stable/modules/grid_search.html)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are a few references about scikit-learn:\n", - "\n", - "* [scikit-learn basic tutorial](http://scikit-learn.org/stable/tutorial/basic/tutorial.html).\n", - "* [scikit-learn tutorial given at the SciPy 2013 conference](http://github.com/jakevdp/sklearn_scipy2013)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Books\n", - "\n", - "Here are a few excellent, math-heavy textbooks on machine learning:\n", - "\n", - "* Bishop, C. M. (2006). [*Pattern recognition and machine learning*](http://research.microsoft.com/en-us/um/people/cmbishop/prml/). Springer.\n", - "* Murphy, K. P. (2012). [*Machine learning: a probabilistic perspective*](http://www.cs.ubc.ca/~murphyk/MLbook/). MIT Press.\n", - "* Hastie, T., Tibshirani, R., Friedman, J., Hastie, T., Friedman, J., & Tibshirani, R. (2009). [*The Elements of Statistical Learning*](http://statweb.stanford.edu/~tibs/ElemStatLearn/). Springer.\n", - "\n", - "Here are a few books targetting programmers without necessarily a strong mathematical background:\n", - "\n", - "* Conway, D., & White, J. (2012). [*Machine Learning for Hackers*](http://shop.oreilly.com/product/0636920018483.do). O'Reilly Media, Inc.\n", - "* Harrington, P. (2012). [*Machine Learning in Action*](http://www.manning.com/pharrington/). Manning Publications Co.\n", - "\n", - "You will find many other references online." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Featured Recipe #4: Introduction to Machine Learning in Python with scikit-learn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In **Statistical Data Analysis**, we are interested in getting insight into data, understanding complex phenomena through partial observations, and making informed decisions in the presence of uncertainty. In **Machine Learning**, we are still interested in analyzing and processing data using statistical tools. However, the goal is not necessarily to *understand* the data, but to *learn* from it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Learning from data is close to what we do, as humans. From our experience, we intuitively learn general facts and relations about the world, even if we don't fully understand its complexity. The increasing computational power of computers makes them able to learn from data, too. That's the heart of [**machine learning**](http://en.wikipedia.org/wiki/Machine_learning), a modern and fascinating branch of artificial intelligence, computer science, statistics, and applied mathematics." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This featured recipe is a hands-on introduction to the most fundamental concepts in machine learning. These concepts are routinely used by data scientists. We will illustrate them with **scikit-learn**, a popular and user-friendly Python package for machine learning." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This featured recipe is [Chapter 8](https://github.com/ipython-books/cookbook-code/blob/master/toc.md#chapter-8-machine-learning)'s introduction. In the [book](http://ipython-books.github.io/), the rest of the chapter illustrates many standard machine learning algorithms for classification, regression, feature selection, clustering, and dimension reduction." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fundamental concepts in Machine Learning" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's describe the fundamental definitions and concepts of machine learning." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning from data\n", + "\n", + "In machine learning, most datasets can be represented as tables containing numerical values. Every row is called an **observation**, a **sample**, or a **data point**. Every column is called a **feature** or a **variable**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's call $N$ the number of rows (or number of points), and $D$ the number of columns (or number of features). The number $D$ is also called the **dimensionality** of the data. The reason is that we can view this table as a set $E$ of vectors in a space with $D$ dimensions (or **vector space**). Here, a vector $x$ contains $D$ numbers $(x_1, ..., x_D)$, also called **components**. This mathematical point of view is very useful and we will use it throughout this recipe. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One generally makes the distinction between *supervised learning* and *unsupervised learning*." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [**Supervised learning**](http://en.wikipedia.org/wiki/Supervised_learning) is when we have a label $y$ associated to every data point $x$. The goal is to learn the mapping from $x$ to $y$ from our data. The data gives us this mapping for a finite set of points, but what we want is to *generalize* this mapping. In other words, we want to find the label of any point $x$ that does not belong to our data.\n", + "\n", + "* [**Unsupervised learning**](http://en.wikipedia.org/wiki/Unsupervised_learning) is when we don't have any labels. What we want to do is discover some hidden structure in the data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Supervised learning\n", + "\n", + "Mathematically, supervised learning consists of finding a function $f$ that maps a set of points $E$ to a set of labels $F$, knowing a finite set of associations $(x, y)$ which is given by our data. This is what generalization is about: after observing the pairs $(x_i, y_i)$, given a new $x$, we are able to find the corresponding $y$ by applying the function $f$ to $x$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is a common practice to split the set of data points into two subsets: the **training set** and the **test set**. We learn the function $f$ on the training set, and test it on the test set. This is essential when assessing the predictive power of a model. By training and testing a model on the same set, our model may not be able to generalize well. This is the fundamental concept of **overfitting**, which we will detail later." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One generally makes the distinction between **classification** and **regression**, two particular instances of supervised learning." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* **Classification** is when our labels $y$ can only take a finite set of values (categories). Examples include:\n", + " * Handwritten digit recognition: $x$ is an image with a handwritten digit, $y$ is a digit between 0 and 9.\n", + " * Spam filtering: $x$ is an e-mail, and $y$ is 0 or 1 whether that e-mail is a spam or not." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* **Regression** is when our labels $y$ can take any real (continuous) value. Examples include:\n", + " * Predicting stock market.\n", + " * Predicting sales.\n", + " * Detecting the age of a person from a picture." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The figure below illustrates the difference between classification and regression." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Difference between classification and regression](images/ml.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Unsupervised learning\n", + "\n", + "Broadly speaking, unsupervised learning helps us discover systemic structures in our data. It is harder to grasp than supervised learning, in that there is no precise question and answer in general." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are a few important terms related to unsupervised learning: \n", + "\n", + "* **Clustering**: Grouping similar points together within clusters.\n", + "* **Density estimation**: Estimating a probability density that can explain the distribution of the data points.\n", + "* **Dimension reduction**: Getting a simple representation of high-dimensional data points by projecting them onto a lower-dimensional space. This technique is notably used for data visualization.\n", + "* **Manifold learning** (or nonlinear dimension reduction): Finding a low-dimensional manifold containing the data points." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feature selection and feature extraction\n", + "\n", + "In a supervised learning context, when our data contains many features, it is sometimes necessary to choose a subset of them. The features we want to keep are those that are most relevant to our question. This is the problem of **feature selection**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Additionally, we may want to extract new features by applying complex transformations on our original dataset. This is **feature extraction**. For example, in computer vision, training a classifier directly on the pixels is not the most efficient method in general. We may want to extract the relevant points of interest or make appropriate mathematical transformations. These steps depend on our dataset and on the questions we want to answer." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For example, it is often necessary to preprocess the data before learning models. **Feature scaling** (or **data normalization**) is a common preprocessing step where features are linearly rescaled to fit in the range $[-1,1]$ or $[0,1]$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Feature extraction and feature selection involve a balanced combination of domain expertise, intuition, and mathematical methods. These early steps are crucial, and they may be even more important than the learning steps themselves. The reason is that the few dimensions that are relevant to our problem are generally hidden in the high dimensionality of our dataset. We need to uncover the low-dimensional structure of interest to improve the efficiency of our learning models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Chapter 8* illustrates a few feature selection and feature extraction methods. Methods that are specific to signals, images or sounds are covered in *Chapter 10* and *Chapter 11*. Here are a few further references:\n", + "\n", + "* [Feature selection in scikit-learn](http://scikit-learn.org/stable/modules/feature_selection.html)\n", + "* [Feature selection on Wikipedia](http://en.wikipedia.org/wiki/Feature_selection)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Overfitting, underfitting, and the bias-variance tradeoff" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A central notion in machine learning is the trade-off between [**overfitting**](http://en.wikipedia.org/wiki/Overfitting) and [**underfitting**](http://en.wikipedia.org/wiki/Underfitting). A model may be able to represent our data accurately. However, if it is *too* accurate, it may not generalize well to unobserved data. For example, in face recognition, a too-accurate model would be unable to identity someone who styled their hair differently that day. The reason is that our model may learn irrelevant features in the training data. On the contrary, an insufficiently trained model would not generalize well either. For example, it would be unable to correctly recognize twins. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A popular solution to reduce overfitting consists of adding structure to the model, for example with [**regularization**](http://en.wikipedia.org/wiki/Regularization_%28mathematics%29). This method favors simpler models during training ([Occam's razor](http://en.wikipedia.org/wiki/Occam%27s_razor))." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The [**bias-variance dilemma**](http://en.wikipedia.org/wiki/Bias-variance_dilemma) is closely related. The **bias** of a model quantifies how precise a model is across training sets. The **variance** quantifies how sensitive the model is to small changes in the training set. A robust model is not overly sensitive to small changes. The dilemma involves minimizing both bias and variance; we want a precise and robust model. Simpler models tend to be less accurate but more robust. Complex models tend to be more accurate but less robust." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The importance of this trade-off cannot be overstated. This question pervades the entire discipline of machine learning. *Chapter 8* contains many examples." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model selection" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we will see in *Chapter 8*, there are many supervised and unsupervised algorithms. For example, well-known classifiers that we will cover include logistic regression, nearest-neighbors, Naive Bayes, support vector machines. There are many others algorithms that we couldn't cover." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "No model performs uniformly better than the others. One model may perform well on one dataset and badly on another. This is the question of [**model selection**](http://en.wikipedia.org/wiki/Model_selection)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will see systematic methods for assessing the quality of a model on a particular dataset (notably cross-validation). In practice, machine learning is not an \"exact science\" in that it frequently involves trials and errors. We need to try different models and empirically choose the one that performs best." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That being said, understanding the details of the learning models allows us to gain intuition about which model is best adapted to our current problem." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are a few references on this question:\n", + "\n", + "* [Model evaluation in scikit-learn](http://scikit-learn.org/stable/modules/model_evaluation.html)\n", + "* [How to choose a classifier?](http://blog.echen.me/2011/04/27/choosing-a-machine-learning-classifier/)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An important class of machine learning methods that we couldn't cover in *Chapter 8* include [**neural networks**](http://en.wikipedia.org/wiki/Artificial_neural_network) and [**deep learning**](http://en.wikipedia.org/wiki/Deep_learning). Deep learning is the subject of very active research in machine learning. Many state-of-the-art results are currently achieved by deep learning methods." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting started with scikit-learn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's now introduce the basics of the machine learning package [**scikit-learn**](http://scikit-learn.org). This package is the main tool we are going to use throughout the chapter. Its clean API makes it really easy to define, train, and test models. Plus, scikit-learn is specifically designed for speed and (relatively) big data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will show here a very basic example of **linear regression** in the context of **curve fitting**. This toy example will allow us to illustrate key concepts such as linear models, overfitting, underfitting, regularization, and cross-validation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You will find all instructions to install scikit-learn on the [documentation](http://scikit-learn.org/stable/install.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How to do it..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will generate a one-dimensional dataset with a simple model (including some noise), and we will try to fit a function to this data. With this function, we can predict values on new data points. This is a curve-fitting regression problem." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. First, let's make all the necessary imports." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy.stats as st\n", + "import sklearn.linear_model as lm\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We now define the deterministic function underlying our generative model." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "f = lambda x: np.exp(3 * x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. We generate the values along the curve on $[0, 2]$." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x_tr = np.linspace(0., 2, 200)\n", + "y_tr = f(x_tr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. Now, let's generate our data points within $[0, 1]$. We use the function $f$ and we add some Gaussian noise." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x = np.array([0, .1, .2, .5, .8, .9, 1])\n", + "y = f(x) + np.random.randn(len(x))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Let's plot our data points on $[0, 1]$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": [ + "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\n", + "djlAi9BbgCLoLUAR9JZ907p163LxxRfnkksuSVdXV2HP6erqyiWXXJKLL74469atK+w50AjskbCz\n", + "12/77M5hSf5o2+dfk1yUZMUw1QUwJJVKJStXrtzxHaAe9BagCHoLUAS9Zd+zZs2anHfeeTt+78Nh\n", + "6dKl+fGPf5zFixdn4kQvNqE1WZGwq0q/z+6cmOThJOcPV1EAAAAAQG1r1qzJzJkzhzVE2O7pp5/O\n", + "zJkzs2bNmmF/NgwHQULV2iRfS/J/pvp6o9cnaU8yLskJST6c6iuO+tovyR1J3j58ZQIAAAAA/a1b\n", + "ty7nnXdenn322dJqePbZZzN79myvOaIlebVRNTy4O8nW3fxsfZLl2z63JHlfks8nGbPt56OT/HWS\n", + "Y5K8Us+iXnrppYwcOTJjx47NiBEDz3u2bt2aUaN6f61tbW3Zf//9B/XszZs359VXX91x3N7entGj\n", + "Rw/qHhs2bNjpeL/99hv0PF55pfcfqXmYR2Ie2w1mHmPGjMltt9224/t2zTaPWsyjl3lUmUevIudR\n", + "q7f01+jzGCjz6GUevcyjqp7z2Lp1a770pS9l5MiRe+wtu9NI89iu2X8f25lHL/OoarZ5bP/3lu19\n", + "Zvt9mm0e2zX772O7es+jUqnkIx/5SCkrEfp7+umnc+WVV+b2228f0PWt+PtImmMe/Z+XJK+88spO\n", + "8xg1atQu89i6dXd/Rm59ViRUN1Ae6G//q0n+S5KePucOT3JZvYvq7OzM5MmT88Y3vjGTJk0a8Ofo\n", + "o4/e6fi0004b9LM/8IEP7HSP+fPnD/oe/esabCP/1re+ZR7bmEcv86gazDxGjRqVc845J+ecc85O\n", + "IWOzzaMW8+hlHlXm0avIedTqLc02j4Eyj17m0cs8quo5j6OPPjof/OAHs2rVqj32lt1ppHm0yu/D\n", + "PMxju2afx/Z/bxk5cuROfzNptnls1+y/j+3qPY8jjzwy999//6DvUZRvfvObuffeewd0bSv+Pppl\n", + "Hv2fN2nSpBxzzDGZPHnyjs+b3vSmXa6ZNm3aoOfWCgQJg3dvkv/e79wFZRQCAAAAADSeq6++OmvX\n", + "ri27DKibtrILGKJTk/xjn+OfJvntYXz+8Un+rc9xJcnEJC8O5WbLli2b0H/sG97wBq822geXVO2O\n", + "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\n", + "BQUFTutz1apVOnDggDIyMhQWFua0ftH5REREmN5HXV2djhw5ooEDB5raz1NPPaUnn3xSAwYMoAgH\n", + "AAAAAPAYXlYHAABcXklJiZKTk51aRDhv//79Sk5OVklJidP7RufRq1cvBQYGmt5PUVGR6X1cf/31\n", + "uuGGGygiAAAAAAA8CisSAMCFnTx5UtOnT3fK890v5fDhw0pNTdWaNWv4cNRDORwOffvttyouLr7g\n", + "deTIEX399ddav369fH19Tc0QERHR0mZVhrLyf0cAAAAAALgzCgkA4KIcDofmzZtnyUqE5vbv36+H\n", + "H35YS5YssToK2sHhcOj48eMXFAm+/vrrhmJBcXGxTp8+fcn7S0pKdN1115ma0RmFhH/+85+mtg8A\n", + "AAAAgKeikAAALiozM9P0jZXb4sMPP1RmZqZSUlKsjoJmzp49q2PHjjUUB77++usLXsXFxTp79my7\n", + "2z9y5IjphQQj2vfy8tK1116r/v37q1+/furfv3/DKyIiwimPTwIAAAAAwBNRSAAAF1RaWqq0tDSr\n", + "Y1wkLS1No0ePVkhIiNVR8L0777xTmzZtMrWPr776SqNHjza1j9ZuuBwQEKCIiAj169dPERERDUWC\n", + "/v3767rrrpOfn5+pOQEAAAAA6IwoJACAC0pPT1d5ebnVMS5SVlam9PR0LV682Ooo+F63bt1M7+PI\n", + "kSOm93G+kGCz2RQWFnZBoeD8+379+umqq66SzWYzPQ8AAAAAAGhEIQEAXMyJEyeUkZFhdYxLysjI\n", + "0DPPPKPg4GCro7g8h8Nh+ofe4eHhprYvScXFxab3MXLkSO3YsUPXXXed/P39Te8PAAAAAAC0HoUE\n", + "AHAxy5cvl91utzrGJdntdi1btkwPPfSQ1VEsVV1drZKSEh09elTHjh3TsWPHGt6f//Pxxx/X/fff\n", + "b2qOvn37mtq+5JwVCT169FCPHj1M7wcAAAAAALQdhQQAcCEOh0NLly61OsYVLV26VA8++KDHPmKm\n", + "oqKioThQUlLS4vvWPHrq6NGjpmf1lEIC3EtVVZUmTJggSdq4caNTHrEFwPMxtwAwA3MLABiDQgIA\n", + "uJCcnBwVFhZaHeOKCgsLlZOTo8TERKujtNuBAwe0devWC4oD54sFp0+fNqSPY8eOGdLO5ZhRSPD3\n", + "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\n", + "Fi1alDlz5qSjo6P0uMeio6Mjt99+e77yla/kiSeeqDSWlStX5iMf+UilMQAAAABQDYWEmnrd616X\n", + "ZcuW5fLLL89ll12W1atXZ82aNbW/8dlOfX19OXr0aHp7e894LF68OGvXri21/87OzlKLCMn4FBIm\n", + "y9RGy5Ytywc+8IFBRYIFCxac+jp9+uRMZwsWLMjmzZtz9dVX56mnnqokhosuuiibN28el6IUAAAA\n", + "APUzOe+8TQIvvvhiHnnkkTzyyCOn9q1YsSLXXXddrr322nFZeHYsTpw4kRdffPHUo7e394yvZ9vX\n", + "29ubEydODNn+1VdfXXohYd68eaW2nyQHDhwovY/JMiJh3rx5ed/73ld6P3XU09OTBx98MBs3bhz3\n", + "kQkrV67MfffdlyVLloxrvwAAAADUh0LCBPLkk0/mgx/8YD784Q9n48aN2bRpUy0XPf3TP/3T/OAP\n", + "/mCpfbz44oultp8kc+fOLb2P8SgktGNEQkdHR+bPn5/58+dnwYIFp6YPmj9/fhYuXJjFixe3IVKG\n", + "09PTk4ceeijvfe97x23NhGuuuSa33367kQgAAAAAU5xCwgR07Nix3HvvvfnMZz6TW2+9NW9729ty\n", + "6NChvPjiizl48OCpr729vTl48OCgfT09PbnhhhtKjW/WrFmltp8kvb29pfcxHiMSxntqo+nTpw8q\n", + "CPQ/itvFx9y5czNt2rTSY2V4CxYsyN133537778/N998c/bu3VtKP11dXbn11lstrAwAAABAEoWE\n", + "CW3fvn25/vrrWzrnta99bemFhDlz5pTafqKQ0IpZs2bli1/8YubNm5fZs2dPqXU2JqsNGzbkTW96\n", + "UzZt2pTNmzfn2LFjbWm3s7Oz1qOdAAAAAKiGjxhPMQcPHiy9j/GYEmiiFxL6pwrq7u5uug5EO/u6\n", + "8MILM2fOHEWESaS7uzt33HFHtm3blltuuSUrVqwYdVsrVqzILbfckm3btuWOO+5QRAAAAABgECMS\n", + "ppjxWFtgPEYkjMcn+c8777x0dnY2/bT3rFmzMnfu3MybN+/UY+7cuZk/f/6p7f7n/dMJ9T+fPXu2\n", + "qYJoi66urtx444254YYb8uijj2br1q3Zvn17Hn/88Wzfvv2MotvcuXOzatWqXH755Vm1alVWr16d\n", + "NWvWKDIBAAAA0JRCwhQzHiMSZs+eXXofx44dy9GjR3PuueeW1kdHR0duv/32nHvuuYOKBf2PGTNm\n", + "lNY3tKqjoyNXXnllrrzyykH7+/r6ThXDOjs7FQwAAAAAaJlCwhRz8ODB9PX1lXozsbOzM+eee26O\n", + "Hj1aWh/nnXdeDh48WGohIUne9a53ldo+lK2joyMzZ86sOgwAAAAAJjCFhCmmr68vhw4dKn3UwJw5\n", + "c4YsJHR0dGT27NmZM2dO5s6dm7lz5w75vNm/9z86OztLjR8AAAAAgAaFhCno4MGDpRcSPvrRj2ba\n", + "tGmZM2fOoOKAtQFgfB07diy33XZbkuSmm25ShAPaQm4ByiC3AGWQWwDaw2TZNbBly5buJLsH7tu4\n", + "cWNbFhSeNWvWqREAs2fPzuzZs/Oxj30sS5cuHXPbQP0dOnQoy5cvT5Ls3Lkzs2bNqjgiYDKQW4Ay\n", + "yC1AGeQWoN2OHz+exx57rLh78bp16/ZUEc94MSKhuYuTvD7JhUk6k+xP8qUkDyd5qcK4RqyzszOP\n", + "Pvpourq6qg6FNjp58uSgxXON8AAAAAAAyqSQcKa3J/lAkiub/PvBJL+b5JeS7B2nmEbl2LFjuffe\n", + "e3PjjTdWHQqj0NfXl0cffTRbt27Ntm3b8vjjj+dLX/pSent7Bx03d+7cXHrppbn88stz2WWXZfXq\n", + "1VmzZk2pC2oDAAAAAFOHQsJpM5PcmeSHznLc7CQ3JvnBJN+f5K9LjmtM7rnnntxwww1uKk8ge/fu\n", + "zb333pt77rknTz755FmP7+3tzSOPPJJHHnnk1L4VK1bkuuuuy7XXXmtEyhR3zjnnZP369aeeA7SD\n", + "3AKUQW4ByiC3ALSHu8sN05Lcl2R9Yf+JJF9L8kKSi5LML/z74STrkvz9WDovc42EJPnsZz+bK69s\n", + "NsCCutizZ082bdqUzZs3n5q6aKw6OzuzcePGbNq0Kd3d3W1pEwAAAACmqqm6RoLJ1RvenzOLCL+V\n", + "5FVJViR5XZKuJO9Io7DQ7/wkf5Bk7jjEOGpbt26tOgSG0dfXl/vuuy9r167Nvffe27YiQnJ6equ1\n", + "a9fmvvvuS19fX9vaBgAAAACmBoWERoHgFwr7fi7JDUmeHbCvL8kfJnlDkqcH7L8wyU0lxjdm27dv\n", + "rzoEmti/f3/e/e535/rrr8++fftK62ffvn25/vrr8+53vzv79+8vrR8AAAAAYPJRSEhuTmPdg35/\n", + "meTWYY5/Jsn1hX3vS7KwzXG1zeOPP151CAxh165dedvb3pYHHnhg3Pp84IEH8r3f+73ZtWvXuPUJ\n", + "AAAAAExsU72QMC3Jvyvs2zSC8/4sgxdZnpPknW2Kqe2MSKifXbt25eqrr86OHTvGve8nnngiV199\n", + "tWICAAAAADAiU72Q8IYkiwZsfzWNEQkjcWdh++1tiagEvb295savkf379+cd73hHnnrqqcpieOqp\n", + "p7Jx40bTHAEAAAAAZzXVCwnfW9j+0xbOLR57VRqLL9dSOxfwZfT6+vry3ve+t5KRCEVPPPFE3ve+\n", + "91UdBgAAAABQc1O9kLCmsP1wC+fuyuBFlzuTrBprQExu999//7iuiXA2f/RHf5T777+/6jAAAAAA\n", + "gBqb6oWESwvbrS4mUDy+2F5tdHZ2Vh3ClLdnz57cfPPNVYdxhptvvjl79uypOgwAAAA1dJAYAAAg\n", + "AElEQVQAoKamciHhvCSvGrDdl2Rni218vbD9zWOKqCRz585NR0dH1WFMeZs2bcq+ffuqDuMMe/fu\n", + "zaZNm6oOAwAAAACoqalcSFhU2D6epNWPZX+jsL149OGUZ9UqMy5V7fnnn8/mzZurDqOpzZs3Z+/e\n", + "vVWHAQAAAADU0FQuJMwubB8eRRuHztJmLVx++eVVhzDlffKTn6z1gtfHjh3LvffeW3UYAAAAAEAN\n", + "KSScdnQUbRw5S5u1YERCtfr6+nLPPfdUHcZZ3XPPPenr66s6DNrs8OHDWbt2bdauXZvDh0dTLwU4\n", + "k9wClEFuAcogtwC0x/SqA6jQuYXt0Xxc/KXC9nmjjKVUq1evrjqEKe3RRx/Nk08+WXUYZ/Xkk0/m\n", + "0UcfzZVXXll1KLRRX19fduzYceo5QDvILUAZ5BagDHILQHtM5REJxREInaNoY+ZZ2qzcihUrsmbN\n", + "mqrDmNK2bt1adQgjNpFiBQAAAADGx1QekXCwsF0coTASxREIxTYr9653vSsdHR0tnXP06NG8/PLL\n", + "p7ZnzJiRzs7W6iyHDg1ePuK8887LtGkjr1udOHEiL710esBHR0dHzj///JZiqMt1PProoy31WaXt\n", + "27cPuX8yfT9cR4PrOM11NLiO01zHaa6jwXWc5jpOcx0N7byOsUw5Uqfr6DfRvx/9XMdprqNhol5H\n", + "kkF5ZqJex2T5friO01zHaeN9HcX+kuSll14adB3Tp08/4zpOnDgx4pgmk6k8IqF407+1346GWWdp\n", + "s3Kf/OQnWz7nJ37iJ7J8+fJTj9tuu63lNgaev3z58lPDCEfqwQcfHHT+W97ylpZjqMt1TIT1Efo9\n", + "/vjjQ+6fTN+PqXYdM2fOzF133ZW77rorM2eeHkQ10a6jGddxmutocB2nlXkdzXLLRLuOkXIdp7mO\n", + "01xHQzuv45JLLkmSrF+/ftjcMpQ6Xcdk+X64DtfRb6JfR//rlp/8yZ/MJZdcMmGvo99E/370cx2n\n", + "uY7Txvs6iv0tX748K1asyCWXXHLqcfHFF59xzFSd/WUqj0h4vrA9I0l3kj0ttLGssL17TBGV4Jxz\n", + "zqk6BCaQZiMSmLimT5+et7/97VWHAUwycgtQppUrV2b69Kn8VhVop4GvW37rt36r4mgAJq7W5ryZ\n", + "fJ5K8k0Dtl+f5B9bOP+Pk3z3gO3rkvxeq0Fs2bKlO4UixMaNG/PCCy+02tQpCxcuzGc/+9l0d3dP\n", + "iaFIQ6nDdRw7dixLlixpqc+q7d2794zpsCbL98N1nOY6TnMdDa7jNNdxmutocB2nuY7TXEeD6zjN\n", + "dZzmOhpcx2mu4zTX0eA6TnMdp02kqY2++tWvFk9dvG7dulY+oD7hTPVCwqeTfNeA7XcnaWUemrEW\n", + "IpKUU0i48847s2HDhlGfT3scPXo0S5curTqMluzatavloeQAAAAAMBUcP348jz32WHH3pC8kTOU1\n", + "EpKkuAruG1o4tyeDiwjHktRiXpj169crIgAAAAAA0BZTvZDwYGF7XQvnfmdh+8+THB5bOGO3cuXK\n", + "fOQjH6k6DF7R6hCuOpiIMQMAAAAA5ZnqhYSHM3jR5dckuWqE5/5oYftT7QhoLC666KJs3rw5CxYs\n", + "qDoUXjFt2rTMnTu36jBGbO7cuWesjwAAAAAATG1TvZDQl+R3C/s+NILz3pLkTQO2e5P8QZtiGpWV\n", + "K1fmoYceSk9PT5VhMIRLL7206hBGbNWqVVWHAAAAAADUzFQvJCTJryY5OGD7zUl+dpjjlyX5eGHf\n", + "f0+yr81xjdg111yThx56KEuWLKkqBIZx+eWXVx3CiE2kWAEAAACA8aGQkOxN8l8K+/5rkjvSWFC5\n", + "37Qkb09jOqSBiyx/I8mvlxlgM11dXbnzzjtz9913m86oxi677LKqQxgxIxIAAAAAgCKFhIZfzZkL\n", + "L/9kkq8leTLJF9IoONyXZPmAYw4neWcaUxuNm87Ozlx77bV5+OGHs2HDhvHsmlFYvXp11SGM2ESK\n", + "FQAAAAAYH9OrDqAm+pL8QJLfSfKuAfvPSWMB5qE8n+T7k/xduaGdtmLFilx33XW59tpr09XVNV7d\n", + "MkZr1qzJihUr8uSTT1YdyrBWrFiRNWvWVB0GAAAAAFAzCgmnvZTkh5L87yS/mKTZHdWDSe5O8ktp\n", + "FBNKMWfOnFx66aW5/PLLs2rVqqxevTpr1qxJR0dHWV1Sko6Ojlx33XX54Ac/WHUow7ruuuv8fE1C\n", + "J0+ezI4dO5Ikl1xySaZNMxANGDu5BSiD3AKUQW4BaA93DZu7OMm3J1mapDPJgSRfSvK3SY61s6Mt\n", + "W7Z0J9k9cN8VV1yRGTNmtLMbKrR3795cdtllOXasrT86bdPZ2Zlt27YZ6TIJHTp0KMuXN2Zk27lz\n", + "Z2bNmlVxRMBkILcAZZBbgDLILUC7HT9+PI899lhx9+J169btqSKe8WJEQnNffeUBY9bV1ZWNGzfm\n", + "3nvvrTqUIW3cuFERAQAAAAAYkvFcME42bdqUhQsXVh3GGbq6urJp06aqwwAAAAAAakohAcZJd3d3\n", + "br311qrDOMOtt96a7u7uqsMAAAAAAGrK1EYwjjZs2JBPfepTeeCBB6oOJUmyfv36bNiwoeowKNGs\n", + "WbOyb9++qsMAJhm5BSiD3AKUQW4BaA8jEmAcdXR05Pbbb8/KlSurDiUrV67MRz7ykarDAAAAAABq\n", + "TiEBxtmCBQuyefPmXHTRRZXFcNFFF2Xz5s1ZsGBBZTEAAAAAABODQgJUoKenJw8++GAlIxNWrlyZ\n", + "hx56KD09PePeNwAAAAAw8SgkQEV6enry0EMP5Zprrhm3Pq+55po89NBDWbJkybj1CQAAAABMbAoJ\n", + "UKEFCxbk7rvvzp133pmurq7S+unq6sqdd96Zu+++23RGAAAAAEBLFBKgBjZs2JCHH3441157bTo7\n", + "O9vWbmdnZ6699to8/PDD2bBhQ9vaBQAAAACmDoUEqInu7u7ccccd2bZtW2655ZasWLFi1G2tWLEi\n", + "t9xyS7Zt25Y77rgj3d3dbYwUAAAAAJhKplcdADBYV1dXbrzxxtxwww159NFHs3Xr1mzfvj2PP/54\n", + "tm/fnt7e3kHHz507N6tWrcrll1+eVatWZfXq1VmzZk06OjoqugIAAAAAYDJRSICa6ujoyJVXXpkr\n", + "r7xy0P6+vr4cO3YsSWPqIgUDAAAAAKBMCgkwwXR0dGTmzJlVhwEAAAAATBHWSAAAAAAAAJoyIgFg\n", + "Ejt27Fhuu+22JMlNN92Uzs7OiiMCJgO5BSiD3AKUQW4BaA+Tq9fAli1bupPsHrjviiuuyIwZMyqK\n", + "CJgsDh06lOXLlydJdu7cmVmzZlUcETAZyC1AGeQWoAxyC9Bux48fz2OPPVbcvXjdunV7qohnvJja\n", + "CAAAAAAAaEohAQAAAAAAaMoaCQCT2DnnnJP169efeg7QDnILUAa5BSiD3ALQHtZIqAFrJAAAAAAA\n", + "1J81EgAAAAAAAAoUEgAAAAAAgKYUEgAAAAAAgKYUEgAAAAAAgKYUEgAAAAAAgKYUEgAAAAAAgKYU\n", + "EgAAAAAAgKYUEgAAAAAAgKYUEgAAAAAAgKYUEgAAAAAAgKYUEgAAAAAAgKYUEgAmscOHD2ft2rVZ\n", + "u3ZtDh8+XHU4wCQhtwBlkFuAMsgtAO0xveoAAChPX19fduzYceo5QDvILUAZ5BagDHILQHsYkQAA\n", + "AAAAADSlkAAAAAAAADRlaiOASWzmzJm56667Tj0HaAe5BSiD3AKUQW4BaI+OqgMg2bJlS3eS3QP3\n", + "XXHFFZkxY0ZFEQEAAAAAUHT8+PE89thjxd2L161bt6eKeMaLqY0AAAAAAICmFBIAAAAAAICmFBIA\n", + "AAAAAICmFBIAAAAAAICmFBIAAAAAAICmFBIAAAAAAICmFBIAAAAAAICmFBIAAAAAAICmFBIAAAAA\n", + "AICmFBIAAAAAAICmplcdAADlOXnyZHbs2JEkueSSSzJtmvoxMHZyC1AGuQUog9wC0B4KCQCT2JEj\n", + "R/LGN74xSbJz587MmjWr4oiAyUBuAcogtwBlkFsA2kMZFgAAAAAAaEohAQAAAAAAaEohAQAAAAAA\n", + "aMoaCQCT2KxZs7Jv376qwwAmGbkFKIPcApRBbgFoDyMSAAAAAACAphQSAAAAAACAphQSAAAAAACA\n", + "phQSAAAAAACAphQSAAAAAACAphQSAAAAAACAphQSAAAAAACAphQSAAAAAACAphQSAAAAAACAphQS\n", + "AAAAAACAphQSAAAAAACApqZXHQAA5Tl27Fhuu+22JMlNN92Uzs7OiiMCJgO5BSiD3AKUQW4BaI+O\n", + "qgMg2bJlS3eS3QP3XXHFFZkxY0ZFEQGTxaFDh7J8+fIkyc6dOzNr1qyKIwImA7kFKIPcApRBbgHa\n", + "7fjx43nssceKuxevW7duTxXxjBdTGwEAAAAAAE0pJAAAAAAAAE1ZIwFgEjvnnHOyfv36U88B2kFu\n", + "AcogtwBlkFsA2sMaCTVgjQQAAAAAgPqzRgIAAAAAAECBQgIAAAAAANCUQgIAAAAAANCUQgIAAAAA\n", + "ANCUQgIAAAAAANCUQgIAAAAAANCUQgIAAAAAANCUQgIAAAAAANCUQgIAAAAAANCUQgIAAAAAANCU\n", + "QgIAAAAAANCUQgLAJHb48OGsXbs2a9euzeHDh6sOB5gk5BagDHILUAa5BaA9plcdAADl6evry44d\n", + "O049B2gHuQUog9wClEFuAWgPIxIAAAAAAICmFBIAAAAAAICmFBKS301ycgyPD417xAAjdOLEiSGf\n", + "A4yF3AKUQW4ByiC3ALSHQsLYmWAPqK3p06cP+RxgLOQWoAxyC1AGuQWgPRQSxkYRAQAAAACASU0p\n", + "9kw/nOS5Fo5/qqxAAAAAAACgagoJg/Ul+dskX6s6EAAAAAAAqANTGwEAAAAAAE0pJAAAAAAAAE0p\n", + "JAAAAAAAAE0pJAAAAAAAAE0pJAAAAAAAAE1NrzqAGupIMivJq5MsTHIkyb4k30jyUnVhAQAAAADA\n", + "+FNIGKwjyQNJLk1yTuHfjiZ5JMkfJfntJAfHNzQAAAAAABh/pjY60+U5s4iQJOcmeXOSX0+yM8kN\n", + "4xkUwGicPHlyyOcAYyG3AGWQW4AyyC0A7aGQMLS+wqNoXpLfSPKJDF10AKiFo0ePDvkcYCzkFqAM\n", + "cgtQBrkFoD1MbdQoFBxP8hdJ/jjJ55PsSHIgjULL4iTfluQdSd6Zwf9n73rluH/f7qBOnDjR7iaB\n", + "Kejll1/OvHnzTj0/fvx4xREBk4HcApRBbgHKILcA7TZV79t2VB1ADaxLsj3JMyM4dlWSP3jl60Dr\n", + "kzw42gC2bNnSnWT3aM8HAAAAAKAyi9etW7en6iDKVOXURrcnOTkOjw+dJY4tGVkRIWkUHN6c5MnC\n", + "/l8e4fkAAAAAADChTIWpjYZa42As9ib5sSR/PmDfFUlWJ9k6mgZfqVZ1JMmWLVvaHS8AAAAAAG22\n", + "bt26KTPjT5UjEibyDfO/TPKFwr7vrCIQAAAAAAAoU5UjEh5KMh7zRv1VSe1+NslrB2x/c5vaXdym\n", + "dgAAAAAAgAr9VAavxfCH1YYDAAAAAADtV+XURhPd8cL2jEqiAAAAAACAEikkjN6SwvZ4TNMEAAAA\n", + "AADjSiFh9N5U2N5ZSRQAAAAAAEDtrEhjaqOBayRcVWVAAAAAAABAPZyT5DMZXETYnWR6lUEBAAAA\n", + "AADt98tJ/kULx5+f5BMZXEQ4meQ/tj80AAAAAACgak8nOZHGCIPr0ygqDLVuRHeS9yR5MmcWER5O\n", + "MmMcYgUAAAAAgHHXUXUAFXs6yasK+w4neSbJC2n8/ywa4ph+X0ryHUn2lRQfAAAAAABQoady5giD\n", + "kTxeTnJXGlMdAQAAAADApHVO1QFU7OtpjECYnWR+hh+h0ZdkfxprJPyfSf5nkuNlBwgAAAAAAFWa\n", + "6lMbDTQnyao0pjFakmRWGsWDA2lMXfTFJDsqiw4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACY2aySM\n", + "3sVJXp/kwiSdaSzE/KUkDyd5qcK4OpK8NsmaJItf2fdskq1JvlBVUMCI1S23zEhySZLLklyQxnoy\n", + "B5PsTSOvbEtysoK4gJGrW14BJo+655dzkrwujbXwFqfxuuZgkp1pxLkjXsdAHdU1tyxM8q1JLkoy\n", + "P437Ly+kkVM+l+S56kIDJij3cSe5tyf5fBovOId69Cb5v5J0jXNcM5L8TJKvDxPb15LclGT6OMcG\n", + "nF2dcstFSd6f5E+SHB4mppNpvKj/jSQrxiEuoDV1yisjcX6SJ3NmnL9TZVDAkOqeXy5K8ptpvE4Z\n", + "7nXMgST3J/measIECuqaW96Z5C+Hiav/8fkkP5ZGEROo3rIkG5L8SpI/SyOHDPydfaq60NzHnexm\n", + "Jvm9nP0PR//juSTfMU6xLU+jSjXS2D6XZOk4xQYMr065pTPJ37cQy8DH0SQ/XVJcQGvqlFdacVuG\n", + "ju+uKoMCBql7fpmW5OfTeF3SyuuYe8cxRuBMdc0ti9P4cFWr740+l8aoCmD8vTHJfUm+kbP/rv5T\n", + "RTG6jzvJTUvyhznzG3ksjU/OfT7JviH+/WCSf1lybIsz9Kf3Dib5YpLHkxwa4t93pD6fQISpqm65\n", + "ZfYQffU/Dr0S098neSzJkSbHfbSEuICRq1teGanXJ3l5iLgUEqA+6p5fZiT5gyH6P/lKXNuS/F0a\n", + "749ezOCc84lxiA8YWl1zy4I03vcU+305jWlHPpfkH9L8ZuXXknxTifEBQ3tvRn6DvopCgvu4U8DP\n", + "5sxv4B1Jlgw4piONYXhP58w/HnNLjO2PC/0dSvJTSc4dcMz5afwiFaco+VSJcQFnV7fcUiwkPJnk\n", + "A2m8QC8Ozz03yQ+nMRSweA03tDkuYOTqlldGojOD36i/WIhLIQHqoe755Z5Cny+lMQXK65ocf0mS\n", + "/5Dkb5L83yXHBjRX19xy5xBx3Z9k9RDHrkzyv4Y4/jMlxQY016yQ8HLOnNqoikKC+7iTXFfO/EG7\n", + "eZjjl6bxgzjw+E0lxfadhX6OJnnTMMf/qzReUA8856qSYgOGV8fc0l9I+Ksk60Z4zvwkjxTi2pfG\n", + "J3iA8VXHvDISmwb0/7Uk/60Qk0ICVK/u+eVHCn3tTHJ5C+fPLyMo4KzqmluWFfo4mZGNvP7FIc6r\n", + "csQnTEX/MY3fvQNJPpvG+gjvSGM6oTen2kKC+7hTwK9m8Dfsz0dwzr8pnPNCkoUlxFa8ebdpBOfc\n", + "Ujjnb0qICzi7OuaWGRndYoM9OfMTxNe3MS5gZOqYV87mspx+cfxykvUZXFhQSIB6qHN+WZRkz4B+\n", + "9iV5TQn9AO1X19zynkIfz2bwp4Wb6UhjGrWB5/5ym2MDhveaNEYJDeWqVFtIcB93kpuWZHcGf8Pe\n", + "PMJz/7Jw3k+0ObYrCu33Jpk1gvNm58wbfs1+wYBy1Dm3jNZHMziu/6facGDKmYh5ZVoGL/D+v1/Z\n", + "v6kQj0ICVKvu+eUj49AH0H51zi3F0ZF3t3DuhwvnfrLNsQGjd1WqKyRMivu406rqeIJ4QxqfcOn3\n", + "1TT+YI3EnYXtt7clotO+r7D9B2nMq3U2B3PmDb52xwYMr865ZbT+urC9vJIoYOqaiHnlvWksspw0\n", + "Pk144zj1C7SmzvllZpLrBmzvSvI/2twHUI4655Z5he2dLZxbPNbUaUAySe7jKiQM73sL23/awrnF\n", + "Y69KY7GMdinG9ictnFuM7eoxxgK0ps65ZbQOFLaLL76Bck20vPKaJP95wPbPpzFtAFA/dc4vGzJ4\n", + "XaZPJulrY/tAeeqcW54vbLfS9nlnaQuYmibFfVyFhOGtKWw/3MK5u5I8PWC7M8mqsQb0io4k3zJg\n", + "uy+txfa3he1vGfIooCx1zS1jsaywvbeSKGDqmmh55bdz+o32w0k+VnJ/wOjVOb8U35SPZH51oB7q\n", + "nFv+vrD9bS2c+/rC9j+MMRZg4ps093EVEoZ3aWF7e4vnF48vtjda35TBVe5DSb7ewvlfS3JkwPas\n", + "mIYExlNdc8tYfEdh+8uVRAFT10TKK9cn+devPD+W5MdK7AsYuzrnl4E39/qSbH3l+TlJvieNEQo7\n", + "0ni/dCCN1ye/n+TdOfNTw8D4qnNu+XQGj5R8Y5J/OYLzViTZOGD7SJJPtDEuYGKaNPdxFRKaOy/J\n", + "qwZs96W1efGSM38ovnlMEZ12SWG71biSxg9hv44h2gTKUefcMlpzk3x/Yd8fVxEITFETKa/0JPm1\n", + "Adu3JvlSSX0BY1fn/DKv0NbLacT2mjTWbnooyTuT/Is0rmNuGjf5fiCNRdy/kuRH2hQL0Jo655ak\n", + "8UGHnyrs25zkW4c559I03gPNGLDvF2NqI2AS3cedXkWnE8SiwvbxJHtabOMbhe3Fow9n2HZaqWL1\n", + "eyaDf+i6Rx8O0II655bR+sU0KuL99iR5sKJYYCqaSHnlN3N6DZUvJ/lwSf0A7VHn/PKawvaLaUxt\n", + "8nAaRYOzWZrkniSXpbFOCzB+6pxb+m1OcmOS29O4d9aT5O/SKFL+SRo39frSmOL13yR5R07fY+tL\n", + "8itJPtLmmICJadLcx1VIaG52YfvwKNoorr5dbHO0iu2MZJXvorJiA4ZX59wyGm9IclNh34eTHK0g\n", + "FpiqJkpeeWeS73vleV+S96TxiT+gvuqcX+YPse/BnC4iHEpjSpG/SmPtpkVJ3pzkhzJ4eoGfTeOG\n", + "5EfbFBdwdnXOLQP9ZhrrJXw4yXemMW3a+lcezfxNkg/Fmi3AaZPmPq5CQnPFb8hoboodKWyXVUio\n", + "U2zA8CbT7+/iNOYeHjhN3j/EG3EYbxMhr3Ql+Y0B27+T5C/b3AfQfnXOL8VCwoJXHknyj2l8Orj4\n", + "ib/fS+OG4KcyeKHCX0vymTSmOwLKV+fcUvSFJLclOZHk6rMc+7evHPsXJcUCTEwTKecNyxoJzZ1b\n", + "2B7NJ+ZeKmy3a0GvOscGDG+y/P7OTHJ/kgsH7OtN41N+fRXEA1PZRMgrt+f08NvnkvxMm9sHylHn\n", + "/NLsDfTOJG9N82kD/jnJWzJ4IdWZkZdgPNU5twx0SRrTGf1JBhcR+gqPfm9Mcl+SbUm+vYR4gIlp\n", + "ouS8s1JIaK5YHeocRRszz9LmaNU5NmB4k+H3d1oan+hbO2DfiSQ/nOSfxjkWoP555XvSyA/93pfk\n", + "QBvbB8pT5/zSrJ33J3nhLOfuTfJzhX3/Nme+0QfKUefc0m9tks9lcEHgiSQ/mWRlGsXM89NYxP3d\n", + "ST4/4LiVaSz6/n0BmBg5b0QUEpo7WNgezYvKYnWo2OZo1Tk2YHiT4ff3N5NsHLB9MsmPpbHwGDD+\n", + "6pxX5iT52IDtT6cxJRowMdQ5vwzVzt40Fkgdid/P4ILDuUleP9aggBGpc25JGlO4fiqDRz79dhpT\n", + "ov2PNKZBO5LGJ4SfSmPh9m9L8ssDjp+e5N40igrA1Fb3nDdiCgnNFb8h54+ijVlnaXO0iu0U+xmJ\n", + "smIDhlfn3DIS/zXJjw/Y7kvy00nuHscYgMHqnFd+JcnyV54fSuNTfMDEUef8MlQ7f5fk5RGe/1Ia\n", + "azsN9K1jiggYqTrnliT5pTQWaO/32STvSWMU9nA+kOR/Ddg+N8mvtzEuYGKaNPdxFRKae76wPSOn\n", + "5/YdqWWF7d2jD2fYdi4c8qjhlRUbMLw655az+bkkP1vYd0uS/z5O/QNDq2teuSiDCwcfSvK1UbTT\n", + "0YZYgNGpa35JBq9x0O/LLbZRPL7VawNGp865ZWaS6wr7frGF838hjRHb/b47o7tnA0wek+Y+rkJC\n", + "c0fSWIirX0eSb2qxjVcVtp8YU0TN21k+5FHDG3hO3xBtAuWoc24Zzg1J/kth3+1pfFoHqFZd88q8\n", + "wvZ/S+ON9dkeHyyc938U/n1/G2IDRqau+SVprMt0vLCvt8U2iscvGH04QAvqnFtem8FTiOxJ8kgL\n", + "5389ydYB2x1J3tSGuICJa9Lcx1VIGF7xm7KqxfMvPUt7o/W1DF5UY1bO/CM6nG/K4D+Mh9L4YweM\n", + "j7rmlmauS/IbhX13Jrmp5H6BkZtoeWUs+qoOAKaYuuaXl5PsKOwrLkR4NsU5ig+PPhygRXXNLcVP\n", + "Cj89ijaK5ywdVSTAZDFp7uMqJAzv0cL2G1o4tyeDK+rHkmwfc0QNfTmzwt1KbG8sbH9xzBEBrahr\n", + "bhnKxiR3Ffb9fhqLKwP1Uee84sY/TGx1zi9fKGwvafH8xYXtvWOIBWhNXXNL8T7Z2dZFGEpxtNQ5\n", + "o4wFmBwmzX1chYThPVjYXtfCud9Z2P7ztPcTLsXY3trCucVjHxhjLEBr6pxbBvqeJJ/I4L8VDyb5\n", + "kZL6A0avjnnlK2m85njrK/GM5PHWDF6kMEk+Uzjm+9oQGzBydcwv/f6osP26Fs8vHl8c4QCUp665\n", + "pVhQLM5LPhLFc/aMMhZg8nAfdwroSGPxioHz8l41wnP/qnDeT7Q5tisK7fdmZKt+z0ljZe/+815O\n", + "srLNsQHDq3Nu6ffmNF6MD+xrS5LOkvoDxmYi5JWR2pTB8RRHRQHjq8755fyc+XplxQjPvaxw3stJ\n", + "FrU5PqC5uuaWVxfaPpnkNS2cPyeNKUwGnv8dbYwPGL2rMvh385/GsW/3caeIWzP4G/3nIzjnLYVz\n", + "DiRZWEJsjxT6Gcmip/+5cM7flhAXcHZ1zi3fmsYftWKuOL+EvoD2qXNeacWmKCRA3dQ5v/zPQj+/\n", + "O8Lzfr9w3p+VEBswvLrmlicLffxmC+d+qHDui0lmtDk+YHSuSnWFhMR93CmhK2feUPvZYY5fluSp\n", + "tP6DUax4v3kE53xX4ZyXMnyl+81pzB04sIr1r0fQD9B+dc0tlyV5vnDO55PMHUFfQLXqmldatanQ\n", + "vkICVK/O+WVZzhyV8O/Ocs6/Lxz/clqbYgBoj7rmlg/kzBzxb0fQzzVprI8w8NzfHsF5wPi4Ku0r\n", + "JLiPS1M/lzN/QO5IY4GfftOSvD3JPxeO25mR3YAr/pH6VyOM7f8tnHs4yX/I4NW8ZyV5b5IjhWPN\n", + "qQXVqltu6UnyjcI5LyZ5V0Y+v3n/4y0jiA1ov7rlldHYVOhDIQHqoc75pfgJ4GfTugMAAAMqSURB\n", + "VJeT/EaSCwvHvSrJb73y7wOP/70R9gO0Xx1zy+wku4aI664kq4Y4fkUaOaeYW15MsnwE8QHt9cYM\n", + "fZ/ipzP4d3RXGvcuhjr20rP04T4uTXWksZBX8Y/I8TSGvH0hyf4h/v1gkrUj7KN47kh/ABcn+eoQ\n", + "5x9K8niSbTnzB+9kki+nUf0HqlO33HLVEMeP5QGMv7rlldHYVGhfIQHqoc75ZVqT2F5+JbZ/yNDv\n", + "mU4m+VxM3whVqmtueX0a91WGyhvPpjFq+x+TPNPkmONpjFAAxt/TGfv9jN85Sx/u4zKsmUk+kZH/\n", + "wO1Oa2+sx/Km/FVJ/r8WYvt8GkMCgerVKbdc1UIcZ3u83EKMQHvVKa+MxqZC+3e1uX1g9OqcXzrT\n", + "eNPfyuuV+6OIAHVQ19zy+iRfaSGu/sczSb67hfiA9no6Y7+ncbb3IGN5zfKquI87ZbwjjYp4s29u\n", + "bxpD2ha12G7/jbf+R6tvymckeX+Srw8T2840hvFMb7FtoHx1yC1vHuL40Tz62wCqVYe8Mhr9U5T0\n", + "t6+QAPVT5/zyXUn+epjYTiR5OMnbRtE2UK465pbzk9yYxieFi1MXDXy8nManjH8+yYIW4wPa66mM\n", + "/b7GSAoJU+4+bkfVAUxgFyf59iRL0/j0y4EkX0pj9exjFcbVkeR1SVYn6X5l3+4kj6bxBxmot7rm\n", + "FmDikleAstQ5vyxNY9qTVyU5N42pUXalEdvzFcYFnF1dc8viNEYp9CSZn8b9lxeSPJfGNEdfry40\n", + "YIJyHxcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAo0f8PwtD9IUwXllYAAAAASUVORK5CYII=\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(6,3));\n", + "plt.plot(x_tr[:100], y_tr[:100], '--k');\n", + "plt.plot(x, y, 'ok', ms=10);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. Now, we use scikit-learn to fit a linear model to the data. There are three steps. First, we create the model (an instance of the `LinearRegression` class). Then we fit the model to our data. Finally, we predict values from our trained model." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# We create the model.\n", + "lr = lm.LinearRegression()\n", + "# We train the model on our training dataset.\n", + "lr.fit(x[:, np.newaxis], y);\n", + "# Now, we predict points with our trained model.\n", + "y_lr = lr.predict(x_tr[:, np.newaxis])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "style": "tip" + }, + "source": [ + "We need to convert `x` and `x_tr` to column vectors, as it is a general convention in scikit-learn that observations are rows, while features are columns. Here, we have 7 observations with 1 feature." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. We now plot the result of the trained linear model. We obtain a regression line, in green here." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": [ + "iVBORw0KGgoAAAANSUhEUgAABgwAAANzCAYAAAB1XDMtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", + "AAAuIwAALiMBeKU/dgAAIABJREFUeJzs3XmcVNWd8P9P080irYIsiguCokEFRknUQIzbSBIdjYqM\n", + "UWNY8miiMcYtv+TJOvI4mjjGmMwkxvGXEQFxIYagMRqNoGjGLZMoPuxCQAVFQUBA1m66nz9ONzTF\n", + "re5abtWtqv68X6960XXr3nO+t+rWafp87zkHJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSFDREPMYmGpEkqVSMZ8/fEcuSDEiSJKnYapIOQJIktQvdgOsjti8DJhU5\n", + "llSNCdcvSSpd/o6QJEntigkDSZJUDPsB/xKx/TmSTxhIkiRJkiSgQ9IBSJKkds07NyVJkiRJKhEm\n", + "DCRJkiRJkiRJkgkDSZIkSZLSqEo6AEmSpGJyDQNJktTeOA2SJClKY8q/qT9LkiRJkiQpBv2BhojH\n", + "MwnGJEmSJEmSWnBKIkmSJEmSJEmSZMJAkiRJkiRJkiSZMJAkSZIkSZIkSZgwkCRJkiRJkiRJQE3S\n", + "AUiSJFWonsBI4HPAEOBAoCuwDlgNLAT+CDwOrCxwLN2As4FTmmLpD3QHOgNbgPeBxcBLTfH8rUBx\n", + "HAicBhwHHAUcCfQA9gWqCe/NWuA94GXgeeC/gY8KFE9rBgDnEt6zo4A+wN7AJmAp8B/AxATiSucf\n", + "gHOATwEDgf0J19sGYAkwnnC9ZapUrplmNcBw4ONNsewNbCNcLwua4nizwDFkogfweeAMYBBwKLAP\n", + "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\n", + "AAAASUVORK5CYII=\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(6,3));\n", + "plt.plot(x_tr, y_tr, '--k');\n", + "plt.plot(x_tr, y_lr, 'g');\n", + "plt.plot(x, y, 'ok', ms=10);\n", + "plt.xlim(0, 1);\n", + "plt.ylim(y.min()-1, y.max()+1);\n", + "plt.title(\"Linear regression\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. The linear fit is not well adapted here, since the data points are generated according to a nonlinear model (an exponential curve). Therefore, we are now going to fit a nonlinear model. More precisely, we will fit a polynomial function to our data points. We can still use linear regression for that, by pre-computing the exponents of our data points. This is done by generating a **Vandermonde matrix**, using the `np.vander` function. We will explain this trick in more detail in *How it works...*." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "22.03 -4.25 0.00\n", + "-476.66 1286.40 -1171.56 419.94 -38.56 0.00\n" + ] + }, + { + "data": { + "image/png": [ + "iVBORw0KGgoAAAANSUhEUgAABi4AAANzCAYAAAA+9ODAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", + "AAAuIwAALiMBeKU/dgAAIABJREFUeJzs3Xl4VNX9+PF3FgiyBlBARMBdqVbcRayi4tKquH1daivS\n", + "qlXrrnVta7G2tlbrQhHtomKrdW3rWosCLkXEHy5YFURRREA0bIIECAmZ3x8nYDK5k8yaGcj79Tzz\n", + "kDlzzzmfzNybkPO55xyQJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJElS7tRGPE7Pa0SSpEIxksa/I2bnMyBJkqR8KM13AJIkSS2kC3BJRPls4L4WjiVeLM/9\n", + "S5IKl78jJElSq2PiQpIktRZdgWsjyl8i/4kLSZIkSZJUpzjfAUiSJOWZd7JKkiRJklRATFxIkiRJ\n", + "kiRJkqSCYeJCkiRJkqTCVZTvACRJklqae1xIkiS1PJenkiRFicX9G/+1JEmSJEmSNiL9gdqIx8Q8\n", + "xiRJkiRJkuK4VJQkSZIkSZIkSSoYJi4kSZIkSZIkSVLBMHEhSZIkSZIkSZIKhokLSZIkSZIkSZJU\n", + "MErzHYAkSZJypjtwHHA4sAuwOdAeWAosBN4HngWeARbkOJYuwJHAAXWx9AfKgTJgFfAF8CHwal08\n", + "b+Qojs2BIcBAYEdgO6Ab0BkoIbw3S4DPgSnAy8AkYEWO4mnKNsAwwnu2I9AL6AhUAh8Do4CxeYgr\n", + "kW8CRwH7ATsAPQjn23JgFjCScL4lq1DOmXVKgUHA7nWxdASqCOfLjLo4PslxDMnoBhwNHAJ8A+gL\n", + "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\n", + "V69m/vz5vPLKK7z88svrzyOAWbNmcfLJJzNhwgQ6deqUVN/5FLUk2G677ZaHSKTCsmbNGm655RYA\n", + "Lr30Utq29Q8ZCbw2pKZ4fUjRvDaUa6/OWcbvXppD5Zq1zR9cp21JERcO3pLDtu+ew8gUxd1DWpnx\n", + "48dvBjRYlHyXXXahTZs2We1n7dq1vP322wDsuuuuLb4h7ZqaWj77KvU7sAW9O5XRtnTjnIy1evVq\n", + "DjzwwEbLCW277baMHj2avfbaK7Le9OnTueCCC5g2bRoAm2yySaNZAk899RT77bdfk/3X1tZy/PHH\n", + "89///rdB+T777MOvfvWrJvc9WL58OTfddBN33nlng+Wd+vXrx8svv9zsOqC/+93vuPHGGxuUtW3b\n", + "lquuuorzzz8/4TU6duxYrr32WiorK4HG3/v+++/PE0880WTfUXtclJSUrB/EHzZsGL/+9a/p3bt3\n", + "ZP2qqqoGG6Tn83384osvOPDAAxssC1VUVMSpp57KlVdeGbkPxDqffPIJl19+ORMnTmxQPmzYMO69\n", + "994m+823t99+m4MPPrhBWWlpKe+//z5du3bNWj/5/t0hpaOyspItt9wSCEvIdejQIc8RSYXBa0NK\n", + "zOtDiua1oVxZWxvjvjcW8NDbX6RUb/NObbl26FZs0719jiJrXnV1Ne+88058cY+hQ4c2vV71RsAZ\n", + "F9ooffZVFT/6x/v5DmOD9KcTdqR/103yHUZOjBo1qlHSYocdduCZZ55pcvB1wIABPPXUUxx//PFM\n", + "nTo17aWNRo8e3Wiw/ayzzuK3v/1ts3U7d+7M9ddfz0477cQFF1ywvnzOnDncc889XHjhhQnrzps3\n", + "b/1dK+u0adOGv/zlLxx55JFN9jtixAh23HFHTjrpJCorK9P+3uOtS1qcffbZ3HDDDU0eWz9pAfl7\n", + "HwEuuOCCBkmL0tJSxowZwwknnNBs3/379+fRRx/lggsu4O9///v68ieffJI333yzYDfsjsVikbOM\n", + "vvOd72Q1aSFJkiRJUrZ9uaqa37zwCW99tqL5g+vZZ8vOXDGkH53KHD7Pl43ztmpJilNdXd3orva2\n", + "bdty3333JTX42r59e/72t7/RpUuXtPpfuXIlf/jDHxqUHX744UkNttd36qmnctpppzUou+uuuxot\n", + "fVXffffd1+j18847r9mkxTr77rsvP//5z1OKMxl77LEHv/71r1Oqk8/38c0332TChAkNyn7+858n\n", + "lbSo79Zbb2X77bdvUHbbbbel1EZL+uMf/8jkyZMblLVt25ZrrrkmTxFJkiRJktS8GRWV/PjxmSkl\n", + "LYqAEXtsznWHbW3SIs9MXEhqFZ555hkqKhqsksaZZ57Jdtttl3Qbm222GT/5yU/S6v+BBx5gyZIl\n", + "65+XlJQ0WropWZdffnmDvSa++OILpk6dGnlsbW0t999/f4Oybt26cfnll6fU55lnnsm2226berBN\n", + "+OUvf5nynhn5eh8Bbr/99gbPt9lmG84777yU+y0tLeXSSy9tUDZhwgTWrFmTclu5NnXqVEaOHNmo\n", + "/KKLLkrp2pE2ZiUlJQwbNoxhw4a5vJlUj9eGlJjXhxTNa0PZEovFeHL6Qi57+kMWVSa+QTFe57IS\n", + "bjhiG07drRfFWdrjU+kzcSGpVRg/fnyD50VFRQwfPjzldk499dS0NgiL39j4W9/61vq1O1O1xRZb\n", + "MGDAgAZlkyZNijx25syZjRI2xx9/PO3atUupz3X7OGTLtttuy7777ptyvXy9j6tXr+a5555rUPbd\n", + "73437c3KDz300Ebtv/7662m1lStz587ltNNOazQLZa+99uKKK67IU1RS4WnXrh1jx45l7NixKf9s\n", + "lTZmXhtSYl4fUjSvDWXD6ppafvfSHEZPnkdNbaz5CnV22Kw9Y47bkT36dM5hdEqFiQtJrUL8oPB2\n", + "222X1h3j5eXlDB48OKU6VVVVvPHGGw3K9tlnn5T7rq9v374Nnr/77ruRx0UNhg8dOjStPg877LC0\n", + "6kVJ9T2E/L6Pb7zxRqMZEXvvvXfa/ZaXl9OpU6cGZf/73//Sbi/blixZwoknnthgPw+Anj17cu+9\n", + "91Jc7H8fJEmSJEmFZf6yKi5+ciYTZi1Nqd6RO3bn90dtR4+Oqd+oqtxxoS5JG72VK1fy4YcfNigb\n", + "OHBg2u0NHDiQF154Ienjp02bRlVVVYOy+++/n6effjrtGObPn9/g+eLFiyOPmz59eoPnRUVF7Lrr\n", + "rmn1ud1221FWVtboe0nHN7/5zZTr5PN9fO211xqV/eQnP6FNmzZp97169eoGz+svgZVPy5cv58QT\n", + "T2x0zXTp0oVHHnmEzTffPE+RSZIkSZIUbdLsL7n55TmsrK5Nuk7bkiIuHLwlh23fPYeRKV0mLiRt\n", + "9KIGozPZryHVup999lmjsvnz5zcaNM9EokHvpUsb3mXQtm1bevTokVYfpaWlbLHFFnz88cdp1a9v\n", + "s802S7lOPt/HqL4/+OCDrPULjT+rfKisrOSUU05h2rRpDco7dOjAww8/zM4775ynyCRJkiRJaqym\n", + "Nsbd/28+/3h3YfMH17N5p7ZcO3QrtunePkeRKVMmLiRt9JYtW9aorHPn9NcsTLVuSwxIr1q1KrL8\n", + "yy+/bPA8k+87G/XXiV8mKRn5fB9bYjZEor5byqpVq/je977XaHZJ+/bteeihh9hrr73yFJkkSZIk\n", + "SY0trFzDryd8wvSKypTq7bNlZ64Y0o9OZQ6NFzI/HW2Uencq408n7JjvMDZIvTuV5TuErFuxYkWj\n", + "svbt08+op1o3PnmwTrobO6fSVvzSSpksbQSktTF5lNLS1H/95PN9jOo7m/3mW1VVFaeddhr//e9/\n", + "G5S3a9eO+++/n/322y9PkUmSJEmS1Ngb85bz2xfnsGx1TdJ1ioDT99icUwb2pHgj+pt+Y2XiQhul\n", + "tqXF9O+6Sb7DUIHo2LFjo7KVK1em3V6qddu1a9eo7Pe//z0jRoxIO4Zkxc+QiEripOKrr77KqH4m\n", + "8vk+brJJw58nRUVFTJkyJaMlxwrFmjVrGD58eKN9W8rKyvjrX//KgQcemKfIJEmSJElqqDYW4+9v\n", + "fc7f3vycWAr1OpeVcPVB/dmjT3ZWklDumbiQtNHr0qVLo7Lly5en3V6qdbt3b7zJU0vtZ1BeXt7g\n", + "+YoVK6ipqUlrxgPkdx+GfL6P3bp1a/A8FosVzGbamaiurmbEiBGMHz++QXnbtm0ZO3YshxxySJ4i\n", + "kyRJklTo3n33XT766COOOeaYfIeiVmLZ6hpufPETXp+X2k2VO2zWnp8fshU9OmZnFQm1jOJ8ByBJ\n", + "uRY14P3hhx+m3V6qdaM2w547d27a/aeiT58+DZ7X1tYyY8aMtNpasmQJn3/+eTbCSks+38eePXvm\n", + "re9cqa6u5oc//CHjxo1rUN62bVvuueceDjvssDxFJkmSJKnQVVVVcc455/CDH/yAs88+O+HSvlK2\n", + "zKio5Nx/vZ9y0uKoHTfl90dtZ9JiA2TiQtJGr3379my//fYNyqZNm5Z2e6nW3W233SgubvjjdvLk\n", + "yWn3n4rdd9+9Udnrr7+eVlvp1suWfL6Pe+yxR6OyV199tUX6zoWamhrOOOMM/v3vfzcob9OmDX/5\n", + "y1/49re/nafIJEmSJG0Ifvvb3zJ9+nQAHn30UQYPHtxo+VkpG2KxGP96t4JLn/qARZXVSdcrKy3m\n", + "qiH9uHD/LWlb4hD4hshPTVKrsOeeezZ4/uGHH6Y16+LLL7/klVdeSalOeXk5u+66a6P+Z86cmXL/\n", + "qdpzzz0bbSL92GOPpdXWo48+mo2Q0pbP93H//fdvtLzWuHHjqKlJfhOwQrF27Vp+9KMf8cwzzzQo\n", + "Ly0t5U9/+hNHHnlkniKTJEmStCGYMmUKo0aNalC2YMECTjjhBK688sqM9pSU6qtcs5ZfTfyEO6fM\n", + "Z20KG1ps2aWM0cdsz8Hbdmv+YBUsExeSWoWhQ4c2KvvrX/+acjsPPvgg1dXJZ/jX+c53vtOo7Pbb\n", + "b0+5nVR16dKFgw46qEHZlClTmDp1akrtzJ49m6effjqboaUlX+9jp06dGDx4cIOyzz77jIcffjjn\n", + "fWdTbW0t55xzDk888USD8tLSUu666y6GDRuWp8gkSZIkbQi++uorzj33XGKx6FHkP//5zwwZMoQ3\n", + "3nijhSPTxmb2klWc//hM/js7tWXIDtqmK6OP3YF+XTfJUWRqKSYuJLUKRx55ZKM9Ev7yl78wa9as\n", + "pNtYtGgRN910U1r9n3nmmY02CX/kkUca3fWeCz/84Q8blV122WWsWrUqqfo1NTVceumlrFmzJtuh\n", + "pSyf7+NPfvKTRmXXXnstc+bMyXnf2VBbW8v555/PP//5zwblJSUljBkzhuOOOy5PkUkbtpUrVzJo\n", + "0CAGDRrk3YVSPV4bUmJeH9qQJfM30KxZsxotS5sMrw2t89wHi7nwiZnMX16VdJ02xUVcsF8frhrS\n", + "j03alOQwOrUUExeSWoXS0tJGA/hr1qzh9NNPZ+nSpc3WX7lyJcOHD2fZsmVp9d+5c2cuuOCCBmWx\n", + "WIxzzz2XZ599Nq02AZ5//vnIAfX6Dj/88EZLLL333nuceuqpLF++vMm6q1ev5uyzz+bll19OO8Zs\n", + "yuf7uN9++zFkyJAGZV9++SUnnngiH3zwQVr9rl69mrFjxzJmzJi06icrFotx8cUXN5ohUlJSwh13\n", + "3MEJJ5yQ0/6ljVksFmPmzJnMnDkz4Z2HUmvktSEl5vWhDdVzzz3Hfffd1+xxO++8M1deeWXK7Xtt\n", + "qKqmllv/+yk3v/wpVSmsDdWzY1tuOXo7jh6wWaPlsrXhMnEhqdW48MIL2XbbbRuUvf/++3z7299u\n", + "cuPp6dOnM2zYMF577TUANtkkvemGF154IQceeGCDssrKSk477TQuueSSpO/c/+ijj7jlllvYb7/9\n", + "OHb/oi8AACAASURBVOWUU5gyZUqTxxcXFzN69GjatGnToPzll19m33335Z577mHRokUNXvvyyy95\n", + "8MEHGTx4MI8//jgQlp3abrvtkooxl/L1PgLccccd9OrVq1E7Q4cO5bbbbms2EQThP+OvvfYa11xz\n", + "DQMHDuSyyy7j008/TSrmdF1xxRU88MADDcqKi4v5wx/+wIknnpjTviVJkiRt+BYvXsyFF17Y7HFt\n", + "27blrrvuom3bti0QlTYmny2v4uKnPuDZmYtTqrfPlp2549gd2GGzDjmKTPlS2vwhkrRxKCsrY/To\n", + "0QwbNqzBskcffvghRxxxBHvvvTeHHnoovXv3pri4mAULFvDCCy8wadIkamtrgTBz44orruC6665L\n", + "uf+SkhLuvfdeDj/88AYbg8diMf7617/ywAMPMHDgQPbbbz/69u1LeXk5sViMZcuWsWjRIt577z3e\n", + "fvtt5s6dm3LfAwYM4MYbb+Syyy5rcOfKF198weWXX84VV1zBpptuSteuXVm2bBkLFy5c/z0DFBUV\n", + "ccstt3DPPfc0iL24uOXz3/l8H3v16sUDDzzAsGHDqKysXF9eWVnJ9ddfzy233MI+++zD3nvvTY8e\n", + "PSgvL2f16tUsW7aMzz//nLfffpu33347qVk+2TJlyhTuueeeRuXt2rVjzJgx3HHHHWm3vfnmm29w\n", + "+3xIkiRJSk0sFuOyyy6joqKi2WN/+tOfMmDAgBaIShuTSZ98yc0vzWFldW3zB9cpLoLT99ick3ft\n", + "SbGzLDZKJi4ktSp77bUX9913H6effnqD5MW6u+DXzaqIUlRUxI033pjRrIMuXbowbtw4zjnnHJ57\n", + "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\n", + "sDglLy9P7733nj777DPNmDFD119/fa30X1BQoOeee06vv/66Tp48WWP94uJirVq1SqtWrdKsWbP0\n", + "6quvqnNn478KMjMzde+99+qrr76qse7mzZt1xx136P3339ebb76pyMiKq+G58h8lk8l0ut27776r\n", + "hx9+WAUFVW88Vl0fnrqOkpSamqpHH31UX375pVP1T5w4oSVLlmjJkiW6/PLLNXfuXIWGhrrUNwDv\n", + "4e/vrzfeeOP01wDsGBtA1RgfqM6nn36qV199tcZ6Pj4+euONN9S8efM6iKpuNJaxkbwzU/NWpirf\n", + "wF4WktQ2IkCPDI5Xm4hAN0UGeBcSF64ZI+nlMq9LJN1ZTf1O5V6nGuyvfP04SX6SjC1+18hkLF2t\n", + "va8sVObKDbKVlkqSTBaLIvufp/g7blT04L4ejtAzuC7SN998ozFjxqi4uNjpNvn5+brrrrtUWFio\n", + "hISEs+r/yJEjuummm7RhwwaX2m/ZskWXXnqpXn/9dQ0dOtTpdseOHdOoUaO0daux3GlKSopGjBih\n", + "r7/+2miolbLZbLLZbJozZ46mTp3q8nE8dR0l6ZdfftHNN9+so0ePutT3kiVLtH37dn344Yf1fgM9\n", + "oLHz8fHRqFGjPB0G4HUYG0DVGB+oSl5enh566CGn6k6dOlV9+zasz+8NfWzkFZVqzopULdtV1Urz\n", + "VRvZpanG92ktfx+zGyIDvBOJi8p1lD05cIqvpAhJ58q+yXbZx3PzJf1dUko1x2tW7vUBg/EckVQq\n", + "6dTi6GZJUZIOGzxOo5GRvFLrxzwgW6lj9tpWWqpjP61V5sr16vH284oe0t9DEXoG10Vas2ZNpUkL\n", + "s9msXr16aejQoWrdurV8fHx08OBBLV26VCtXrlTpn0meBx54QI899pjL/aenp+uSSy7RgQOOvwZM\n", + "JpM6d+6spKQknXPOOaefxM/IyNAvv/yi7777TidOnDhd/8SJExo7dqy+/vprde3atcZ+S0pKdO21\n", + "11aatGjRooVGjBihzp07KzIyUllZWdq5c6e++uor7du3T5L0+++/64477qi1qajLli3TrFmzTr8O\n", + "CAjQgAEDlJSUpObNm5++/mvXrlV+fn6F9p66jpI9kXPttddWmOFhsVjUr18/9enTR3FxcQoLC1Nh\n", + "YaEOHjyoFStWaPny5ad/jiTpjz/+0HXXXafvv/9eTZo0carv2mSz2fTKK69o1apV2rZtm44ePar8\n", + "/HyFh4crPDxc8fHx6tevn5KSktS7d/mVEQEAAADUtuDgYH366acaM2bM6c9ilbnyyit1++2312Fk\n", + "OFtbjpzQtGXGN+AO9bdo0oVx6t8m3E2RAd6LxdAqN1vSvTXUKZb0maQnJO2soe5Hkq4p8/o+SXMM\n", + "xnRc9k2+Jfvm3uc40W8FycnJ0Sq3v0bXrl3l61u7ywSVlpZq06ZNkqTu3bvX6Ya0GckrtfH2J1R6\n", + "ouLNzrIsIUFKnP9Ug75JXxbXRSosLNTAgQMr7IGQkJCgefPmVXlzduvWrbrnnnu0ceNGSVJgYGCF\n", + "pY2++OIL9e9f/TWzWq266qqr9NNPPzmUn3/++frXv/5V7b4Hx48f14wZM/TKK6847EnRpk0bLV++\n", + "XCEhIVW2laTnn39e06dPdyjz8/PTQw89pLvvvrvKMfrWW2/piSeeUF6efd3N8uc+YMAALVq0qNq+\n", + "K9vjwmKxnL6JP3LkSD3zzDNq1apVpe1PnjzpME3Yk9fxyJEjGjhwoMNeFiaTSTfeeKMefPBBtW7d\n", + "usq2e/fu1f3336+lS5c6lI8cOVJvvvlmtf3WhmnTpmnGjBkute3SpYvuvvtuXXPNNTKb3feEjyff\n", + "OwAAAABvkZ2drdtvv13ffvtthe917NhRycnJNX52gXcotdq0cGOa3t9gfAPu81qF6IGB8YoKblxL\n", + "e8NRcXGxNm/eXL642ZAhQ6reZLOBYH6R6z6T9JqcSx6UfzcpdKG/sndJTZUcE7Ivg7R+zAM13pyX\n", + "pNIT+Vo/5gFlLF1dB5F5FtfFbs6cORWSFp06ddLXX39d7RPlXbp00RdffHG6TnX7MVRn3rx5FW62\n", + "jx8/Xv/9739r3Kw5NDRUTz/9tObMccx57tu37/QaoFU5cOCAZs6c6VDm6+ur119/XRMmTKj25vDY\n", + "sWP1n//8R8HBwZJcP/fyTiUtbrvtNr355ptVJi2kimubeuo6StI999zjkLTw8fHRq6++qjlz5lSb\n", + "tJCk+Ph4ffzxx7rxxhsdyhcvXqz169fX2Lcnbd26VXfeeaeuvPJKHTlyxNPhAAAAAA1aeHi4Fi5c\n", + "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\n", + "wC9xCARNTFRz47UEfYt8n/vfEdxJ+xDw2xG2SRE8gSGNxw4m/n3+62Mcw764atUOopUfK0sQT+5L\n", + "Gq8dRCs3xmNdaP9fK/H+Nck0AbdS+Af8JYr70E7kA3888KsiYnuY4PFyqVSilB8ri4hjrFe6iBil\n", + "sCjlxXisC+3fL0oqpSjnRyNBR6WYvxffxaKFSiOqufFa4Kki4hp4/Rb4kyLik8J2MPHv9GN9h5nI\n", + "34zjsS+u6tlBtPJjZQniGXjZF9dE7CBauTEe64qMp2Li1Q5AeR0C3gW8HdgyynZdwJeARcB9RR4j\n", + "y/geL3qOoDPxMYLOwUheAD4K/EH/e6lUopQf2ZyfE3lJExWlvBiPcC5JpRTl/OglmNvijYw+cWoG\n", + "eBC4ALiIYH4MaaKimhu/IBhe4UMEw0ON1jZLMP/G3xKMdf5/i4xPyjXR7/SFfs7ti6sWRS0/7Isr\n", + "KqKWG+MR2f54vnG1FD0nE3zpOIbgzrxXCMY+e4Cgw1stMeA1BB2L1v51LxF0fDZXKyjVnajmh1RN\n", + "5oU0sijnxzEEw/AcD0whGKpnF0Fsu6sYl+pDVHNjDsHF2rnAEQR9kL3AiwTDRj0/clNp0rIvLkmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS\n", + "JEmSJEmSJOn/bw8OCQAAAAAE/X9t9gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n", + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMqnIeE/mIDV4AAAAASUVORK5CYII=\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "lrp = lm.LinearRegression()\n", + "plt.figure(figsize=(6,3));\n", + "plt.plot(x_tr, y_tr, '--k');\n", + "\n", + "for deg, s in zip([2, 5], ['-', '.']):\n", + " lrp.fit(np.vander(x, deg + 1), y);\n", + " y_lrp = lrp.predict(np.vander(x_tr, deg + 1))\n", + " plt.plot(x_tr, y_lrp, s, label='degree ' + str(deg));\n", + " plt.legend(loc=2);\n", + " plt.xlim(0, 1.4);\n", + " plt.ylim(-10, 40);\n", + " # Print the model's coefficients.\n", + " print(' '.join(['%.2f' % c for c in lrp.coef_]))\n", + "plt.plot(x, y, 'ok', ms=10);\n", + "plt.title(\"Linear regression\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have fitted two polynomial models of degree 2 and 5. The degree 2 polynomial appears to fit the data points less precisely than the degree 5 polynomial. However, it seems more robust: the degree 5 polynomial seems really bad at predicting values outside the data points (look for example at the portion $x >= 1$). This is what we call overfitting: by using a too complex model, we obtain a better fit on the trained dataset, but a less robust model outside this set. Note the large coefficients of the degree 5 polynomial: this is generally a sign of overfitting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. We will now use a different learning model, called **ridge regression**. It works like linear regression, except that it prevents the polynomial's coefficients to explode (which was what happened in the overfitting example above). By adding a **regularization term** in the **loss function**, ridge regression imposes some structure on the underlying model. We will see more details in the next section." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The ridge regression model has a meta-parameter which represents the weight of the regularization term. We could try different values with trials and errors, using the `Ridge` class. However, scikit-learn includes another model called `RidgeCV` which includes a parameter search with cross-validation. In practice, it means that we don't have to tweak this parameter by hand: scikit-learn does it for us. Since the models of scikit-learn always follow the `fit`-`predict` API, all we have to do is replace `lm.LinearRegression` by `lm.RidgeCV` in the code above. We will give more details in the next section." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "11.26 5.93 0.00\n", + "4.39 3.80 3.32 3.27 3.97 0.00\n" + ] + }, + { + "data": { + "image/png": [ + "iVBORw0KGgoAAAANSUhEUgAABe8AAANzCAYAAAAwa+NeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", + "AAAuIwAALiMBeKU/dgAAIABJREFUeJzs3XmYFNW5+PFvz8Iqe3AXcV+uRiCiCMYVNUYlV5Oo0YBc\n", + "YxKMa+KWm8VrzKoxJpqoXK/RcY/G5Je4xBgBiQtCVMQYRUUBg7iAgCj7MNO/P84MzvRUL9XL9Mz0\n", + "9/M8/WhXV53zds3pnuGtU+8BSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SV3HdKAx5XFLOQNqchlt41pQzoAkqYOaTsf8HpckSWqjptwBSJIkAYOAX+RxXD2wEvgQ+AB4GZgN\n", + "LC9eaFkl27GvODpqXJLU0fh9KUmSOiST95IkqSPoA0woYnsLgd8DNwHzitiuJEmSJEntoqrcAUiS\n", + "JJXAUOAi4FXgT8BWZY1GkiRJkqSYTN5LkqSubhzwEvCf5Q5EkiRJkqRcmbyXJEkdXTKHRzb9gXuA\n", + "w0sUoyRJkiRJRWXyXpIkdWTTgeoMj27A5sAI4BvAYxnaqgX+CAwpIJ58LhxIkjoOv8clSZIkSZJi\n", + "GAo0Rjym5dHWKOCNNO01AjcXHm6Hcxlt3+f8cgYkSZIkSSqMM+8lSVJXMxPYD1iQ5vXxwI7tF44k\n", + "SZIkSfGZvJckSV3RMuDUNK9VA8e1YyySJEmSJMVm8l6SJHVVM0lfA9+FayVJkiRJHZrJe0mS1JX9\n", + "Jc32ke0ahSRJkiRJMdWUOwBJkqQSejbN9oHtGkVuhgNfAD4N7AoMAJLASuB14DngAWBK0/b2tBNw\n", + "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\n", + "r7766qb/l7oix7kqgeNclcBxrkrgOC+NwYeNYsStVzJn0qU0rFpT7nA2MYPbxb3zzjubkjI77rgj\n", + "gwYNMnEvSaKqqopBgwax4447ArBixQreeeedMkclSZIkSVJ5DB47mmGTLydR3XFypx0nEhVdMplk\n", + "2bJlQJhx379//zJHJEnqaPr378+QIUMAWLZsmTM3JEmSJEkVa/DY0Yy4/SoGHTSSRHV1ucOxbE5X\n", + "tnr1aurr66mqqmLAgAHlDkeS1EENHDiQt956i/r6elavXs1mm21W7pDUgXTv3p2bb7550/9LXZHj\n", + "XJXAca5K4DhXJXCcl97gw0Yx+LBRNG6oZ8Padbz8xryyxWJh23Y2ZcqUwcCSltv23ntvamtri97X\n", + "W2+9xZIlSxgwYAA77LBD0duXJHUdCxYsYMWKFWy++eZsu+225Q5HkiRJkqSyq6+v58UXX0zdvPnY\n", + "sWOXtkf/ls3pwlauXAngrHtJUlbNvyuaf3dIkiRJktQVNW6oZ+PqtWxcvZbGDfXlDicjy+Z0YfX1\n", + "YfD16NGjzJFIkjq65t8Vzb87JEmSJEnqSpZOm8nCG+5i+YznSTY0AJCormbg6OEMPfMUBh82qswR\n", + "tuXM+y4qmUzS2NgIQE2N12gkSZlVNy3E09jY6KK1kiRJkqSczJo1i7PPPpsFCxaUO5SMlk6Zwezx\n", + "F7LsiWc3Je4Bkg0NLHviWWaPv5ClU2aUMcJoJu+7qObEPUAi4dIGkqTMqqo+/pOg5e8QSZIkSZLS\n", + "ueKKK7jrrrvYb7/9OOuss5g/f365Q2pj6ZQZzJl0KcmG9P/WTTY0MmfSpR0ugW/yXpIkSZIkSZIU\n", + "y8yZM5k+fToADQ0N3H333ey///4dKom/dNpMZp92MQ2r1mTdt2HVGmafdjFLp81sh8hyY/JekiRJ\n", + "kiRJkhTLlVde2WZbahJ/8eLFZYjsYwtvuCvjjPtUyYZGFk6+u4QRxWPyXpIkSZIkSZKUs5az7qM0\n", + "NDRw3333lXVNtcYN9Syf8Xzs45Y/NZvGDfUliCg+k/eSJEmSJEmSpJxFzbpPNX78eLbddtt2iCZa\n", + "Y/3GVovT5irZ0EBj/cYSRBSfyXtJkiRJkiRJUk6yzboHqK2t5fzzz2+fgLowk/eSJEmSJEmSpJzk\n", + "Muv+y1/+clln3QNU1daQqK6OfVyiupqq2poSRBSfyXtJkiSl1djYyNy5c5k7dy6Njbkv9CR1Jo5z\n", + "VQLHuSqB41yVoNzjfNasWTnNuv/mN7/ZPgFlUNWtloGjh8c+buCYEVR1qy1BRPF1jEsIkiRJ6pDW\n", + "rl3LmDFjAFi0aBG9e/cuc0RS8TnOVQkc56oEjnNVgnKP85/+9KdZ9+kIs+6bDT3zFJbPmE2yIbcL\n", + "HYnqKoZO+lKJo8qdM+8lSZIkSZIkSRk98cQTPP744xn36Siz7psNPmwUI269kurNemXdt3qzXoy4\n", + "9UoGHzaqHSLLjcl7SZ3Ok08+yaBBg1o9nnrqqXKHJUmSJEmS1CUlk0l+8pOfZN3v1FNP7TCz7psN\n", + "HjuaYZMvJ1GdPhWeqK5i2OTLGTx2dDtGlp1lcyR1eolEgkQiUe4wpNiWLFnC3LlzWbRoEStXrmT9\n", + "+vX06dOH/v37s+OOO7L33nvTrVu3cocpSZIkSapwU6dOZdasWRn36Wiz7lsaPHY0I26/ioWT72b5\n", + "U7NJNjQAYXHagWNGMHTSlzrUjPtmJu8ldXrJZLLcIUg5WbRoEVOnTuXxxx9nxowZLF26NOP+3bt3\n", + "Z+TIkUyYMIFx48ZRW9sxFsxRZenduzfLly8vdxhSSTnOVQkc56oEjnNVgnKM82QymVOt+9NOO43t\n", + "ttuuHSJKr3FDPY31GwGoqq1ptfDs4MNGMfiwURn36WhM3kuSVGLXXXcdf/rTn5g9e3as49avX8+T\n", + "Tz7Jk08+yQ9+8AOuueYaDj300BJFKUmSJElSWw8//DDPP/98xn169OhR1ln3S6fNZOENd7F8xvOt\n", + "Z9WPHs7QM09pNau+qltth07Yt2TNe0mSSuzSSy+NnbhPtXjxYr7whS9w+eWXFykqSZIkSZIya2xs\n", + "zGnW/emnn85WW23VDhG1tXTKDGaPv5BlTzy7KXEPkGxoYNkTzzJ7/IUsnTKjLLEVypn3kiSVQSKR\n", + "YNttt+WAAw5g9913Z9CgQfTt25eVK1cyd+5cpk6dyuuvv97muGuuuYbq6mq++93vliFqSZIkSVIl\n", + "+fOf/8xLL72UcZ/evXtz3nnntVNErS2dMoM5ky4l2dCYdp9kQyNzJl3aIRekzcbkvSRJ7WjIkCGc\n", + "fPLJnHTSSQwdOjTjvg8++CAXXnhhm9r4V199NYcccghjxowpYaSSJEmSpErW0NDAz372s6z7fe1r\n", + "X2Pw4MHtEFFrS6fNZPZpF2dM3DdrWLWG2addzIjbr+qQC9OmY9kcSZLawbBhw7j77rt5/vnnueSS\n", + "S7Im7gGOPfZYpk2bxrbbbtvmtUsuuaQEUUqSJEmSFNx3333Mmzcv4z59+vTh7LPPbqeIWlt4w105\n", + "Je6bJRsaWTj57hJGVHwm7yVJKrE777yTqVOncuSRR8Y+duutt6auro5EItFq+9y5c3nxxReLFaIk\n", + "SZIkSZvU19dzxRVXZN3vrLPOYsCAAe0QUWuNG+pZPiPzIrpRlj81m8YN9SWIqDRM3kuSVGKf+cxn\n", + "Cjp++PDhHHXUUW22P/LIIwW1K0mSJElSlLvuuouFCxdm3GfAgAFMmjSpfQJK0Vi/sdXitLlKNjTQ\n", + "WL+xBBGVhjXvJZVdMplkzpw5zJ8/n3feeYeNGzfSv39/dtttN0aMGEH37t3bJY633nqLl156ifff\n", + "f59ly5ZRVVXFoEGD2GqrrRg5ciS9e/cuep9Lly7lueee491332XZsmX07NmT7bbbjmHDhrHddtsV\n", + "vb9MGhoaePHFF3n11VdZsmQJ69evp1evXuy1114cdNBBObdTjvMIYRy9/PLLLFiwgPfff58VK1bQ\n", + "q1cvPvGJTzBkyBBGjBhBdXV1SfpuD0cccQR//etfW2178803yxSNJEmSJKmrWr9+PVdddVXW/c49\n", + "91z69u3bDhFVLpP3kspm9erV/OpXv+Kee+5h8eLFkfv07t2b448/ngsuuIAhQ4YUPYa3336bG264\n", + "gb/97W+8/vrraferra1l33335Stf+QrHH398wf0+/PDDXH/99Tz99NMkk8nIffbee2++8Y1vcOKJ\n", + "J27adtxxxzFjxoxNz8eMGcP999+fsa8nn3ySz33uc6223X///ZsWO33rrbe49tprue+++1i5cmWb\n", + "48eMGZM1eV+u8wjw/PPPc+ONN/LYY4+1Wdi1pc0224xDDjmE8847jxEjRhSl7/a0zTbbtNm2ZMmS\n", + "MkQiSZIkSerKlixZwhZbbJE2VwMwePBgzjjjjHaMqrWq2hoS1dWxZ98nqqupqu08KXHL5kgqi7//\n", + "/e8ccMABXH311Rl/GaxevZo77riDMWPG8Lvf/a5o/a9du5ZLL72Ufffdl+uvvz5jwhlCrbenn36a\n", + "M844g4MOOoi5c+fm1e/y5cv58pe/zJe//GVmzJiRNnEP8OKLL3LmmWfyuc99juXLl0fuk1oHPReJ\n", + "RGLTcbfffjujRo3it7/9bWTiPlsf5TqPAIsWLWLChAmMHTuWe++9N2PiHmDVqlU8+OCDHHHEEZx2\n", + "2ml8+OGHefddDmvWrGmzrUePHmWIRJIkSZLUlW233XY8+uij3Hnnney1116R+5x//vklu7M+F1Xd\n", + "ahk4enjs4waOGUFVt9oSRFQaJu8ltbtHHnmEk046KWPSPtWaNWs466yzqKurK7j/9957j+OOO47r\n", + "rruO9evXxz7+pZde4jOf+QyPPvporOOWLVvG5z73OR5++OFYxz355JMcc8wxaZPrcSWTSZLJJNde\n", + "ey3nn38+a9euzaudcp1HgGeeeYaxY8fy0EMPxT4W2JTEX7BgQV7Hl0NUrFtuuWUZIpEkSZIkdXWJ\n", + "RIKjjz6a6dOnc/PNN7PLLrtsem2rrbbiv/7rv8oYXTD0zFNIVOee3k5UVzF00pdKGFHxdZ57BCR1\n", + "Cf/4xz847bTTqK9vvbJ3VVUV++67L0cccQTbbLMNNTU1LF68mGnTpjFjxgwamm6Duvjii/ne976X\n", + "d/9LlizhyCOP5K233mq1PZFIsMceezBmzBh23333TTXbli5dyjPPPMOjjz7KqlWrNu2/atUqJk6c\n", + "yF//+lf23nvvrP1u3LiRE088kZdffrnNa1tuuSXHHHMMe+yxBwMHDmTFihXMmzePhx9+eFNN89de\n", + "e40zzzwzr5n2UR577DF++ctfbnreo0cPDjzwQMaMGcMWW2yx6fw/++yzkTO+y3UeIVzMOPHEE9tc\n", + "MKiuruaAAw5gv/32Y8iQIfTr149169axePFinnrqKR5//PFN4wjg9ddf56STTmLq1Kn06dMnp77L\n", + "Kao80vDh8WcZSHFt2LCBq6++GoBvfetbdOvWrcwRScXnOFclcJyrEjjOVQnae5xXVVXxn//5nxx3\n", + "3HHcd999XHnllZx11lkd4k7wwYeNYsStVzJn0qU0rGqbu2iperNeDJt8OYMPG9VO0RVHcbJAytmU\n", + "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\n", + "btyYd3vlrMtezvM4cODAVs+TyWSHWWC2EPX19UycOJEpU1r/qunWrRt1dXUcfvjhZYpMkiRJkiSV\n", + "W2dL3p8ItJz6+R7wlyzH/Aet7zBYACyJ0edTKc+HxThWEtFJ33nz5uXdXtxjoxaIXbRoUd79x7Ht\n", + "ttu2et7Y2Mjcufms0x3qvr/7bqalOkqrnOdxiy22KFvfpVJfX8/pp5/OI4880mp7t27duPnmmzny\n", + "yCPLFJkkSZIkSeVRVVtDoro69nGJ6mqqajtjkZnMOlvyfmLK8zuBbKsX7JHy/OWYfaZm2VLbk5RF\n", + "r1692HXXXVttmzNnTt7txT12+PDhVFW1/rqbMWNG3v3HMWLEiDbbnn322bzayve4YinnefzUpz7V\n", + "ZtvTTz/dLn2XwsaNG/nKV77CX/7S+vpzbW0tN910E0cffXSZIpMkSZIkqXyqutUycPTw2McNHDOi\n", + "y5XMgc6VvN8ZaLliXxK4JYfjdkt5HneqZur+Q4DirBgpVZB999231fN58+blNfv+gw8+4KmnUm+I\n", + "yax///7ss88+bfp/9dVXY/cf17777ttmYdX77rsvr7Z+//vfFyOkvJXzPB544IFtFtl95JFHCipB\n", + "VC4NDQ187Wtf46GHHmq1vaamhhtvvJFjjjmmTJFJkiRJklR+Q888hUR17mnrRHUVQyd9qYQRlU9n\n", + "St6nLlQ7G3gph+NS6zy8FbPf94CWqyRUAW1rgEjKaOzYsW223XbbbbHbufvuu6mvr4993Gc/+9k2\n", + "26655prY7cTVr18/Dj300FbbZs6cyTPPPBOrnQULFvDggw8WM7S8lOs89unThzFjxrTa9vbbb3PP\n", + "PfeUvO9iamxsZNKkSfz5z39utb2mpobJkyczbty4MkUmSZIkSVLHMPiwUYy49UqqN+uVdd/qzXox\n", + "4tYrGXzYqHaIrP11luR9ApiQsq0ux2M3S3m+OmbfSWBtljYlZXHMMce0qZl+00038frrr+fcxvvv\n", + "v8/Pf/7zvPo/44wz2iyce++997aZ/VwKp59+epttF1xwAWvXpn61RNu4cSPf+ta32LBhQ7FDi62c\n", + "5/HCCy9ss+3SSy/lzTffLHnfxdDY2MjZZ5/NH//4x1bbq6uruf766zn++NT12KWOYc2aNRxwwAEc\n", + "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\n", + "sf2AAPdrtm7dumGxxN6BCyL1DR48mMGDB0d1DPHx8Vx44YVRHUNjvHPLA2RmZkZhJI2L5nPs0qUL\n", + "F198cVT6jjXNSVdUIzk51Ex2nuLi4hpN4xIMzaOO5uGmedTRPOpoHm6aRx3No47m4aZ51NE86mge\n", + "bppHnZacx4oVKwIG7gEeffTRkDe4NXUeTpudsuKN7nsYwb84KVtTitNm9ziwNtTvh7/nFsyztNvt\n", + "QfcRCa055/1IIL3e9QlgSRPusxWo/5R7A6eG0D7H63pTE8YgItIsNpvN57Dak046ibPPPjtKIxIR\n", + "ERERERGR1qi6uppHHnkkYL3f/va3LbqR0mmvxtVIqtuGuBwOnPboHhwbLa05eJ/vdf0OcMRfxQB+\n", + "Aj6pd20AwZ5MaAB5fsYhItKi7r//fnbv3u1RdsMNN0RpNCIiIiIiIiLSWi1ZsiTgQbYWi4UHHnig\n", + "hUYkTdVag/fJwH95lb3YjPst87r+Q5DtLsFz9/8+4NNmjENEYtj777/P8uXLcTqdgSv/zGazMXHi\n", + "RBYtWuRRbrFY+J//+Z9wD1FERERERERE2rCKigpmzJgRsN4f/vAHevfu3QIjqmOyxGE04VxOw2zG\n", + "ZGnN2d8jp7UG73+LO4Bf40fg/Wbc7zWg/qkEI3AH5htjAA95lTUl576ICABfffUV+fn5DBo0iHvu\n", + "uYeVK1ditfqeb+J0OtmyZQtz5swhMzOTF1980afO3Xffzemnn94CoxYRERERERGRtmL+/Pns27ev\n", + "0TqdO3dm0qRJLTSiOqZ4C6nZoafpSc3J9Mh3H0ta6yuLcV7XrwLBb1X1ZQWeAe6uV7YQGI77xYA/\n", + "9wIX1bs+AsxqxhhERADYu3cvzz//PM8//zzg/qHZtWtXEhIS+OmnnygrK6OqqqrB9pdccgl33nln\n", + "Sw1XRERERERERNoAq9XK3LlzA9a78847SU1NbYER+UofP5ay4lJcjuBCvYbZRHrB9REeVevVGnfe\n", + "9wYurnftonkpc2rMxJ32pkYfoBj4jVe904EFwGNe5Y/TtJz7IiKNOnr0KN999x3btm1j7969DQbu\n", + "DcPghhtu4LXXXmvhEYqIiIiIiIhIazdr1iyOHTvWaJ3TTjuNP/3pTy00Il9puVlkLp6JuWNSwLrm\n", + "jklkLp5JWm5WC4ysdWqNwfubvK43AFvDcN/DwO+A+lGx3sDbQBlQCuwAdgHeK/gt4G9hGIOIxLDz\n", + "zjuP/v37h9zOMAzOP/98Xn31VebMmUNcXGv90JSIiIiIiIiIRMP27dv9pt31dv/995OYmBj5ATUi\n", + "LS+bjAXTMMwNh6YNs4mMBdNIy8tuwZG1Pq0xApTvdf1iGO+9CrgCeBOo/9mQFCCjgTavAjeHcQwi\n", + "EqNyc3MpLi5mx44dFBcXs379enbu3Mnu3bs5cuQIlZWVGIZBSkoKKSkp9OnTh6ysLC666CIyMhr6\n", + "K0pEJLKcTifbtm0DoH///phMrXHvh0jzaJ1LLNA6l1igdS6xoKF1/uijj1JdXd1o21/84hdcd911\n", + "ER9jMNLyssl8+Ul2LVhK2ZpSXA4H4D6cNjUnk/SC62N6x32N1ha8Hw70xZ0qB8AGLAlzHx8B5+A+\n", + "jDYf8PcZDRewEXfqnLfC3L+IxLi+ffvSt29fbrjhhmgPRUQkoMrKSnJycgDYvXs3ycnJUR6RSPhp\n", + "nUss0DqXWKB1LrHA3zpft24dy5YtC9j2oYcewmw2R3qIHpw2O067+6WCyRLncfBsWm4WablZjdaJ\n", + "da0teL+alknlcwC4DZgIZANn4959bwP2AJ/iTqEjIiIiIiIiIiIi0iq5XC4eeuihgPVGjhzJqFGj\n", + "WmBEbtaiEnbNX0JZ8UbPXfXZg0kfP9ZjV70p3qKAfQNaW/C+pVUBRT//EhEREREREREREWkz3n33\n", + "XUpKSgLWe/jhhzEMowVGBNbCYkrzp+ByOD3KXQ4Hh1atp6y41H0QbYznsw+Gkn+JiIiIiIiIiIiI\n", + "tDE2my2oXffXXnstgwYNaoERuQP3mwqm+gTu63M5nGwqmIq1sLhFxtSWxfrOexERERFpRHJyMmVl\n", + "ZdEehkhEaZ1LLNA6l1igdS6xoP46nz9/Pjt2NJ75Oz4+nvvvv78lhoa1qMTvjnt/HMeOU5o/hcyX\n", + "n9TBtI3QznsRERERERERERGRNuTw4cPMmjUrYL1bbrmFXr16tcCIYNf8JUEF7mu4HE52LVgawRG1\n", + "fQrei4iIiIiIiIiIiLQhM2fO5MiRI43WSUlJ4a677mqR8ThtdsqKN4bcrmxNKU6bPQIjah8UvBcR\n", + "ERERERERERFpQ7p160ZiYmKjdSZPnkzXrl1bZDxOezUuhyPkdi6HA6e9OgIjah8UvBcRERERERER\n", + "ERFpQyZNmsSnn37K7373O79f79u3L3/4wx9aeFQSbgrei4iIiIiIiIiIiLQxp59+OvPnz2flypUM\n", + "GzbM42uPPPII8fHxLTYWkyUOw2wOuZ1hNmOyxEVgRO2DgvciIiIiIiIiIiIibdTgwYNZvnw5ixcv\n", + "pk+fPgwfPpxf/epXLToGU7yF1OzBIbdLzcnEFG+JwIjaB73WEBEREREREREREWnDDMPgN7/5DZde\n", + "eillZWUYhtHiY0gfP5ay4lJcDmdQ9Q2zifSC6yM8qrZNO+9FRERERERERERE2oEOHTrQvXv3qPSd\n", + "lptF5uKZmDsmBaxr7phE5uKZpOVmtcDI2i4F70VERERERERERESk2dLysslYMA3D3HDY2TCbyFgw\n", + "jbS87BYcWduk4L2IiIiIiIiIiIiIBM1ps1NdUUl1RSVOm93ja2l52WS+/CTdRgzxOMTWMJvpNmII\n", + "mS8/qcB9kJTzXkREREREREREREQCshaVsGv+EsqKN+JyOAB3UD41ezDp48fWpsFJy80iLTcLp82O\n", + "014NgMkSp8NpQ6TgvYiIiIg0yGaz8dRTTwFw1113ER8fH+URiYSf1rnEAq1ziQVa5xILornOrYXF\n", + "lOZP8TmQ1uVwcGjVesqKS9157OvtqjfFWxSwb4aWP3Y4xhUWFqYBB+qXDRw4EIslvIvY4XCwefNm\n", + "AAYNGoS53kdUREREvOnnhjSkoqKCnj17ArB7926Sk5OjPCKR8NM6l1igdS6xQOtcYkG01rm1sJhN\n", + "BVNxHDveaD1zx6R2lc/ebrfzxRdfeBefnJeXZ22J/pXzXkRERERERERERET8shaVUJo/JWDgHsBx\n", + "7Dil+VOwFpW0wMjaPwXvRURERERERERERMSvXfOX+KTKaYzL4WTXgqURHFHsUM57EREREWmQ2Wxm\n", + "zJgxtb8XaY+0ziUWaJ1LLNA6l1jQ0uvcabNTVrwx5HZla0px2uzKd99MCt6LiIiISIMSEhJ48cUX\n", + "oz0MkYjSOpdYoHUusUDrXGJBS69zp70al8MRcjuXw4HTXq3gfTMpbY6IiIiIiIiIiIiISCuj4L2I\n", + "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\n", + "YS0spjR/is9p1S6Hg0Or1lNWXErm4pmk5WVHaYTRoecCn332md/Avclk4oILLmD06NH06NGDuLg4\n", + "9uzZQ1FREcXFxTh+ftExZcoUn8NaQnHgwAEuvfRSfvjhB49ywzAYMGAAOTk5nH322bU7sq1WK+vW\n", + "rePDDz/k2LFjtfWPHTvGuHHjeP/99xk4cGDAfqurq7nuuuv8Bu5PPfVUrrjiCgYMGEBqaiqHDx/m\n", + "m2++4b333uO7774D4Ouvv2b8+PFN2mnvz0cffcTTTz9de52QkMDw4cPJycnhlFNOqX3+69ev93t6\n", + "fbSeI7hfZlx33XU+O/3NZjPDhg1j6NCh9OrViy5dulBVVcWePXtYs2YNn3zySe06Avj222/53e9+\n", + "x8qVK+nUqVNQfYeTy+Vi/vz5rF27li+//JKDBw9y/PhxUlJSSElJIT09nWHDhpGTk8OQIUNafHwi\n", + "IiIiIiISXtOnT+fQoUON1rFYLEyfPj1s//4PJH38WMqKS31iVQ0xzCbSC66P8KikRsusAqlVWFiY\n", + "BhyoXzZw4EAslvC+rXI4HGzevBmAQYMGteghjdbCYjYVTMVxzDfgV5+5YxIZC6a160B1fXouUFVV\n", + "xciRI31yovfr149nnnmmwQDl1q1buf3229m0aRMAiYmJPmle3nnnHbKzG39mTqeTa665hlWrVnmU\n", + "X3jhhTz22GON5kE/evQos2bNYv78+R556Xr37s0nn3xCx44dG+175syZPPHEEx5l8fHx3HPPPfzl\n", + "L39p8M/oiy++yNSpU6moqAB85z58+HDefvvtRvv2l/PebDbXBrLHjBnD448/zmmnnea3/YkTJzw+\n", + "ihfN57h//35GjhzpkdveMAzGjh3L3XffTY8ePRpsu2vXLiZPnkxRUZFH+ZgxY3jhhRca7TccZsyY\n", + "waxZs5rU9pxzzuEvf/kL1157LSaTKcwjc4vmzw0REREREZH27vPPPyc3Nxens/Eg+R133MHDDz/c\n", + "MoP6mWJWDbPb7XzxxRfexSfn5eU1fOheGEUmAiAxy1pUQmn+lIB/2AEcx45Tmj8Fa1FJC4wsuvRc\n", + "3ObOnesTuO/fvz/vv/9+ozuLzznnHN55553aOo3lZ2/MM8884xNwvuWWW3j33XcDHmDauXNnHn30\n", + "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\n", + "zsUKtM7FCrTOxQq0zsUKtM7FCrTOrUWV95LVSktLefLJJ9myZQs1NTVs27aNkydPjuta2mcgsUzT\n", + "5Pjx4wMfi0xGWudiBVrnYgVa52IFWudiBVrnYgVa59ai8F4mBZfLxQMPPMD999/PwYMHqauro76+\n", + "nsOHD1NfX09XV9eQ84uLi1m2bJn2GRAREREREREREZGMpPBeJhXDMFi1ahWrVq0a8rhpmvh8PiDc\n", + "FkchvYiIiIiIiIiIiGQyhfdiCYZhkJubm+5hWEogEBj2Y5HJROtcrEDrXKxA61ysQOtcrEDrXKxA\n", + "69xatGGtiCSFw+EY9mORyUTrXKxA61ysQOtcrEDrXKxA61ysQOvcWhTei4iIiIiIiIiIiIhkGIX3\n", + "IiIiIiIiIiIiIiIZRuG9iIiIiIiIiIiIiEiGUXgvIiIiIiIiIiIiIpJhFN6LiIiIiIiIiIiIiGQY\n", + "hfciIiIiIiIiIiIiIhlG4b2IiIiIiIiIiIiISIZReC8iIiIiIiIiIiIikmEU3ouIiIiIiIiIiIiI\n", + "ZBiF9yIiIiIiIiIiIiIiGUbhvYgkRSgUGvZjkclE61ysQOtcrEDrXKxA61ysQOtcrEDr3FoU3otI\n", + "Ung8nmE/FplMtM7FCrTOxQq0zsUKtM7FCrTOxQq0zq3Fke4BCAQCgXQPQSThgsEgU6dOHfjY7/en\n", + "eUQiiad1LlagdS5WoHUuVqB1LlagdS5WoHWeWunObY203t2Cdu/eXQpcTvc4RERERERERERERCRu\n", + "M9euXduSihupbY6IiIiIiIiIiIiISIZR5X0a7d6920z3GERERERERERERERkdGvXrk15lq7KexER\n", + "ERERERERERGRDKMNa9NrZroHICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi\n", + "IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi\n", + "IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi/6e9e4+Wq6oPOP69gTwI74fRJBAk0vKqjwUY\n", + "BMRcH1BZpSBi+UOB2rVEba2PohRYQrlVFBQULMjSUqCo5WGrlJZiwSKF8o6hYkXkIcRAeAcCJIQA\n", + "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\n", + "/juZl1SUUo63I35fSPWknOevEPa6P5jGDy3cANwOHAIcTtgvXypKNc/vJHwV/jOErXIa9R0m7Mf/\n", + "RcIey/9ZMj71rsmOf1vNWWtQdVtquW4NqqqlluPtsAZNUL39lVTrTYQByDzCCrJVhP2nbiEUpd0y\n", + "AOxFKBheN3LsKUJBc1e3glLWUs11qSrmuPpBynk+j7CNyQJgFmGrk8cJsT3TxbiUn1TzfA5hknMu\n", + "sBVhvP488CRhC51HJ+4qZcEaVJIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\n", + "SZIkSZIkSZIkSZIkSZLUZf8PmQsBJpTu24QAAAAASUVORK5CYII=\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ridge = lm.RidgeCV()\n", + "plt.figure(figsize=(6,3));\n", + "plt.plot(x_tr, y_tr, '--k');\n", + "\n", + "for deg, s in zip([2, 5], ['-', '.']):\n", + " ridge.fit(np.vander(x, deg + 1), y);\n", + " y_ridge = ridge.predict(np.vander(x_tr, deg + 1))\n", + " plt.plot(x_tr, y_ridge, s, label='degree ' + str(deg));\n", + " plt.legend(loc=2);\n", + " plt.xlim(0, 1.5);\n", + " plt.ylim(-5, 80);\n", + " # Print the model's coefficients.\n", + " print(' '.join(['%.2f' % c for c in ridge.coef_]))\n", + "\n", + "plt.plot(x, y, 'ok', ms=10);\n", + "plt.title(\"Ridge regression\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This time, the degree 5 polynomial seems more precise than the simpler degree 2 polynomial (which now causes underfitting). Ridge regression reduces the overfitting issue here. Observe how the degree 5 polynomial's coefficients are much smaller than in the previous example." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How it works...\n", + "\n", + "In this section, we will explain all the aspects covered in the example above." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### scikit-learn API\n", + "\n", + "scikit-learn implements a clean and coherent API for supervised and unsupervised learning. Our data points should be in a $N \\times D$ matrix $\\mathbf{X}$, where $N$ is the number of observations, and $D$ is the number of features. In other words, each row is an observation. The first step in a machine learning task is to define what our matrix $\\mathbf{X}$ is exactly." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In a supervised learning setup, we also have a *target*, a $N$-long vector $\\mathbf{y}$ with a scalar value for each observations. This value is continuous or discrete, depending on whether we have a regression or classification problem, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In scikit-learn, models are implemented in classes that have `fit` and `predict` methods. The `fit` method accepts the data matrix `X` as input, and `y` as well for supervised learning models. This method *trains* the model on the given data.\n", + "\n", + "The `predict` method also takes data points as input (as a matrix $M \\times D$). It returns the labels or transformed points, according to the trained model." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Ordinary Least Squares regression\n", + "\n", + "[Ordinary least squares regression](http://en.wikipedia.org/wiki/Ordinary_least_squares) is one of the simplest regression methods. It consists of modeling the output values $\\hat{y}_i$ as a linear combination of $X_{ij}$:\n", + "\n", + "$$\\forall i \\in \\{1, \\ldots, N\\}, \\quad \\hat{y}_i = \\sum_{j=1}^D w_j X_{ij}, \\quad \\textrm{or, in matrix form:} \\quad \\mathbf{\\hat{y}} = \\mathbf{X} \\mathbf{w}.$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, $\\mathbf{w} = (w_1, \\ldots, w_D)$ is the (unknown) *parameter vector*. Also, $\\mathbf{\\hat{y}}$ represents the model's output. We want this vector to match the data points $\\mathbf{y}$ as closely as possible. Of course, the exact equality $\\mathbf{\\hat{y}} = \\mathbf{y}$ cannot hold in general (there is always some amount of noise in real-world data). Therefore, we want to *minimize* the difference between those two vectors. The ordinary least squares regression method consists of minimizing the following [**loss function**](http://en.wikipedia.org/wiki/Loss_function):\n", + "\n", + "$$\\min_{\\mathbf{w}} || \\mathbf{y} - \\mathbf{X} \\mathbf{w} ||_2^2 = \\min_{\\mathbf{w}} \\left( \\sum_{i=1}^N \\left(y_i - \\hat{y}_i\\right)^2 \\right)$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This sum of the components squared is called the [**$l_2$ norm**](http://en.wikipedia.org/wiki/Lp_space) (or [**Euclidean norm**](http://en.wikipedia.org/wiki/Euclidean_distance)). It is convenient because it leads to *differentiable* loss functions, so that gradients can be computed and common optimization procedures can be performed." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Polynomial interpolation with linear regression\n", + "\n", + "Ordinary Least Squares regression fits a linear model to the data. The model is linear both in the data points $X_i$ and in the parameters $w_j$. In our example, we obtained a poor fit because the data points were generated according to a nonlinear generative model (an exponential function)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, we can still use the linear regression method with a model that is linear in $w_j$, but nonlinear in $\\mathbf{x}_i$. To do this, we need to increase the number of dimensions in our dataset by using a basis of polynomial functions. In other words, we consider the following observations:\n", + "\n", + "$$\\mathbf{x}_i, \\mathbf{x}_i^2, \\ldots, \\mathbf{x}_i^D$$\n", + "\n", + "where $D$ is the maximum degree. The input matrix $\\mathbf{X}$ is therefore the [**Vandermonde matrix**](http://en.wikipedia.org/wiki/Vandermonde_matrix) associated to the original data points $\\mathbf{x}_i$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Ridge regression\n", + "\n", + "Polynomial interpolation with linear regression can lead to overfitting issues if the degree of the polynomials is too large. By capturing the random fluctuations (noise) instead of the general trend of the data, the model's predictive power decreases. This corresponds to an explosion of the polynomial's coefficients $w_j$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A solution to this problem is to prevent these coefficients from growing unboundedly. With [**ridge regression**](http://en.wikipedia.org/wiki/Tikhonov_regularization), this is done by adding a *regularization* term to the loss function:\n", + "\n", + "$$\\min_{\\mathbf{w}} || \\mathbf{y} - \\mathbf{X} \\mathbf{w} ||_2^2 + \\alpha ||\\mathbf{w}||_2^2$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By minimizing this loss function, we not only minimize the error between the model and the data (first term, related to the bias), but also the size of the model's coefficients (second term, related to the variance). The bias-variance trade-off is quantified by the hyperparameter $\\alpha$, which precises the relative weight between the two terms in the loss function.\n", + "\n", + "Here, ridge regression led to a polynomial with smaller coefficients, and thus a better fit." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cross-validation and grid search\n", + "\n", + "A drawback of the ridge regression model compared to the ordinary least squares model is the presence of an extra hyperparameter $\\alpha$. The quality of the prediction depends on the choice of this parameter. One possibility would be to fine-tune this parameter manually, but this procedure can be tedious and can also lead to overfitting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use a [**grid search**](http://en.wikipedia.org/wiki/Hyperparameter_optimization) for this: we loop over many possible values for $\\alpha$, and we evaluate the performance of the model for each possible value. Then, we choose the parameter that yields the best performance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How to assess the performance of a model with a given $\\alpha$ value? A common solution is to use [**cross-validation**](http://en.wikipedia.org/wiki/Cross-validation_%28statistics%29). This procedure consists of splitting the dataset into a *train set* and a *test set*. We fit the model on the train set, and test its predictive performance on the *test set*. By testing the model on a different dataset than the one used for training, we avoid overfitting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are many ways to split the initial dataset into two parts like this. One possibility is to remove *one* sample to form the train set, and to put this one sample into the test set. This is called **Leave-One-Out** cross-validation. With $N$ samples, we obtain $N$ sets of train and test sets. The cross-validated performance is the average performance on all these set decompositions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we will see in *Chapter 8*, scikit-learn implements several easy-to-use functions to do cross-validation and grid search. Here, we used a special estimator called `RidgeCV` that implements a cross-validation and grid search procedure that is specific to the ridge regression model. Using this model ensures that the best hyperparameter $\\alpha$ is found automatically for us." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> In the book, the [rest of the chapter](https://github.com/ipython-books/cookbook-code/blob/master/toc.md#chapter-8-machine-learning) introduces many standard algorithms in machine learning." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## There's more…" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are a few references about cross-validation and grid search:\n", + "\n", + "* [Cross validation in scikit-learn](http://scikit-learn.org/stable/modules/cross_validation.html).\n", + "* [Grid search in sciki-learn](http://scikit-learn.org/stable/modules/grid_search.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are a few references about scikit-learn:\n", + "\n", + "* [scikit-learn basic tutorial](http://scikit-learn.org/stable/tutorial/basic/tutorial.html).\n", + "* [scikit-learn tutorial given at the SciPy 2013 conference](http://github.com/jakevdp/sklearn_scipy2013)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Books\n", + "\n", + "Here are a few excellent, math-heavy textbooks on machine learning:\n", + "\n", + "* Bishop, C. M. (2006). [*Pattern recognition and machine learning*](http://research.microsoft.com/en-us/um/people/cmbishop/prml/). Springer.\n", + "* Murphy, K. P. (2012). [*Machine learning: a probabilistic perspective*](http://www.cs.ubc.ca/~murphyk/MLbook/). MIT Press.\n", + "* Hastie, T., Tibshirani, R., Friedman, J., Hastie, T., Friedman, J., & Tibshirani, R. (2009). [*The Elements of Statistical Learning*](http://statweb.stanford.edu/~tibs/ElemStatLearn/). Springer.\n", + "\n", + "Here are a few books targetting programmers without necessarily a strong mathematical background:\n", + "\n", + "* Conway, D., & White, J. (2012). [*Machine Learning for Hackers*](http://shop.oreilly.com/product/0636920018483.do). O'Reilly Media, Inc.\n", + "* Harrington, P. (2012). [*Machine Learning in Action*](http://www.manning.com/pharrington/). Manning Publications Co.\n", + "\n", + "You will find many other references online." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/featured/05_turing.ipynb b/featured/05_turing.ipynb index 83f6c94..bb894cb 100644 --- a/featured/05_turing.ipynb +++ b/featured/05_turing.ipynb @@ -1,405 +1,415 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:72fd3024fb1fdbced56d8d02e1572f31cb7d3dc8c980ed59c35f68d62a3b3d71" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Featured Recipe #5: Simulating a Partial Differential Equation: reaction-diffusion systems and Turing patterns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Partial Differential Equations** (PDEs) describe the evolution of dynamical systems involving both time and space. Examples in physics include sound, heat, electromagnetism, fluid flow, elasticity, among others. Examples in biology include tumor growth, population dynamics, and epidemic propagations.\n", - "\n", - "PDEs are hard to solve analytically. Therefore, PDEs are often studied via numerical simulations.\n", - "\n", - "In this featured recipe, we will illustrate how to simulate a reaction-diffusion system described by a PDE called the **Fitzhugh\u2013Nagumo equation**. A reaction-diffusion system models the evolution of one or several variables subject to two processes: reaction (transformation of the variables into each other) and diffusion (spreading across a spatial region). Some chemical reactions may be described by this type of model, but there are other applications in physics, biology, ecology, and other disciplines.\n", - "\n", - "Here, we simulate a system that has been proposed by Alan Turing as a model of animal coat pattern formation. Two chemical substances influencing skin pigmentation interact according to a reaction-diffusion model. This system is responsible for the formation of patterns that are reminiscent of the pelage of zebras, jaguars, and giraffes.\n", - "\n", - "We will simulate this system with the finite difference method. This method consists of discretizing time and space, and replacing the derivatives by their discrete equivalents." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How to do it..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Let's import the packages." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. We will simulate the following system of partial differential equations on the domain $E=[-1,1]^2$:" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "style": "latex" - }, - "source": [ - "\\begin{align*}\n", - "\\frac{\\partial u}{\\partial t} &= a \\Delta u + u - u^3 - v + k\\\\\n", - "\\tau\\frac{\\partial v}{\\partial t} &= b \\Delta v + u - v\\\\\n", - "\\end{align*}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The variable $u$ represents the concentration of a substance favoring skin pigmentation, whereas $v$ represents another substance that reacts with the first and impedes pigmentation.\n", - "\n", - "At initialization time, we assume that $u$ and $v$ contain independent random numbers on every grid point. Besides, we take **Neumann boundary conditions**: we require the spatial derivatives of the variables with respect to the normal vectors to be null on the boundaries of the domain $E$.\n", - "\n", - "Let's define the four parameters of the model." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a = 2.8e-4\n", - "b = 5e-3\n", - "tau = .1\n", - "k = -.005" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. We discretize time and space. The following condition ensures that the discretization scheme we use here is stable:\n", - "\n", - "$$dt \\leq \\frac{dx^2}{2}$$" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "size = 100 # size of the 2D grid\n", - "dx = 2./size # space step" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "T = 10.0 # total time\n", - "dt = .9 * dx**2/2 # time step\n", - "n = int(T/dt)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. We initialize the variables $u$ and $v$. The matrices $U$ and $V$ contain the values of these variables on the vertices of the 2D grid. These variables are initialized with a uniform noise between $0$ and $1$." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "U = np.random.rand(size, size)\n", - "V = np.random.rand(size, size)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Now, we define a function that computes the discrete Laplace operator of a 2D variable on the grid, using a five-point stencil finite difference method. This operator is defined by:\n", - "\n", - "$$\\Delta u(x,y) \\simeq \\frac{u(x+h,y)+u(x-h,y)+u(x,y+h)+u(x,y-h)-4u(x,y)}{dx^2}$$\n", - "\n", - "We can compute the values of this operator on the grid using vectorized matrix operations. Because of side effects on the edges of the matrix, we need to remove the borders of the grid in the computation." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def laplacian(Z):\n", - " Ztop = Z[0:-2,1:-1]\n", - " Zleft = Z[1:-1,0:-2]\n", - " Zbottom = Z[2:,1:-1]\n", - " Zright = Z[1:-1,2:]\n", - " Zcenter = Z[1:-1,1:-1]\n", - " return (Ztop + Zleft + Zbottom + Zright - 4 * Zcenter) / dx**2" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. Now, we simulate the system of equations using the finite difference method. At each time step, we compute the right-hand sides of the two equations on the grid using discrete spatial derivatives (Laplacians). Then, we update the variables using a discrete time derivative." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# We simulate the PDE with the finite difference method.\n", - "for i in range(n):\n", - " # We compute the Laplacian of u and v.\n", - " deltaU = laplacian(U)\n", - " deltaV = laplacian(V)\n", - " # We take the values of u and v inside the grid.\n", - " Uc = U[1:-1,1:-1]\n", - " Vc = V[1:-1,1:-1]\n", - " # We update the variables.\n", - " U[1:-1,1:-1], V[1:-1,1:-1] = \\\n", - " Uc + dt * (a * deltaU + Uc - Uc**3 - Vc + k), \\\n", - " Vc + dt * (b * deltaV + Uc - Vc) / tau\n", - " # Neumann conditions: derivatives at the edges\n", - " # are null.\n", - " for Z in (U, V):\n", - " Z[0,:] = Z[1,:]\n", - " Z[-1,:] = Z[-2,:]\n", - " Z[:,0] = Z[:,1]\n", - " Z[:,-1] = Z[:,-2]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. Finally, we display the variable $u$ after a time $T$ of simulation." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "plt.imshow(U, cmap=plt.cm.copper, extent=[-1,1,-1,1]);\n", - "plt.xticks([]); plt.yticks([]);" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![Turing patterns](images/turing.jpg)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Whereas the variables when completely random at initialization time, we observe the formation of patterns after a sufficiently long simulation time." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How it works..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's explain how the finite difference method allowed us to implement the update step. We start from the following system of equations:" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "style": "latex" - }, - "source": [ - "\\begin{align*}\n", - "\\frac{\\partial u}{\\partial t}(t;x,y) &= a \\Delta u(t;x,y) + u(t;x,y) - u(t;x,y)^3 - v(t;x,y) + k\\\\\n", - "\\tau\\frac{\\partial v}{\\partial t}(t;x,y) &= b \\Delta v(t;x,y) + u(t;x,y) - v(t;x,y)\\\\\n", - "\\end{align*}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We first use the following scheme for the discrete Laplace operator:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\\Delta u(x,y) \\simeq \\frac{u(x+h,y)+u(x-h,y)+u(x,y+h)+u(x,y-h)-4u(x,y)}{dx^2}$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We also use this scheme for the time derivative of $u$ and $v$:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\\frac{\\partial u}{\\partial t}(t;x,y) \\simeq \\frac{u(t+dt;x,y)-u(t;x,y)}{dt}$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We end up with the following iterative update step:" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "style": "latex" - }, - "source": [ - "\\begin{align*}\n", - "u(t+dt;x,y) &= u(t;x,y) + dt \\left( a \\Delta u(t;x,y) + u(t;x,y) - u(t;x,y)^3 - v(t;x,y) + k \\right)\\\\\n", - "v(t+dt;x,y) &= v(t;x,y) + \\frac{dt}{\\tau} \\left( b \\Delta v(t;x,y) + u(t;x,y) - v(t;x,y) \\right)\\\\\n", - "\\end{align*}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here, our Neumann boundary conditions state that the spatial derivatives with respect to the normal vectors are null on the boundaries of the domain E:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\\forall w \\in \\{u, v\\}, \\, \\forall t \\geq 0, \\, \\forall x, y \\in \\partial E, \\quad \\frac{\\partial w}{\\partial x}(t; -1, y) = \\frac{\\partial w}{\\partial x}(t; 1, y) = \\frac{\\partial w}{\\partial y}(t; x, -1) = \\frac{\\partial w}{\\partial y}(t; x, 1) = 0$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We implement these boundary conditions by duplicating values in matrices $U$ and $V$ on the edges (see code)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In order to ensure that our numerical scheme converges to a numerical solution that is close to the actual (unknown) mathematical solution, the stability of the scheme needs to be ascertained. One can show that, here, a sufficient condition for the stability is:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$dt \\leq \\frac{dx^2}{2}$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## There's more..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are further references on partial differential equations, reaction-diffusion systems, and numerical simulations of those systems." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* [Partial Differential Equations](http://en.wikipedia.org/wiki/Partial_differential_equation),\n", - "* [Reaction-diffusion systems](http://en.wikipedia.org/wiki/Reaction%E2%80%93diffusion_system),\n", - "* [Fitzhugh-Nagumo system](http://en.wikipedia.org/wiki/FitzHugh%E2%80%93Nagumo_equation),\n", - "* [Neumann boundary conditions](http://en.wikipedia.org/wiki/Neumann_boundary_condition),\n", - "* [Von Neumann stability analysis](http://en.wikipedia.org/wiki/Von_Neumann_stability_analysis)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Featured Recipe #5: Simulating a Partial Differential Equation: reaction-diffusion systems and Turing patterns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Partial Differential Equations** (PDEs) describe the evolution of dynamical systems involving both time and space. Examples in physics include sound, heat, electromagnetism, fluid flow, elasticity, among others. Examples in biology include tumor growth, population dynamics, and epidemic propagations.\n", + "\n", + "PDEs are hard to solve analytically. Therefore, PDEs are often studied via numerical simulations.\n", + "\n", + "In this featured recipe, we will illustrate how to simulate a reaction-diffusion system described by a PDE called the **Fitzhugh–Nagumo equation**. A reaction-diffusion system models the evolution of one or several variables subject to two processes: reaction (transformation of the variables into each other) and diffusion (spreading across a spatial region). Some chemical reactions may be described by this type of model, but there are other applications in physics, biology, ecology, and other disciplines.\n", + "\n", + "Here, we simulate a system that has been proposed by Alan Turing as a model of animal coat pattern formation. Two chemical substances influencing skin pigmentation interact according to a reaction-diffusion model. This system is responsible for the formation of patterns that are reminiscent of the pelage of zebras, jaguars, and giraffes.\n", + "\n", + "We will simulate this system with the finite difference method. This method consists of discretizing time and space, and replacing the derivatives by their discrete equivalents." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How to do it..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Let's import the packages." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We will simulate the following system of partial differential equations on the domain $E=[-1,1]^2$:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "style": "latex" + }, + "source": [ + "\\begin{align*}\n", + "\\frac{\\partial u}{\\partial t} &= a \\Delta u + u - u^3 - v + k\\\\\n", + "\\tau\\frac{\\partial v}{\\partial t} &= b \\Delta v + u - v\\\\\n", + "\\end{align*}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The variable $u$ represents the concentration of a substance favoring skin pigmentation, whereas $v$ represents another substance that reacts with the first and impedes pigmentation.\n", + "\n", + "At initialization time, we assume that $u$ and $v$ contain independent random numbers on every grid point. Besides, we take **Neumann boundary conditions**: we require the spatial derivatives of the variables with respect to the normal vectors to be null on the boundaries of the domain $E$.\n", + "\n", + "Let's define the four parameters of the model." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "a = 2.8e-4\n", + "b = 5e-3\n", + "tau = .1\n", + "k = -.005" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. We discretize time and space. The following condition ensures that the discretization scheme we use here is stable:\n", + "\n", + "$$dt \\leq \\frac{dx^2}{2}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "size = 100 # size of the 2D grid\n", + "dx = 2./size # space step" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "T = 10.0 # total time\n", + "dt = .9 * dx**2/2 # time step\n", + "n = int(T/dt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. We initialize the variables $u$ and $v$. The matrices $U$ and $V$ contain the values of these variables on the vertices of the 2D grid. These variables are initialized with a uniform noise between $0$ and $1$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "U = np.random.rand(size, size)\n", + "V = np.random.rand(size, size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Now, we define a function that computes the discrete Laplace operator of a 2D variable on the grid, using a five-point stencil finite difference method. This operator is defined by:\n", + "\n", + "$$\\Delta u(x,y) \\simeq \\frac{u(x+h,y)+u(x-h,y)+u(x,y+h)+u(x,y-h)-4u(x,y)}{dx^2}$$\n", + "\n", + "We can compute the values of this operator on the grid using vectorized matrix operations. Because of side effects on the edges of the matrix, we need to remove the borders of the grid in the computation." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def laplacian(Z):\n", + " Ztop = Z[0:-2,1:-1]\n", + " Zleft = Z[1:-1,0:-2]\n", + " Zbottom = Z[2:,1:-1]\n", + " Zright = Z[1:-1,2:]\n", + " Zcenter = Z[1:-1,1:-1]\n", + " return (Ztop + Zleft + Zbottom + Zright - 4 * Zcenter) / dx**2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. Now, we simulate the system of equations using the finite difference method. At each time step, we compute the right-hand sides of the two equations on the grid using discrete spatial derivatives (Laplacians). Then, we update the variables using a discrete time derivative." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# We simulate the PDE with the finite difference method.\n", + "for i in range(n):\n", + " # We compute the Laplacian of u and v.\n", + " deltaU = laplacian(U)\n", + " deltaV = laplacian(V)\n", + " # We take the values of u and v inside the grid.\n", + " Uc = U[1:-1,1:-1]\n", + " Vc = V[1:-1,1:-1]\n", + " # We update the variables.\n", + " U[1:-1,1:-1], V[1:-1,1:-1] = \\\n", + " Uc + dt * (a * deltaU + Uc - Uc**3 - Vc + k), \\\n", + " Vc + dt * (b * deltaV + Uc - Vc) / tau\n", + " # Neumann conditions: derivatives at the edges\n", + " # are null.\n", + " for Z in (U, V):\n", + " Z[0,:] = Z[1,:]\n", + " Z[-1,:] = Z[-2,:]\n", + " Z[:,0] = Z[:,1]\n", + " Z[:,-1] = Z[:,-2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. Finally, we display the variable $u$ after a time $T$ of simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.imshow(U, cmap=plt.cm.copper, extent=[-1,1,-1,1]);\n", + "plt.xticks([]); plt.yticks([]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Turing patterns](images/turing.jpg)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Whereas the variables when completely random at initialization time, we observe the formation of patterns after a sufficiently long simulation time." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How it works..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's explain how the finite difference method allowed us to implement the update step. We start from the following system of equations:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "style": "latex" + }, + "source": [ + "\\begin{align*}\n", + "\\frac{\\partial u}{\\partial t}(t;x,y) &= a \\Delta u(t;x,y) + u(t;x,y) - u(t;x,y)^3 - v(t;x,y) + k\\\\\n", + "\\tau\\frac{\\partial v}{\\partial t}(t;x,y) &= b \\Delta v(t;x,y) + u(t;x,y) - v(t;x,y)\\\\\n", + "\\end{align*}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first use the following scheme for the discrete Laplace operator:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\\Delta u(x,y) \\simeq \\frac{u(x+h,y)+u(x-h,y)+u(x,y+h)+u(x,y-h)-4u(x,y)}{dx^2}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We also use this scheme for the time derivative of $u$ and $v$:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\\frac{\\partial u}{\\partial t}(t;x,y) \\simeq \\frac{u(t+dt;x,y)-u(t;x,y)}{dt}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We end up with the following iterative update step:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "style": "latex" + }, + "source": [ + "\\begin{align*}\n", + "u(t+dt;x,y) &= u(t;x,y) + dt \\left( a \\Delta u(t;x,y) + u(t;x,y) - u(t;x,y)^3 - v(t;x,y) + k \\right)\\\\\n", + "v(t+dt;x,y) &= v(t;x,y) + \\frac{dt}{\\tau} \\left( b \\Delta v(t;x,y) + u(t;x,y) - v(t;x,y) \\right)\\\\\n", + "\\end{align*}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, our Neumann boundary conditions state that the spatial derivatives with respect to the normal vectors are null on the boundaries of the domain E:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\\forall w \\in \\{u, v\\}, \\, \\forall t \\geq 0, \\, \\forall x, y \\in \\partial E, \\quad \\frac{\\partial w}{\\partial x}(t; -1, y) = \\frac{\\partial w}{\\partial x}(t; 1, y) = \\frac{\\partial w}{\\partial y}(t; x, -1) = \\frac{\\partial w}{\\partial y}(t; x, 1) = 0$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We implement these boundary conditions by duplicating values in matrices $U$ and $V$ on the edges (see code)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to ensure that our numerical scheme converges to a numerical solution that is close to the actual (unknown) mathematical solution, the stability of the scheme needs to be ascertained. One can show that, here, a sufficient condition for the stability is:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$dt \\leq \\frac{dx^2}{2}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## There's more..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are further references on partial differential equations, reaction-diffusion systems, and numerical simulations of those systems." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [Partial Differential Equations](http://en.wikipedia.org/wiki/Partial_differential_equation),\n", + "* [Reaction-diffusion systems](http://en.wikipedia.org/wiki/Reaction%E2%80%93diffusion_system),\n", + "* [Fitzhugh-Nagumo system](http://en.wikipedia.org/wiki/FitzHugh%E2%80%93Nagumo_equation),\n", + "* [Neumann boundary conditions](http://en.wikipedia.org/wiki/Neumann_boundary_condition),\n", + "* [Von Neumann stability analysis](http://en.wikipedia.org/wiki/Von_Neumann_stability_analysis)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/featured/06_vispy.ipynb b/featured/06_vispy.ipynb index 11d5945..7c6e520 100644 --- a/featured/06_vispy.ipynb +++ b/featured/06_vispy.ipynb @@ -1,560 +1,561 @@ -{ - "metadata": { - "kernelspec": { - "codemirror_mode": { - "name": "python", - "version": 3 - }, - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "name": "", - "signature": "sha256:9fc5d5b0fa50b94ec68e4f925f6bf21e8d222dea4797c0ea49929dee281f5579" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Featured Recipe #6: Getting started with Vispy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Most existing plotting or visualization libraries in Python can display small or medium datasets (containing no more than a few tens of thousands of points). In the *Big Data* era, it is sometimes necessary to display larger datasets." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[Vispy](http://vispy.org) is a young 2D/3D high-performance visualization library that can display very large datasets. Vispy leverages the computational power of modern Graphics Processing Units (GPUs) through the OpenGL library. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Vispy offers a Pythonic object-oriented interface to OpenGL, useful to those who know OpenGL or who are willing to learn it. Higher-level graphical interfaces are also being developed at the time of this writing, and experimental versions are already available. These interfaces do not require any knowledge of OpenGL." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this recipe, we give a brief introduction to the fundamental concepts of OpenGL. There are two situations where you would need to know these concepts:\n", - "\n", - "* If you want to use Vispy today, before the availability of stable high-level plotting interfaces.\n", - "* If you want to create custom, sophisticated, high-performance visualizations that are not yet implemented in Vispy." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here, we display a digital signal using Vispy's object-oriented interface to OpenGL." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Getting ready" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Vispy depends on NumPy. A backend library is necessary (PyQt4/PySide, wxPython, glfw, or other)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This recipe has been tested with the [development version of Vispy](https://github.com/vispy/vispy). You should clone the GitHub repository and install Vispy with `python setup.py install`." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The API used in this recipe might change in future versions." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How to do it..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Let's import NumPy, **vispy.app** (to display a canvas) and **vispy.gloo** (object-oriented interface to OpenGL)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy as np\n", - "from vispy import app\n", - "from vispy import gloo" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. In order to display a window, we need to create a **Canvas**." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "c = app.Canvas(keys='interactive')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. When using `vispy.gloo`, we need to write **shaders**. These programs, written in a C-like language called GLSL, run on the GPU and give us full flexibility for our visualizations. Here, we create a trivial **vertex shader** that directly displays 2D data points (stored in the `a_position` variable) in the canvas. The function `main()` executes once per data point (also called **vertex**). The variable `a_position` contains the `(x, y)` coordinates of the current vertex. All this function does is to pass these coordinates to the next stage of processing in the rendering pipeline. We give more details in the *How it works* section below." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "vertex = \"\"\"\n", - "attribute vec2 a_position;\n", - "void main (void)\n", - "{\n", - " gl_Position = vec4(a_position, 0.0, 1.0);\n", - "}\n", - "\"\"\"" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. The other shader we need to create is the **fragment shader**. It lets us control the pixels' color. Here, we display all data points in black. This function runs once per generated pixel." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fragment = \"\"\"\n", - "void main()\n", - "{\n", - " gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n", - "}\n", - "\"\"\"" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Next, we create an **OpenGL Program**. This object contains the shaders and allows us to link the shader variables to Python/NumPy data." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "program = gloo.Program(vertex, fragment)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. We link the variable `a_position` to a `(1000, 2)` NumPy array containing the coordinates of 1000 data points. In the default coordinate system, the coordinates of the four canvas corners are `(+/-1, +/-1)`. Here, we generate a random time-dependent signal in $[-1,1]$." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "program['a_position'] = np.c_[\n", - " np.linspace(-1.0, +1.0, 1000),\n", - " np.random.uniform(-0.5, +0.5, 1000)]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. We create a callback function called when the window is being resized. Updating the **OpenGL viewport** lets us ensure that Vispy uses the entire canvas." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "@c.connect\n", - "def on_resize(event):\n", - " gloo.set_viewport(0, 0, *event.size)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. We create a callback function called when the canvas needs to be refreshed. This `on_draw` function renders the entire scene. First, we clear the window in white (it is necessary to do that at every frame). Then, we draw a succession of line segments using our OpenGL program. The vertices used for this visual are those returned by the vertex shader." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "@c.connect\n", - "def on_draw(event):\n", - " gloo.clear((1,1,1,1))\n", - " program.draw('line_strip')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "9. Finally, we show the canvas and we run the application." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "c.show()\n", - "app.run();" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The following figure shows a screenshot:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![Basic visualization example with Vispy](images/vispy.PNG)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## How it works..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "OpenGL is an open standard for hardware-accelerated interactive visualization. It is widely used in video games, industry software (Computer-Aided Design, or CAD, virtual reality) and scientific applications (medical imaging, computer graphics, and so on)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "OpenGL is a mature technology created in the early 1990s. In the early 2000s, OpenGL 2.0 brought a major new feature: the possibility to customize fundamental steps of the **rendering pipeline**. This pipeline defines the way data is processed on the GPU for real-time rendering. Many OpenGL courses and tutorials cover the old, fixed pipeline. Vispy supports exclusively the modern, programmable pipeline." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here, we introduce the fundamental concepts of the programmable pipeline used in this recipe. OpenGL is considerably more complex than what we will cover here. However, Vispy provides a vastly simplified API for the most common features of OpenGL." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "style": "tip" - }, - "source": [ - "Vispy is based on OpenGL ES 2.0, a flavor of OpenGL that is supported on desktop computers, mobile devices, and modern Web browsers (through **WebGL**). Modern graphics cards may support additional features. Those features will be available in future versions of Vispy." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are four major elements in the rendering pipeline of a given OpenGL program:\n", - "\n", - "1. **Data buffers** store numerical data on the GPU. The main types of buffers are **vertex buffers**, **index buffers** and **textures**.\n", - "2. **Variables** are available in the shaders. There are four major types of variables: **attributes**, **uniforms**, **varyings** and **texture samplers**.\n", - "3. **Shaders** are GPU programs written in a C-like language called **OpenGL Shading Language** (GLSL). The two main types of shaders are **vertex shaders** and **fragment shaders**.\n", - "4. The **primitive type** defines the way data points are rendered. The main types are points, lines and triangles." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here is how the rendering pipeline works:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Data is sent on the GPU and stored in buffers.\n", - "2. The vertex shader processes the data in parallel and generates a number of 4D points in a normalized coordinate system `(+/-1, +/-1)`. The fourth dimension is a homogeneous coordinate (generally 1).\n", - "3. Graphics primitives are generated from the data points returned by the vertex shader (**primitive assembly** and **rasterization**).\n", - "4. The fragment shader processes all primitive pixels in parallel and returns each pixel's color as RGBA components." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this recipe's example, there is only one GPU variable: the attribute `a_position`. An attribute is a variable that takes one value per data point. Uniforms are global variables (shared by all data points), whereas varyings are used to pass values from the vertex shader to the fragment shader (with automatic linear interpolation for a pixel between 2 or 3 vertices)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In `vispy.gloo`, a Program is created with the vertex and fragment shaders. Then, the variables declared in the shaders can be set with the syntax `program['varname'] = value`. When `varname` is an attribute variable, the value can just be a NumPy 2D array. In this array, every line contains the components of every data point." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Similarly, we could declare and set uniforms and textures in our program." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, `program.draw()` renders the data using the specified primitive type. Here, the `line_strip` primitive type tells the GPU to run through all vertices (as returned by the vertex buffer) and to draw a line segment from one point to the next. If there are *n* points, there will be *n-1* line segments." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Other primitive types include points and triangles, with several ways of generating lines or triangles from a list of vertices." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In addition, an index buffer may be provided. An index buffer contains indices pointing to the vertex buffers. Using an index buffer would allow us to reuse any vertex multiple times during the primitive assembly stage. For example, when rendering a cube with a `triangles` primitive type (one triangle is generated for every triplet of points), we could use a vertex buffer with 8 data points and an index buffer with 36 indices (3 points per triangle, 2 triangles per face, 6 faces)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## There's more..." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The example shown here is extremely simple. The approach provided by OpenGL and Vispy is nevertheless particularly powerful. It gives us full control on the rendering pipeline, and it allows us to leverage the computational power of the GPU in a nearly optimal way." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "High performance is achieved by minimizing the number of data transfers to the GPU. When displaying static data (for example, a scatter plot), it is possible to send the data to the GPU at initialization time only. Yet, rendering dynamic data is reasonably fast; the order of magnitude of data transfers is roughy 1 GB/s." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Besides, it is critical to use as few OpenGL draw calls as possible. Every draw incurs a significant overhead. High performance is achieved by rendering all similar primitive types at once (**batch rendering**). GPUs are particularly efficient with batch rendering, even when the properties of the points are different (for example, points with various sizes and colors)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, geometric or pixel transformations can be executed on the GPU with very high performance using the shaders. The massively parallel architecture of GPUs, consisting of hundreds or thousands of computing units, is fully leveraged when transformations are implemented in the shaders." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "General-purpose computations can be done in the shaders in a context of visualization. There is one major drawback compared to proper GPGPU frameworks like CUDA or OpenCL, though. In the vertex shader, a given thread has access to one data point only. Similarly, in the fragment shader, a thread has only access to one pixel. There are ways to mitigate this issue, but they lead to a drop of performance." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "However, it is possible to interoperate OpenGL with CUDA/OpenCL. Buffers can be shared between OpenGL and the GPGPU framework. Complex CUDA/OpenCL computations can be implemented on vertex buffers or textures in real-time, leading to highly efficient rendering of numerical simulations." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Vispy for scientific visualization" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As we have seen in this recipe, Vispy requires the user to know OpenGL and GLSL. However, higher-level graphical interfaces are currently being developed. Those interfaces will bring to scientists the power of GPUs for high-performance interactive visualization." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Visuals** will provide reusable, reactive graphical components like shapes, polygons, 3D meshes, surface plots, network graphs, and others. These visuals will be fully customizable and may be used without knowledge of OpenGL. A **shader composition system** will allow advanced users to reuse snippets of GLSL functionality in a modular way." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Visuals will be organized within a **scene graph** implementing GPU-based **transformations**." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Scientific plotting interfaces will be implemented. Vispy could also serve as a high-performance backend for existing plotting libraries such as matplotlib." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Vispy will also support full integration in the IPython notebook using WebGL." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Eventually, Vispy could implement many kinds of scientific visualizations:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* Scatter plots can be rendered efficiently with **point sprites**, using one vertex per data point. Panning and zooming can be implemented in the vertex shader, enabling fast interactive visualization of millions of points.\n", - "* Digital signals, static or dynamic (real-time) can be displayed with polylines. High-quality rendering of curves can be achieved using an OpenGL implementation of the **Anti-grain Geometry** (agg) library.\n", - "* Network graphs can be displayed by combining points and line segments.\n", - "* 3D meshes can be displayed with triangles and index buffers. Geometric transformations and realistic lighting can be implemented in the vertex and fragment shader.\n", - "* Real-time streams of images can be displayed efficiently with textures.\n", - "* Axes, grids, ticks, text, and labels can be rendered efficiently in the fragment shader." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Many examples can be found in Vispy's gallery." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### References" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are a few references:\n", - "\n", - "* [Vispy's gallery](http://vispy.org/gallery.html).\n", - "* [A modern OpenGL tutorial by Nicolas P. Rougier](http://www.loria.fr/~rougier/teaching/opengl/).\n", - "* [Hardware-accelerated interactive data visualization for neuroscience in Python](http://journal.frontiersin.org/Journal/10.3389/fninf.2013.00036/full).\n", - "* [Vispy users mailing list](https://groups.google.com/forum/#!forum/vispy).\n", - "* [Vispy-dev mailing list](https://groups.google.com/forum/#!forum/vispy-dev)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Featured Recipe #6: Getting started with Vispy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is a featured recipe from the [**IPython Cookbook**](http://ipython-books.github.io/), the definitive guide to **high-performance scientific computing** and **data science** in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Most existing plotting or visualization libraries in Python can display small or medium datasets (containing no more than a few tens of thousands of points). In the *Big Data* era, it is sometimes necessary to display larger datasets." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Vispy](http://vispy.org) is a young 2D/3D high-performance visualization library that can display very large datasets. Vispy leverages the computational power of modern Graphics Processing Units (GPUs) through the OpenGL library. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Vispy offers a Pythonic object-oriented interface to OpenGL, useful to those who know OpenGL or who are willing to learn it. Higher-level graphical interfaces are also being developed at the time of this writing, and experimental versions are already available. These interfaces do not require any knowledge of OpenGL." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this recipe, we give a brief introduction to the fundamental concepts of OpenGL. There are two situations where you would need to know these concepts:\n", + "\n", + "* If you want to use Vispy today, before the availability of stable high-level plotting interfaces.\n", + "* If you want to create custom, sophisticated, high-performance visualizations that are not yet implemented in Vispy." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, we display a digital signal using Vispy's object-oriented interface to OpenGL." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting ready" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Vispy depends on NumPy. A backend library is necessary (PyQt4/PySide, wxPython, glfw, or other)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This recipe has been tested with the [development version of Vispy](https://github.com/vispy/vispy). You should clone the GitHub repository and install Vispy with `python setup.py install`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The API used in this recipe might change in future versions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How to do it..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Let's import NumPy, **vispy.app** (to display a canvas) and **vispy.gloo** (object-oriented interface to OpenGL)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "from vispy import app\n", + "from vispy import gloo" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. In order to display a window, we need to create a **Canvas**." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "c = app.Canvas(keys='interactive')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. When using `vispy.gloo`, we need to write **shaders**. These programs, written in a C-like language called GLSL, run on the GPU and give us full flexibility for our visualizations. Here, we create a trivial **vertex shader** that directly displays 2D data points (stored in the `a_position` variable) in the canvas. The function `main()` executes once per data point (also called **vertex**). The variable `a_position` contains the `(x, y)` coordinates of the current vertex. All this function does is to pass these coordinates to the next stage of processing in the rendering pipeline. We give more details in the *How it works* section below." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "vertex = \"\"\"\n", + "attribute vec2 a_position;\n", + "void main (void)\n", + "{\n", + " gl_Position = vec4(a_position, 0.0, 1.0);\n", + "}\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. The other shader we need to create is the **fragment shader**. It lets us control the pixels' color. Here, we display all data points in black. This function runs once per generated pixel." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fragment = \"\"\"\n", + "void main()\n", + "{\n", + " gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n", + "}\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Next, we create an **OpenGL Program**. This object contains the shaders and allows us to link the shader variables to Python/NumPy data." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "program = gloo.Program(vertex, fragment)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. We link the variable `a_position` to a `(1000, 2)` NumPy array containing the coordinates of 1000 data points. In the default coordinate system, the coordinates of the four canvas corners are `(+/-1, +/-1)`. Here, we generate a random time-dependent signal in $[-1,1]$." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "program['a_position'] = np.c_[\n", + " np.linspace(-1.0, +1.0, 1000),\n", + " np.random.uniform(-0.5, +0.5, 1000)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. We create a callback function called when the window is being resized. Updating the **OpenGL viewport** lets us ensure that Vispy uses the entire canvas." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "@c.connect\n", + "def on_resize(event):\n", + " gloo.set_viewport(0, 0, *event.size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. We create a callback function called when the canvas needs to be refreshed. This `on_draw` function renders the entire scene. First, we clear the window in white (it is necessary to do that at every frame). Then, we draw a succession of line segments using our OpenGL program. The vertices used for this visual are those returned by the vertex shader." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "@c.connect\n", + "def on_draw(event):\n", + " gloo.clear((1,1,1,1))\n", + " program.draw('line_strip')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. Finally, we show the canvas and we run the application." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "c.show()\n", + "app.run();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following figure shows a screenshot:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Basic visualization example with Vispy](images/vispy.PNG)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How it works..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OpenGL is an open standard for hardware-accelerated interactive visualization. It is widely used in video games, industry software (Computer-Aided Design, or CAD, virtual reality) and scientific applications (medical imaging, computer graphics, and so on)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OpenGL is a mature technology created in the early 1990s. In the early 2000s, OpenGL 2.0 brought a major new feature: the possibility to customize fundamental steps of the **rendering pipeline**. This pipeline defines the way data is processed on the GPU for real-time rendering. Many OpenGL courses and tutorials cover the old, fixed pipeline. Vispy supports exclusively the modern, programmable pipeline." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, we introduce the fundamental concepts of the programmable pipeline used in this recipe. OpenGL is considerably more complex than what we will cover here. However, Vispy provides a vastly simplified API for the most common features of OpenGL." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "style": "tip" + }, + "source": [ + "Vispy is based on OpenGL ES 2.0, a flavor of OpenGL that is supported on desktop computers, mobile devices, and modern Web browsers (through **WebGL**). Modern graphics cards may support additional features. Those features will be available in future versions of Vispy." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are four major elements in the rendering pipeline of a given OpenGL program:\n", + "\n", + "1. **Data buffers** store numerical data on the GPU. The main types of buffers are **vertex buffers**, **index buffers** and **textures**.\n", + "2. **Variables** are available in the shaders. There are four major types of variables: **attributes**, **uniforms**, **varyings** and **texture samplers**.\n", + "3. **Shaders** are GPU programs written in a C-like language called **OpenGL Shading Language** (GLSL). The two main types of shaders are **vertex shaders** and **fragment shaders**.\n", + "4. The **primitive type** defines the way data points are rendered. The main types are points, lines and triangles." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is how the rendering pipeline works:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Data is sent on the GPU and stored in buffers.\n", + "2. The vertex shader processes the data in parallel and generates a number of 4D points in a normalized coordinate system `(+/-1, +/-1)`. The fourth dimension is a homogeneous coordinate (generally 1).\n", + "3. Graphics primitives are generated from the data points returned by the vertex shader (**primitive assembly** and **rasterization**).\n", + "4. The fragment shader processes all primitive pixels in parallel and returns each pixel's color as RGBA components." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this recipe's example, there is only one GPU variable: the attribute `a_position`. An attribute is a variable that takes one value per data point. Uniforms are global variables (shared by all data points), whereas varyings are used to pass values from the vertex shader to the fragment shader (with automatic linear interpolation for a pixel between 2 or 3 vertices)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In `vispy.gloo`, a Program is created with the vertex and fragment shaders. Then, the variables declared in the shaders can be set with the syntax `program['varname'] = value`. When `varname` is an attribute variable, the value can just be a NumPy 2D array. In this array, every line contains the components of every data point." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, we could declare and set uniforms and textures in our program." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, `program.draw()` renders the data using the specified primitive type. Here, the `line_strip` primitive type tells the GPU to run through all vertices (as returned by the vertex buffer) and to draw a line segment from one point to the next. If there are *n* points, there will be *n-1* line segments." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other primitive types include points and triangles, with several ways of generating lines or triangles from a list of vertices." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition, an index buffer may be provided. An index buffer contains indices pointing to the vertex buffers. Using an index buffer would allow us to reuse any vertex multiple times during the primitive assembly stage. For example, when rendering a cube with a `triangles` primitive type (one triangle is generated for every triplet of points), we could use a vertex buffer with 8 data points and an index buffer with 36 indices (3 points per triangle, 2 triangles per face, 6 faces)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## There's more..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The example shown here is extremely simple. The approach provided by OpenGL and Vispy is nevertheless particularly powerful. It gives us full control on the rendering pipeline, and it allows us to leverage the computational power of the GPU in a nearly optimal way." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "High performance is achieved by minimizing the number of data transfers to the GPU. When displaying static data (for example, a scatter plot), it is possible to send the data to the GPU at initialization time only. Yet, rendering dynamic data is reasonably fast; the order of magnitude of data transfers is roughy 1 GB/s." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Besides, it is critical to use as few OpenGL draw calls as possible. Every draw incurs a significant overhead. High performance is achieved by rendering all similar primitive types at once (**batch rendering**). GPUs are particularly efficient with batch rendering, even when the properties of the points are different (for example, points with various sizes and colors)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, geometric or pixel transformations can be executed on the GPU with very high performance using the shaders. The massively parallel architecture of GPUs, consisting of hundreds or thousands of computing units, is fully leveraged when transformations are implemented in the shaders." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "General-purpose computations can be done in the shaders in a context of visualization. There is one major drawback compared to proper GPGPU frameworks like CUDA or OpenCL, though. In the vertex shader, a given thread has access to one data point only. Similarly, in the fragment shader, a thread has only access to one pixel. There are ways to mitigate this issue, but they lead to a drop of performance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, it is possible to interoperate OpenGL with CUDA/OpenCL. Buffers can be shared between OpenGL and the GPGPU framework. Complex CUDA/OpenCL computations can be implemented on vertex buffers or textures in real-time, leading to highly efficient rendering of numerical simulations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Vispy for scientific visualization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we have seen in this recipe, Vispy requires the user to know OpenGL and GLSL. However, higher-level graphical interfaces are currently being developed. Those interfaces will bring to scientists the power of GPUs for high-performance interactive visualization." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Visuals** will provide reusable, reactive graphical components like shapes, polygons, 3D meshes, surface plots, network graphs, and others. These visuals will be fully customizable and may be used without knowledge of OpenGL. A **shader composition system** will allow advanced users to reuse snippets of GLSL functionality in a modular way." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Visuals will be organized within a **scene graph** implementing GPU-based **transformations**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Scientific plotting interfaces will be implemented. Vispy could also serve as a high-performance backend for existing plotting libraries such as matplotlib." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Vispy will also support full integration in the IPython notebook using WebGL." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Eventually, Vispy could implement many kinds of scientific visualizations:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Scatter plots can be rendered efficiently with **point sprites**, using one vertex per data point. Panning and zooming can be implemented in the vertex shader, enabling fast interactive visualization of millions of points.\n", + "* Digital signals, static or dynamic (real-time) can be displayed with polylines. High-quality rendering of curves can be achieved using an OpenGL implementation of the **Anti-grain Geometry** (agg) library.\n", + "* Network graphs can be displayed by combining points and line segments.\n", + "* 3D meshes can be displayed with triangles and index buffers. Geometric transformations and realistic lighting can be implemented in the vertex and fragment shader.\n", + "* Real-time streams of images can be displayed efficiently with textures.\n", + "* Axes, grids, ticks, text, and labels can be rendered efficiently in the fragment shader." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Many examples can be found in Vispy's gallery." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### References" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are a few references:\n", + "\n", + "* [Vispy's gallery](http://vispy.org/gallery.html).\n", + "* [A modern OpenGL tutorial by Nicolas P. Rougier](http://www.loria.fr/~rougier/teaching/opengl/).\n", + "* [Hardware-accelerated interactive data visualization for neuroscience in Python](http://journal.frontiersin.org/Journal/10.3389/fninf.2013.00036/full).\n", + "* [Vispy users mailing list](https://groups.google.com/forum/#!forum/vispy).\n", + "* [Vispy-dev mailing list](https://groups.google.com/forum/#!forum/vispy-dev)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This was a featured recipe from the [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter01_basic/01_notebook.ipynb b/notebooks/chapter01_basic/01_notebook.ipynb index 6519986..fcf7a42 100644 --- a/notebooks/chapter01_basic/01_notebook.ipynb +++ b/notebooks/chapter01_basic/01_notebook.ipynb @@ -1,418 +1,441 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:e84e4ad9f3531057c88784f5341dd9edb6503d1b0ffb78233f0f10d8d7b74b11" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": [], - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 1.1. Introducing the IPython notebook" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. We assume that you have installed a Python distribution with IPython, and that you are now in an IPython notebook. Type in a cell the following command, and press `Shift+Enter` to validate it:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(\"Hello world!\")" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A notebook contains a linear succession of **cells** and **output areas**. A cell contains Python code, in one or multiple lines. The output of the code is shown in the corresponding output area." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. Now, we do a simple arithmetic operation." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "2+2" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The result of the operation is shown in the output area. Let's be more precise. The output area not only displays text that is printed by any command in the cell, it also displays a text representation of the last returned object. Here, the last returned object is the result of `2+2`, i.e. `4`." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. In the next cell, we can recover the value of the last returned object with the `_` (underscore) special variable. In practice, it may be more convenient to assign objects to named variables, like in `myresult = 2+2`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "_ * 3" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. IPython not only accepts Python code, but also shell commands. Those are defined by the operating system (Windows, Linux, Mac OS X, etc.). We first type `!` in a cell before typing the shell command. Here, we get the list of notebooks in the current directory." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!ls *.ipynb" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. IPython comes with a library of **magic commands**. Those commands are convenient shortcuts to common actions. They all start with `%` (percent character). You can get the list of all magic commands with `%lsmagic`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%lsmagic" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Cell magic have a `%%` prefix: they apply to an entire cell in the notebook." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. For example, the `%%writefile` cell magic lets you create a text file easily. This magic command accepts a filename as argument. All remaining lines in the cell are directly written to this text file. Here, we create a file `test.txt` and we write `Hello world!` in it." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile test.txt\n", - "Hello world!" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Let's check what this file contains.\n", - "with open('test.txt', 'r') as f:\n", - " print(f.read())" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. As you can see in the output of `%lsmagic`, there are many magic commands in IPython. You can find more information about any command by adding a `?` after it. For example, here is how we get help about the `%run` magic command:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# You can omit this, it is just to force help output\n", - "# to print in the standard output, rather than \n", - "# in the pager. This might change in future versions\n", - "# of IPython.\n", - "from __future__ import print_function\n", - "from IPython.core import page\n", - "page.page = print" - ], - "language": "python", - "metadata": { - "style": "hidden" - }, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%run?" - ], - "language": "python", - "metadata": { - "strip_output": [ - 10, - 10 - ] - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. We covered the basics of IPython and the notebook. Let's now turn to the rich display and interactive features of the notebook. Until now, we only created **code cells**, i.e. cells that contain... code. There are other types of cells, notably **Markdown cells**. Those contain rich text formatted with **Markdown**, a popular plain text formatting syntax. This format supports normal text, headers, bold, italics, hypertext links, images, mathematical equations in LaTeX, code, HTML elements, and other features, as shown below." - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "### New paragraph\n", - "\n", - "This is *rich* **text** with [links](http://ipython.org), equations:\n", - "\n", - "$$\\hat{f}(\\xi) = \\int_{-\\infty}^{+\\infty} f(x)\\, \\mathrm{e}^{-i \\xi x}$$\n", - "\n", - "code with syntax highlighting:\n", - "\n", - "```python\n", - "print(\"Hello world!\")\n", - "```\n", - "\n", - "and images:\n", - "\n", - "![This is an image](http://ipython.org/_static/IPy_header.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "style": "hidden" - }, - "source": [ - "### New paragraph\n", - "\n", - "This is *rich* **text** with [links](http://ipython.org), equations:\n", - "\n", - "$$\\hat{f}(\\xi) = \\int_{-\\infty}^{+\\infty} f(x)\\, \\mathrm{e}^{-i \\xi x}$$\n", - "\n", - "code with syntax highlighting:\n", - "\n", - "```python\n", - "print(\"Hello world!\")\n", - "```\n", - "\n", - "and images:\n", - "\n", - "![This is an image](http://ipython.org/_static/IPy_header.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "By combining code cells and Markdown cells, you can create a standalone interactive document that combines computations (code), text and graphics." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "9. That was it for Markdown cells. IPython also comes with a sophisticated display system that lets you insert rich web elements in the notebook. Here, we show how to add HTML, SVG (Scalable Vector Graphics) and even Youtube videos in a notebook." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, we need to import some classes." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from IPython.display import HTML, SVG, YouTubeVideo" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We create an HTML table dynamically with Python, and we display it in the (HTML-based) notebook." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "HTML('''\n", - "\n", - "''' + \n", - "''.join(['' + \n", - " ''.join([''.format(\n", - " row=row, col=col\n", - " ) for col in range(5)]) +\n", - " '' for row in range(5)]) +\n", - "'''\n", - "
{row},{col}
\n", - "''')" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Similarly here, we create a SVG graphics dynamically." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "SVG('''''' + \n", - "''.join(['''\n", - " '''.format(\n", - " x=(30+3*i)*(10-i), y=30, r=3.*float(i)\n", - " ) for i in range(10)]) + \n", - "'''''')" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we display a Youtube video by giving its identifier to `YoutubeVideo`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "YouTubeVideo('j9YpkSX7NNM')" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "10. Now, we illustrate the latest interactive features in IPython 2.0+. This version brings graphical widgets in the notebook that can interact with Python objects. We will create a drop-down menu allowing us to display one among several videos." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from collections import OrderedDict\n", - "from IPython.display import display, clear_output\n", - "from IPython.html.widgets import DropdownWidget" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# We create a DropdownWidget, with a dictionary containing\n", - "# the keys (video name) and the values (Youtube identifier) \n", - "# of every menu item.\n", - "dw = DropdownWidget(values=OrderedDict([\n", - " ('SciPy 2012', 'iwVvqwLDsJo'), \n", - " ('PyCon 2012', '2G5YTlheCbw'),\n", - " ('SciPy 2013', 'j9YpkSX7NNM')]))\n", - "# We create a callback function that displays the requested\n", - "# Youtube video.\n", - "def on_value_change(name, val):\n", - " clear_output()\n", - " display(YouTubeVideo(val))\n", - "# Every time the user selects an item, the function\n", - "# `on_value_change` is called, and the `val` argument\n", - "# contains the value of the selected item.\n", - "dw.on_trait_change(on_value_change, 'value')\n", - "# We choose a default value.\n", - "dw.value = dw.values['SciPy 2013']\n", - "# Finally, we display the widget.\n", - "display(dw)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The interactive features of IPython 2.0 bring a whole new dimension in the notebook, and we can expect many developments in the months and years to come." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1.1. Introducing the IPython notebook" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. We assume that you have installed a Python distribution with IPython, and that you are now in an IPython notebook. Type in a cell the following command, and press `Shift+Enter` to validate it:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(\"Hello world!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A notebook contains a linear succession of **cells** and **output areas**. A cell contains Python code, in one or multiple lines. The output of the code is shown in the corresponding output area." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Now, we do a simple arithmetic operation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "2+2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result of the operation is shown in the output area. Let's be more precise. The output area not only displays text that is printed by any command in the cell, it also displays a text representation of the last returned object. Here, the last returned object is the result of `2+2`, i.e. `4`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. In the next cell, we can recover the value of the last returned object with the `_` (underscore) special variable. In practice, it may be more convenient to assign objects to named variables, like in `myresult = 2+2`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "_ * 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. IPython not only accepts Python code, but also shell commands. Those are defined by the operating system (Windows, Linux, Mac OS X, etc.). We first type `!` in a cell before typing the shell command. Here, we get the list of notebooks in the current directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "!ls *.ipynb" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. IPython comes with a library of **magic commands**. Those commands are convenient shortcuts to common actions. They all start with `%` (percent character). You can get the list of all magic commands with `%lsmagic`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%lsmagic" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Cell magic have a `%%` prefix: they apply to an entire cell in the notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. For example, the `%%writefile` cell magic lets you create a text file easily. This magic command accepts a filename as argument. All remaining lines in the cell are directly written to this text file. Here, we create a file `test.txt` and we write `Hello world!` in it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile test.txt\n", + "Hello world!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Let's check what this file contains.\n", + "with open('test.txt', 'r') as f:\n", + " print(f.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. As you can see in the output of `%lsmagic`, there are many magic commands in IPython. You can find more information about any command by adding a `?` after it. For example, here is how we get help about the `%run` magic command:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "style": "hidden" + }, + "outputs": [], + "source": [ + "# You can omit this, it is just to force help output\n", + "# to print in the standard output, rather than \n", + "# in the pager. This might change in future versions\n", + "# of IPython.\n", + "from __future__ import print_function\n", + "from IPython.core import page\n", + "page.page = print" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "strip_output": [ + 10, + 10 + ] + }, + "outputs": [], + "source": [ + "%run?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. We covered the basics of IPython and the notebook. Let's now turn to the rich display and interactive features of the notebook. Until now, we only created **code cells**, i.e. cells that contain... code. There are other types of cells, notably **Markdown cells**. Those contain rich text formatted with **Markdown**, a popular plain text formatting syntax. This format supports normal text, headers, bold, italics, hypertext links, images, mathematical equations in LaTeX, code, HTML elements, and other features, as shown below." + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "### New paragraph\n", + "\n", + "This is *rich* **text** with [links](http://ipython.org), equations:\n", + "\n", + "$$\\hat{f}(\\xi) = \\int_{-\\infty}^{+\\infty} f(x)\\, \\mathrm{e}^{-i \\xi x}$$\n", + "\n", + "code with syntax highlighting:\n", + "\n", + "```python\n", + "print(\"Hello world!\")\n", + "```\n", + "\n", + "and images:\n", + "\n", + "![This is an image](http://ipython.org/_static/IPy_header.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "style": "hidden" + }, + "source": [ + "### New paragraph\n", + "\n", + "This is *rich* **text** with [links](http://ipython.org), equations:\n", + "\n", + "$$\\hat{f}(\\xi) = \\int_{-\\infty}^{+\\infty} f(x)\\, \\mathrm{e}^{-i \\xi x}$$\n", + "\n", + "code with syntax highlighting:\n", + "\n", + "```python\n", + "print(\"Hello world!\")\n", + "```\n", + "\n", + "and images:\n", + "\n", + "![This is an image](http://ipython.org/_static/IPy_header.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By combining code cells and Markdown cells, you can create a standalone interactive document that combines computations (code), text and graphics." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. That was it for Markdown cells. IPython also comes with a sophisticated display system that lets you insert rich web elements in the notebook. Here, we show how to add HTML, SVG (Scalable Vector Graphics) and even Youtube videos in a notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we need to import some classes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from IPython.display import HTML, SVG, YouTubeVideo" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We create an HTML table dynamically with Python, and we display it in the (HTML-based) notebook." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "HTML('''\n", + "\n", + "''' + \n", + "''.join(['' + \n", + " ''.join([''.format(\n", + " row=row, col=col\n", + " ) for col in range(5)]) +\n", + " '' for row in range(5)]) +\n", + "'''\n", + "
{row},{col}
\n", + "''')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly here, we create a SVG graphics dynamically." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "SVG('''''' + \n", + "''.join(['''\n", + " '''.format(\n", + " x=(30+3*i)*(10-i), y=30, r=3.*float(i)\n", + " ) for i in range(10)]) + \n", + "'''''')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we display a Youtube video by giving its identifier to `YoutubeVideo`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "YouTubeVideo('j9YpkSX7NNM')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10. Now, we illustrate the latest interactive features in IPython 2.0+. This version brings graphical widgets in the notebook that can interact with Python objects. We will create a drop-down menu allowing us to display one among several videos." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from collections import OrderedDict\n", + "from IPython.display import display, clear_output\n", + "from IPython.html.widgets import DropdownWidget" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# We create a DropdownWidget, with a dictionary containing\n", + "# the keys (video name) and the values (Youtube identifier) \n", + "# of every menu item.\n", + "dw = DropdownWidget(values=OrderedDict([\n", + " ('SciPy 2012', 'iwVvqwLDsJo'), \n", + " ('PyCon 2012', '2G5YTlheCbw'),\n", + " ('SciPy 2013', 'j9YpkSX7NNM')]))\n", + "# We create a callback function that displays the requested\n", + "# Youtube video.\n", + "def on_value_change(name, val):\n", + " clear_output()\n", + " display(YouTubeVideo(val))\n", + "# Every time the user selects an item, the function\n", + "# `on_value_change` is called, and the `val` argument\n", + "# contains the value of the selected item.\n", + "dw.on_trait_change(on_value_change, 'value')\n", + "# We choose a default value.\n", + "dw.value = dw.values['SciPy 2013']\n", + "# Finally, we display the widget.\n", + "display(dw)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The interactive features of IPython 2.0 bring a whole new dimension in the notebook, and we can expect many developments in the months and years to come." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter01_basic/02_pandas.ipynb b/notebooks/chapter01_basic/02_pandas.ipynb index bf52bce..ba7d9d6 100644 --- a/notebooks/chapter01_basic/02_pandas.ipynb +++ b/notebooks/chapter01_basic/02_pandas.ipynb @@ -1,280 +1,287 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:4670085d9ab26cefc6aeaac7ca69017d9dd56ab00e9870fdb0dc5fe5d1ad2eaf" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": [], - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 1.2. Getting started with exploratory data analysis in IPython" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will download and process a dataset about attendance on Montreal's bicycle tracks. This example is largely inspired by a presentation from [Julia Evans](http://nbviewer.ipython.org/github/jvns/talks/blob/master/mtlpy35/pistes-cyclables.ipynb)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. The very first step is to import the scientific packages we will be using in this recipe, namely NumPy, Pandas, and matplotlib. We also instruct matplotlib to render the figures as PNG images in the notebook." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. Now, we create a new Python variable called `url` that contains the address to a CSV (**Comma-separated values**) data file. This standard text-based file format is used to store tabular data." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "url = \"http://donnees.ville.montreal.qc.ca/storage/f/2014-01-20T20%3A48%3A50.296Z/2013.csv/"" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. Pandas defines a `read_csv` function that can read any CSV file. Here, we give it the URL to the file. Pandas will automatically download and parse the file, and return a `DataFrame` object. We need to specify a few options to make sure the dates are parsed correctly." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "df = pd.read_csv(url, index_col='Date', parse_dates=True, dayfirst=True)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. The `df` variable contains a `DataFrame` object, a specific Pandas data structure that contains 2D tabular data. The `head(n)` method displays the first `n` rows of this table." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "df.head(2)" - ], - "language": "python", - "metadata": { - "strip_output": [ - 0, - 0 - ] - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Every row contains the number of bicycles on every track of the city, for every day of the year." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. We can get some summary statistics of the table with the `describe` method." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "df.describe()" - ], - "language": "python", - "metadata": { - "strip_output": [ - 0, - 0 - ] - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. Let's display some figures! We will plot the daily attendance of two tracks. First, we select the two columns `'Berri1'` and `'PierDup'`. Then, we call the `plot` method." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# The styling '-' and '--' is just to make the figure\n", - "# readable in the black & white printed version of this book.\n", - "df[['Berri1', 'PierDup']].plot(figsize=(8,4),\n", - " style=['-', '--']);" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. Now, we move to a slightly more advanced analysis. We will look at the attendance of all tracks as a function of the weekday. We can get the week day easily with Pandas: the `index` attribute of the `DataFrame` contains the dates of all rows in the table. This index has a few date-related attributes, including `weekday`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "df.index.weekday" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "However, we would like to have names (Monday, Tuesday, etc.) instead of numbers between 0 and 6. This can be done easily. First, we create an array `days` with all weekday names. Then, we index it by `df.index.weekday`. This operation replaces every integer in the index by the corresponding name in `days`. The first element, `Monday`, has index 0, so every 0 in `df.index.weekday` is replaced by `Monday`, and so on. We assign this new index to a new column `Weekday` in the `DataFrame`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "days = np.array(['Monday', 'Tuesday', 'Wednesday', \n", - " 'Thursday', 'Friday', 'Saturday', \n", - " 'Sunday'])\n", - "df['Weekday'] = days[df.index.weekday]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. To get the attendance as a function of the weekday, we need to group the table by the weekday. The `groupby` method lets us do just that. Once grouped, we can sum all rows in every group." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "df_week = df.groupby('Weekday').sum()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "df_week" - ], - "language": "python", - "metadata": { - "strip_output": [ - 0, - 0 - ] - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "9. We can now display this information in a figure. We first need to reorder the table by the weekday using `ix` (indexing operation). Then, we plot the table, specifying the line width and the figure size." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "df_week.ix[days].plot(lw=3, figsize=(6,4));\n", - "plt.ylim(0); # Set the bottom axis to 0." - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "10. Finally, let's illustrate the new interactive capabilities of the notebook in IPython 2.0. We will plot a *smoothed* version of the track attendance as a function of time (**rolling mean**). The idea is to compute the mean value in the neighborhood of any day. The larger the neighborhood, the smoother the curve. We will create an interactive slider in the notebook to vary this parameter in real-time in the plot." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from IPython.html.widgets import interact\n", - "@interact\n", - "def plot(n=(1, 30)):\n", - " plt.figure(figsize=(8,4));\n", - " pd.rolling_mean(df['Berri1'], n).dropna().plot();\n", - " plt.ylim(0, 8000);\n", - " plt.show();" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1.2. Getting started with exploratory data analysis in IPython" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will download and process a dataset about attendance on Montreal's bicycle tracks. This example is largely inspired by a presentation from [Julia Evans](http://nbviewer.ipython.org/github/jvns/talks/blob/master/mtlpy35/pistes-cyclables.ipynb)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. The very first step is to import the scientific packages we will be using in this recipe, namely NumPy, Pandas, and matplotlib. We also instruct matplotlib to render the figures as PNG images in the notebook." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Now, we create a new Python variable called `url` that contains the address to a CSV (**Comma-separated values**) data file. This standard text-based file format is used to store tabular data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "url = \"http://donnees.ville.montreal.qc.ca/storage/f/2014-01-20T20%3A48%3A50.296Z/2013.csv/"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Pandas defines a `read_csv` function that can read any CSV file. Here, we give it the URL to the file. Pandas will automatically download and parse the file, and return a `DataFrame` object. We need to specify a few options to make sure the dates are parsed correctly." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df = pd.read_csv(url, index_col='Date', parse_dates=True, dayfirst=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. The `df` variable contains a `DataFrame` object, a specific Pandas data structure that contains 2D tabular data. The `head(n)` method displays the first `n` rows of this table." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "strip_output": [ + 0, + 0 + ] + }, + "outputs": [], + "source": [ + "df.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Every row contains the number of bicycles on every track of the city, for every day of the year." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. We can get some summary statistics of the table with the `describe` method." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "strip_output": [ + 0, + 0 + ] + }, + "outputs": [], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. Let's display some figures! We will plot the daily attendance of two tracks. First, we select the two columns `'Berri1'` and `'PierDup'`. Then, we call the `plot` method." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# The styling '-' and '--' is just to make the figure\n", + "# readable in the black & white printed version of this book.\n", + "df[['Berri1', 'PierDup']].plot(figsize=(8,4),\n", + " style=['-', '--']);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. Now, we move to a slightly more advanced analysis. We will look at the attendance of all tracks as a function of the weekday. We can get the week day easily with Pandas: the `index` attribute of the `DataFrame` contains the dates of all rows in the table. This index has a few date-related attributes, including `weekday`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df.index.weekday" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, we would like to have names (Monday, Tuesday, etc.) instead of numbers between 0 and 6. This can be done easily. First, we create an array `days` with all weekday names. Then, we index it by `df.index.weekday`. This operation replaces every integer in the index by the corresponding name in `days`. The first element, `Monday`, has index 0, so every 0 in `df.index.weekday` is replaced by `Monday`, and so on. We assign this new index to a new column `Weekday` in the `DataFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "days = np.array(['Monday', 'Tuesday', 'Wednesday', \n", + " 'Thursday', 'Friday', 'Saturday', \n", + " 'Sunday'])\n", + "df['Weekday'] = days[df.index.weekday]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. To get the attendance as a function of the weekday, we need to group the table by the weekday. The `groupby` method lets us do just that. Once grouped, we can sum all rows in every group." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_week = df.groupby('Weekday').sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "strip_output": [ + 0, + 0 + ] + }, + "outputs": [], + "source": [ + "df_week" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. We can now display this information in a figure. We first need to reorder the table by the weekday using `ix` (indexing operation). Then, we plot the table, specifying the line width and the figure size." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_week.ix[days].plot(lw=3, figsize=(6,4));\n", + "plt.ylim(0); # Set the bottom axis to 0." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10. Finally, let's illustrate the new interactive capabilities of the notebook in IPython 2.0. We will plot a *smoothed* version of the track attendance as a function of time (**rolling mean**). The idea is to compute the mean value in the neighborhood of any day. The larger the neighborhood, the smoother the curve. We will create an interactive slider in the notebook to vary this parameter in real-time in the plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from IPython.html.widgets import interact\n", + "@interact\n", + "def plot(n=(1, 30)):\n", + " plt.figure(figsize=(8,4));\n", + " pd.rolling_mean(df['Berri1'], n).dropna().plot();\n", + " plt.ylim(0, 8000);\n", + " plt.show();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter01_basic/03_numpy.ipynb b/notebooks/chapter01_basic/03_numpy.ipynb index 3d6cc0b..b49d7af 100644 --- a/notebooks/chapter01_basic/03_numpy.ipynb +++ b/notebooks/chapter01_basic/03_numpy.ipynb @@ -1,319 +1,345 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:6fd054255cd6106ef3d4073877e95032ba36667d32b56f8133687bf5d22a7002" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": [], - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 1.3. Introducing the multidimensional array in NumPy for fast array computations" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Let's import the built-in `random` Python module and NumPy." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import random\n", - "import numpy as np" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We use the `%precision` magic (defined in IPython) to show only 3 decimals in the Python output. This is just to alleviate the text." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%precision 3" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. We generate two Python lists `x` and `y`, each one containing one million random numbers between 0 and 1." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "n = 1000000\n", - "x = [random.random() for _ in range(n)]\n", - "y = [random.random() for _ in range(n)]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "x[:3], y[:3]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. Let's compute the element-wise sum of all these numbers: the first element of `x` plus the first element of `y`, and so on. We use a `for` loop in a list comprehension." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "z = [x[i] + y[i] for i in range(n)]\n", - "z[:3]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. How long does this computation take? IPython defines a handy `%timeit` magic command to quickly evaluate the time taken by a single command." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit [x[i] + y[i] for i in range(n)]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Now, we will perform the same operation with NumPy. NumPy works on multidimensional arrays, so we need to convert our lists to arrays. The `np.array()` function does just that." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "xa = np.array(x)\n", - "ya = np.array(y)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "xa[:3]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The arrays `xa` and `ya` contain the *exact* same numbers than our original lists `x` and `y`. Whereas those lists where instances of a built-in class `list`, our arrays are instances of a NumPy class `ndarray`. Those types are implemented very differently in Python and NumPy. We will see that, in this example, using arrays instead of lists leads to drastic performance improvements." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. Now, to compute the element-wise sum of these arrays, we don't need to do a `for` loop anymore. In NumPy, adding two arrays means adding the elements of the arrays component by component." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "za = xa + ya\n", - "za[:3]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We see that the list `z` and the array `za` contain the same elements (the sum of the numbers in `x` and `y`)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. Let's compare the performance of this NumPy operation with the native Python loop." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit xa + ya" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We observe that this operation is more than one order of magnitude faster in NumPy than in pure Python!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. Now, we will compute something else: the sum of all elements in `x` or `xa`. Although this is not an element-wise operation, NumPy is still highly efficient here. The pure Python version uses the built-in `sum` function on an iterable. The NumPy version uses the `np.sum()` function on a NumPy array." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit sum(x) # pure Python\n", - "%timeit np.sum(xa) # NumPy" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We also observe an impressive speedup here." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "9. Finally, let's perform a last operation: computing the arithmetic distance between any pair of numbers in our two lists (we only consider the first 1000 elements to keep computing times reasonable). First, we implement this in pure Python with two nested `for` loops." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d = [abs(x[i] - y[j]) \n", - " for i in range(1000) for j in range(1000)]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d[:3]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "10. Now, we use a NumPy implementation, bringing out two slightly more advanced notions. First, we consider a **two-dimensional array** (or matrix). This is how we deal with *two* indices *i* and *j*. Second, we use **broadcasting** to perform an operation between a 2D array and a 1D array. We will give more details in *How it works...*" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "da = np.abs(xa[:1000,None] - ya[:1000])" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "da" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit [abs(x[i] - y[j]) for i in range(1000) for j in range(1000)]\n", - "%timeit np.abs(xa[:1000, None] - ya[:1000])" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here again, observe observe the significant speedups." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1.3. Introducing the multidimensional array in NumPy for fast array computations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Let's import the built-in `random` Python module and NumPy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We use the `%precision` magic (defined in IPython) to show only 3 decimals in the Python output. This is just to alleviate the text." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%precision 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We generate two Python lists `x` and `y`, each one containing one million random numbers between 0 and 1." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "n = 1000000\n", + "x = [random.random() for _ in range(n)]\n", + "y = [random.random() for _ in range(n)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x[:3], y[:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Let's compute the element-wise sum of all these numbers: the first element of `x` plus the first element of `y`, and so on. We use a `for` loop in a list comprehension." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "z = [x[i] + y[i] for i in range(n)]\n", + "z[:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. How long does this computation take? IPython defines a handy `%timeit` magic command to quickly evaluate the time taken by a single command." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%timeit [x[i] + y[i] for i in range(n)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Now, we will perform the same operation with NumPy. NumPy works on multidimensional arrays, so we need to convert our lists to arrays. The `np.array()` function does just that." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "xa = np.array(x)\n", + "ya = np.array(y)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "xa[:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The arrays `xa` and `ya` contain the *exact* same numbers than our original lists `x` and `y`. Whereas those lists where instances of a built-in class `list`, our arrays are instances of a NumPy class `ndarray`. Those types are implemented very differently in Python and NumPy. We will see that, in this example, using arrays instead of lists leads to drastic performance improvements." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. Now, to compute the element-wise sum of these arrays, we don't need to do a `for` loop anymore. In NumPy, adding two arrays means adding the elements of the arrays component by component." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "za = xa + ya\n", + "za[:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the list `z` and the array `za` contain the same elements (the sum of the numbers in `x` and `y`)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. Let's compare the performance of this NumPy operation with the native Python loop." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%timeit xa + ya" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We observe that this operation is more than one order of magnitude faster in NumPy than in pure Python!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. Now, we will compute something else: the sum of all elements in `x` or `xa`. Although this is not an element-wise operation, NumPy is still highly efficient here. The pure Python version uses the built-in `sum` function on an iterable. The NumPy version uses the `np.sum()` function on a NumPy array." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%timeit sum(x) # pure Python\n", + "%timeit np.sum(xa) # NumPy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We also observe an impressive speedup here." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. Finally, let's perform a last operation: computing the arithmetic distance between any pair of numbers in our two lists (we only consider the first 1000 elements to keep computing times reasonable). First, we implement this in pure Python with two nested `for` loops." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "d = [abs(x[i] - y[j]) \n", + " for i in range(1000) for j in range(1000)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "d[:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10. Now, we use a NumPy implementation, bringing out two slightly more advanced notions. First, we consider a **two-dimensional array** (or matrix). This is how we deal with *two* indices *i* and *j*. Second, we use **broadcasting** to perform an operation between a 2D array and a 1D array. We will give more details in *How it works...*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "da = np.abs(xa[:1000,None] - ya[:1000])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "da" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%timeit [abs(x[i] - y[j]) for i in range(1000) for j in range(1000)]\n", + "%timeit np.abs(xa[:1000, None] - ya[:1000])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here again, observe observe the significant speedups." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter01_basic/04_magic.ipynb b/notebooks/chapter01_basic/04_magic.ipynb index 62b4e16..50791f7 100644 --- a/notebooks/chapter01_basic/04_magic.ipynb +++ b/notebooks/chapter01_basic/04_magic.ipynb @@ -1,227 +1,247 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:413d5956bad50695e547e4d7bdc45165b3dfc91a35cceabba315e8f12519ce83" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": [], - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 1.4. Creating an IPython extension with custom magic commands" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Let's import a few functions from the IPython magic system." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from IPython.core.magic import (register_line_magic, \n", - " register_cell_magic)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. Defining a new line magic is particularly simple. First, let's create a function that accepts the contents of the line (except the initial `%`-prefixed magic command). The name of this function is the name of the magic. Then, let's decorate this function with `@register_line_magic`. We're done!" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "@register_line_magic\n", - "def hello(line):\n", - " if line == 'french':\n", - " print(\"Salut tout le monde!\")\n", - " else:\n", - " print(\"Hello world!\")" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%hello" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%hello french" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. Let's create a slightly more useful cell magic `%%csv` that parses a CSV string and returns a Pandas DataFrame object. This time, the function takes as argument the first line (what follows `%%csv`), and the contents of the cell (everything in the cell except the first line)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import pandas as pd\n", - "#from StringIO import StringIO # Python 2\n", - "from io import StringIO # Python 3\n", - "\n", - "@register_cell_magic\n", - "def csv(line, cell):\n", - " # We create a string buffer containing the\n", - " # contents of the cell.\n", - " sio = StringIO(cell)\n", - " # We use Pandas' read_csv function to parse\n", - " # the CSV string.\n", - " return pd.read_csv(sio)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%csv\n", - "col1,col2,col3\n", - "0,1,2\n", - "3,4,5\n", - "7,8,9" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can access the returned object with `_`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "df = _\n", - "df.describe()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. The method we described is useful in an interactive session. If you want to use the same magic in multiple notebooks, or if you want to distribute it, you need to create an **IPython extension** that implements your custom magic command. Let's show how to do that. The first step is to create a Python script (`csvmagic.py` here) that implements the magic." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile csvmagic.py\n", - "import pandas as pd\n", - "#from StringIO import StringIO # Python 2\n", - "from io import StringIO # Python 3\n", - "\n", - "def csv(line, cell):\n", - " sio = StringIO(cell)\n", - " return pd.read_csv(sio)\n", - "\n", - "def load_ipython_extension(ipython):\n", - " \"\"\"This function is called when the extension is loaded.\n", - " It accepts an IPython InteractiveShell instance.\n", - " We can register the magic with the `register_magic_function`\n", - " method of the shell instance.\"\"\"\n", - " ipython.register_magic_function(csv, 'cell')" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Once the extension is created, we need to import it in the IPython session. The `%load_ext` magic command takes the name of a Python module and imports it, calling immediately `load_ipython_extension`. Here, loading this extension automatically registers our magic function `%%csv`. The Python module needs to be importable. Here, it is in the current directory. In other situations, it has to be in the Python path. It can also be stored in `~\\.ipython\\extensions` which is automatically put in the Python path." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%load_ext csvmagic" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%csv\n", - "col1,col2,col3\n", - "0,1,2\n", - "3,4,5\n", - "7,8,9" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, to ensure that this magic is automatically defined in our IPython profile, we can instruct IPython to load this extension at startup. To do this, let's open the file `~/.ipython/profile_default/ipython_config.py` and let's put `'csvmagic'` in the `c.InteractiveShellApp.extensions` list. The `csvmagic` module needs to be importable. It is common to create a *Python package* implementing an IPython extension, which itself defines custom magic commands." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1.4. Creating an IPython extension with custom magic commands" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Let's import a few functions from the IPython magic system." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from IPython.core.magic import (register_line_magic, \n", + " register_cell_magic)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Defining a new line magic is particularly simple. First, let's create a function that accepts the contents of the line (except the initial `%`-prefixed magic command). The name of this function is the name of the magic. Then, let's decorate this function with `@register_line_magic`. We're done!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "@register_line_magic\n", + "def hello(line):\n", + " if line == 'french':\n", + " print(\"Salut tout le monde!\")\n", + " else:\n", + " print(\"Hello world!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%hello" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%hello french" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Let's create a slightly more useful cell magic `%%csv` that parses a CSV string and returns a Pandas DataFrame object. This time, the function takes as argument the first line (what follows `%%csv`), and the contents of the cell (everything in the cell except the first line)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "#from StringIO import StringIO # Python 2\n", + "from io import StringIO # Python 3\n", + "\n", + "@register_cell_magic\n", + "def csv(line, cell):\n", + " # We create a string buffer containing the\n", + " # contents of the cell.\n", + " sio = StringIO(cell)\n", + " # We use Pandas' read_csv function to parse\n", + " # the CSV string.\n", + " return pd.read_csv(sio)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%csv\n", + "col1,col2,col3\n", + "0,1,2\n", + "3,4,5\n", + "7,8,9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can access the returned object with `_`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df = _\n", + "df.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. The method we described is useful in an interactive session. If you want to use the same magic in multiple notebooks, or if you want to distribute it, you need to create an **IPython extension** that implements your custom magic command. Let's show how to do that. The first step is to create a Python script (`csvmagic.py` here) that implements the magic." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile csvmagic.py\n", + "import pandas as pd\n", + "#from StringIO import StringIO # Python 2\n", + "from io import StringIO # Python 3\n", + "\n", + "def csv(line, cell):\n", + " sio = StringIO(cell)\n", + " return pd.read_csv(sio)\n", + "\n", + "def load_ipython_extension(ipython):\n", + " \"\"\"This function is called when the extension is loaded.\n", + " It accepts an IPython InteractiveShell instance.\n", + " We can register the magic with the `register_magic_function`\n", + " method of the shell instance.\"\"\"\n", + " ipython.register_magic_function(csv, 'cell')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Once the extension is created, we need to import it in the IPython session. The `%load_ext` magic command takes the name of a Python module and imports it, calling immediately `load_ipython_extension`. Here, loading this extension automatically registers our magic function `%%csv`. The Python module needs to be importable. Here, it is in the current directory. In other situations, it has to be in the Python path. It can also be stored in `~\\.ipython\\extensions` which is automatically put in the Python path." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%load_ext csvmagic" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%csv\n", + "col1,col2,col3\n", + "0,1,2\n", + "3,4,5\n", + "7,8,9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, to ensure that this magic is automatically defined in our IPython profile, we can instruct IPython to load this extension at startup. To do this, let's open the file `~/.ipython/profile_default/ipython_config.py` and let's put `'csvmagic'` in the `c.InteractiveShellApp.extensions` list. The `csvmagic` module needs to be importable. It is common to create a *Python package* implementing an IPython extension, which itself defines custom magic commands." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter01_basic/05_config.ipynb b/notebooks/chapter01_basic/05_config.ipynb index b6713b5..7a23bd9 100644 --- a/notebooks/chapter01_basic/05_config.ipynb +++ b/notebooks/chapter01_basic/05_config.ipynb @@ -1,253 +1,268 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:62c77ec69dec23b511396c567b6bc88183a97a257ce0ca4dadb2591addb83adb" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 1.5. Mastering IPython's configuration system" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile random_magics.py\n", - "# NOTE: We create the `random_magics.py` file here so that \n", - "# you don't have to do it...\n", - "from IPython.utils.traitlets import Int, Float, Unicode, Bool\n", - "from IPython.core.magic import (Magics, magics_class, line_magic)\n", - "import numpy as np\n", - "\n", - "@magics_class\n", - "class RandomMagics(Magics):\n", - " text = Unicode(u'{n}', config=True)\n", - " max = Int(1000, config=True)\n", - " seed = Int(0, config=True)\n", - " \n", - " def __init__(self, shell):\n", - " super(RandomMagics, self).__init__(shell)\n", - " self._rng = np.random.RandomState(self.seed or None)\n", - " \n", - " @line_magic\n", - " def random(self, line):\n", - " return self.text.format(n=self._rng.randint(self.max))\n", - " \n", - "def load_ipython_extension(ipython):\n", - " ipython.register_magics(RandomMagics)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. We create an IPython extension in a file `random_magics.py`. Let's start by importing a few objects:" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "from IPython.utils.traitlets import Int, Float, Unicode, Bool\n", - "from IPython.core.magic import (Magics, magics_class, line_magic)\n", - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. We create a `RandomMagics` class deriving from `Magics`. This class contains a few configurable parameters." - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "@magics_class\n", - "class RandomMagics(Magics):\n", - " text = Unicode(u'{n}', config=True)\n", - " max = Int(1000, config=True)\n", - " seed = Int(0, config=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. We need to call the parent's constructor. Then, we initialize a random number generator with a seed." - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " def __init__(self, shell):\n", - " super(RandomMagics, self).__init__(shell)\n", - " self._rng = np.random.RandomState(self.seed or None)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. Then, we create a line magic `%random` that displays a random number." - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - " @line_magic\n", - " def random(self, line):\n", - " return self.text.format(n=self._rng.randint(self.max))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Finally, we register that magics when the extension is loaded." - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "def load_ipython_extension(ipython):\n", - " ipython.register_magics(RandomMagics)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. Let's test our extension!" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%load_ext random_magics" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%random" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%random" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. Our magics command has a few configurable parameters. These variables are meant to be configured by the user in the IPython configuration file, or in the console when starting IPython. To configure these variables in the terminal, we can type in a system shell the following command:" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "ipython --profile=cookbook --RandomMagics.text='Your number is {n}.' --RandomMagics.max=10 --RandomMagics.seed=1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In that session, we get the following behavior:" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "In [1]: %load_ext random_magics\n", - "\n", - "In [2]: %random\n", - "Out[2]: u'Your number is 5.'\n", - "\n", - "In [3]: %random\n", - "Out[3]: u'Your number is 8.'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. To configure the variables in the IPython configuration file, we have to open the file `~/.ipython/profile_cookbook/ipython_config.py` and add the following line:" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "c.RandomMagics.text = 'random {n}'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "After launching IPython, we get the following behavior:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%random" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1.5. Mastering IPython's configuration system" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile random_magics.py\n", + "# NOTE: We create the `random_magics.py` file here so that \n", + "# you don't have to do it...\n", + "from IPython.utils.traitlets import Int, Float, Unicode, Bool\n", + "from IPython.core.magic import (Magics, magics_class, line_magic)\n", + "import numpy as np\n", + "\n", + "@magics_class\n", + "class RandomMagics(Magics):\n", + " text = Unicode(u'{n}', config=True)\n", + " max = Int(1000, config=True)\n", + " seed = Int(0, config=True)\n", + " \n", + " def __init__(self, shell):\n", + " super(RandomMagics, self).__init__(shell)\n", + " self._rng = np.random.RandomState(self.seed or None)\n", + " \n", + " @line_magic\n", + " def random(self, line):\n", + " return self.text.format(n=self._rng.randint(self.max))\n", + " \n", + "def load_ipython_extension(ipython):\n", + " ipython.register_magics(RandomMagics)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. We create an IPython extension in a file `random_magics.py`. Let's start by importing a few objects:" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "from IPython.utils.traitlets import Int, Float, Unicode, Bool\n", + "from IPython.core.magic import (Magics, magics_class, line_magic)\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We create a `RandomMagics` class deriving from `Magics`. This class contains a few configurable parameters." + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "@magics_class\n", + "class RandomMagics(Magics):\n", + " text = Unicode(u'{n}', config=True)\n", + " max = Int(1000, config=True)\n", + " seed = Int(0, config=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. We need to call the parent's constructor. Then, we initialize a random number generator with a seed." + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + " def __init__(self, shell):\n", + " super(RandomMagics, self).__init__(shell)\n", + " self._rng = np.random.RandomState(self.seed or None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. Then, we create a line magic `%random` that displays a random number." + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + " @line_magic\n", + " def random(self, line):\n", + " return self.text.format(n=self._rng.randint(self.max))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Finally, we register that magics when the extension is loaded." + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "def load_ipython_extension(ipython):\n", + " ipython.register_magics(RandomMagics)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. Let's test our extension!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%load_ext random_magics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%random" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%random" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. Our magics command has a few configurable parameters. These variables are meant to be configured by the user in the IPython configuration file, or in the console when starting IPython. To configure these variables in the terminal, we can type in a system shell the following command:" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "ipython --profile=cookbook --RandomMagics.text='Your number is {n}.' --RandomMagics.max=10 --RandomMagics.seed=1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In that session, we get the following behavior:" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "In [1]: %load_ext random_magics\n", + "\n", + "In [2]: %random\n", + "Out[2]: u'Your number is 5.'\n", + "\n", + "In [3]: %random\n", + "Out[3]: u'Your number is 8.'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. To configure the variables in the IPython configuration file, we have to open the file `~/.ipython/profile_cookbook/ipython_config.py` and add the following line:" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "c.RandomMagics.text = 'random {n}'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After launching IPython, we get the following behavior:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%random" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter01_basic/06_kernel.ipynb b/notebooks/chapter01_basic/06_kernel.ipynb index d133354..25058ba 100644 --- a/notebooks/chapter01_basic/06_kernel.ipynb +++ b/notebooks/chapter01_basic/06_kernel.ipynb @@ -1,379 +1,390 @@ { - "metadata": { - "name": "", - "signature": "sha256:c04df6ef396ba1288bc94e1bb1bef43c72dc8af6a22dc50e44ddee5714efe5be" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1.6. Creating a simple kernel for IPython" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This recipe has been tested on the development version of IPython 3. It should work on the final version of IPython 3 with no or minimal changes. We give all references about wrapper kernels and messaging protocols at the end of this recipe." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Besides, the code given here works with Python 3. It can be ported to Python 2 with minimal efforts." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile plotkernel.py\n", + "# NOTE: We create the `plotkernel.py` file here so that \n", + "# you don't have to do it...\n", + "from IPython.kernel.zmq.kernelbase import Kernel\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from io import BytesIO\n", + "import urllib, base64\n", + "\n", + "def _to_png(fig):\n", + " \"\"\"Return a base64-encoded PNG from a \n", + " matplotlib figure.\"\"\"\n", + " imgdata = BytesIO()\n", + " fig.savefig(imgdata, format='png')\n", + " imgdata.seek(0)\n", + " return urllib.parse.quote(\n", + " base64.b64encode(imgdata.getvalue()))\n", + "\n", + "_numpy_namespace = {n: getattr(np, n) \n", + " for n in dir(np)}\n", + "def _parse_function(code):\n", + " \"\"\"Return a NumPy function from a string 'y=f(x)'.\"\"\"\n", + " return lambda x: eval(code.split('=')[1].strip(),\n", + " _numpy_namespace, {'x': x})\n", + "\n", + "class PlotKernel(Kernel):\n", + " implementation = 'Plot'\n", + " implementation_version = '1.0'\n", + " language = 'python' # will be used for\n", + " # syntax highlighting\n", + " language_version = ''\n", + " banner = \"Simple plotting\"\n", + " \n", + " def do_execute(self, code, silent,\n", + " store_history=True,\n", + " user_expressions=None,\n", + " allow_stdin=False):\n", + "\n", + " # We create the plot with matplotlib.\n", + " fig = plt.figure(figsize=(6,4), dpi=100)\n", + " x = np.linspace(-5., 5., 200)\n", + " functions = code.split('\\n')\n", + " for fun in functions:\n", + " f = _parse_function(fun)\n", + " y = f(x)\n", + " plt.plot(x, y)\n", + " plt.xlim(-5, 5)\n", + "\n", + " # We create a PNG out of this plot.\n", + " png = _to_png(fig)\n", + "\n", + " if not silent:\n", + " # We send the standard output to the client.\n", + " self.send_response(self.iopub_socket,\n", + " 'stream', {\n", + " 'name': 'stdout', \n", + " 'data': 'Plotting {n} function(s)'. \\\n", + " format(n=len(functions))})\n", + "\n", + " # We prepare the response with our rich data\n", + " # (the plot).\n", + " content = {\n", + " 'source': 'kernel',\n", + "\n", + " # This dictionary may contain different\n", + " # MIME representations of the output.\n", + " 'data': {\n", + " 'image/png': png\n", + " },\n", + "\n", + " # We can specify the image size\n", + " # in the metadata field.\n", + " 'metadata' : {\n", + " 'image/png' : {\n", + " 'width': 600,\n", + " 'height': 400\n", + " }\n", + " }\n", + " } \n", + "\n", + " # We send the display_data message with the\n", + " # contents.\n", + " self.send_response(self.iopub_socket,\n", + " 'display_data', content)\n", + "\n", + " # We return the exection results.\n", + " return {'status': 'ok',\n", + " 'execution_count': self.execution_count,\n", + " 'payload': [],\n", + " 'user_expressions': {},\n", + " }\n", + "\n", + "if __name__ == '__main__':\n", + " from IPython.kernel.zmq.kernelapp import IPKernelApp\n", + " IPKernelApp.launch_instance(kernel_class=PlotKernel)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. First, we create a file `plotkernel.py`. This file will contain the implementation of our custom kernel. Let's import a few modules." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "from IPython.kernel.zmq.kernelbase import Kernel\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from io import BytesIO\n", + "import urllib, base64```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We write a function that returns a PNG base64-encoded representation of a matplotlib figure." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "def _to_png(fig):\n", + " \"\"\"Return a base64-encoded PNG from a \n", + " matplotlib figure.\"\"\"\n", + " imgdata = BytesIO()\n", + " fig.savefig(imgdata, format='png')\n", + " imgdata.seek(0)\n", + " return urllib.parse.quote(\n", + " base64.b64encode(imgdata.getvalue()))```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Now, we write a function that parses a code string which has the form `y = f(x)`, and returns a NumPy function. Here, `f` is an arbitrary Python expression that can use NumPy functions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "_numpy_namespace = {n: getattr(np, n) \n", + " for n in dir(np)}\n", + "def _parse_function(code):\n", + " \"\"\"Return a NumPy function from a string 'y=f(x)'.\"\"\"\n", + " return lambda x: eval(code.split('=')[1].strip(),\n", + " _numpy_namespace, {'x': x})```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. For our new wrapper kernel, we create a class deriving from `Kernel`. There are a few metadata fields we need to provide." + ] + }, { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 1.6. Creating a simple kernel for IPython" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This recipe has been tested on the development version of IPython 3. It should work on the final version of IPython 3 with no or minimal changes. We give all references about wrapper kernels and messaging protocols at the end of this recipe." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Besides, the code given here works with Python 3. It can be ported to Python 2 with minimal efforts." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile plotkernel.py\n", - "# NOTE: We create the `plotkernel.py` file here so that \n", - "# you don't have to do it...\n", - "from IPython.kernel.zmq.kernelbase import Kernel\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from io import BytesIO\n", - "import urllib, base64\n", - "\n", - "def _to_png(fig):\n", - " \"\"\"Return a base64-encoded PNG from a \n", - " matplotlib figure.\"\"\"\n", - " imgdata = BytesIO()\n", - " fig.savefig(imgdata, format='png')\n", - " imgdata.seek(0)\n", - " return urllib.parse.quote(\n", - " base64.b64encode(imgdata.getvalue()))\n", - "\n", - "_numpy_namespace = {n: getattr(np, n) \n", - " for n in dir(np)}\n", - "def _parse_function(code):\n", - " \"\"\"Return a NumPy function from a string 'y=f(x)'.\"\"\"\n", - " return lambda x: eval(code.split('=')[1].strip(),\n", - " _numpy_namespace, {'x': x})\n", - "\n", - "class PlotKernel(Kernel):\n", - " implementation = 'Plot'\n", - " implementation_version = '1.0'\n", - " language = 'python' # will be used for\n", - " # syntax highlighting\n", - " language_version = ''\n", - " banner = \"Simple plotting\"\n", - " \n", - " def do_execute(self, code, silent,\n", - " store_history=True,\n", - " user_expressions=None,\n", - " allow_stdin=False):\n", - "\n", - " # We create the plot with matplotlib.\n", - " fig = plt.figure(figsize=(6,4), dpi=100)\n", - " x = np.linspace(-5., 5., 200)\n", - " functions = code.split('\\n')\n", - " for fun in functions:\n", - " f = _parse_function(fun)\n", - " y = f(x)\n", - " plt.plot(x, y)\n", - " plt.xlim(-5, 5)\n", - "\n", - " # We create a PNG out of this plot.\n", - " png = _to_png(fig)\n", - "\n", - " if not silent:\n", - " # We send the standard output to the client.\n", - " self.send_response(self.iopub_socket,\n", - " 'stream', {\n", - " 'name': 'stdout', \n", - " 'data': 'Plotting {n} function(s)'. \\\n", - " format(n=len(functions))})\n", - "\n", - " # We prepare the response with our rich data\n", - " # (the plot).\n", - " content = {\n", - " 'source': 'kernel',\n", - "\n", - " # This dictionary may contain different\n", - " # MIME representations of the output.\n", - " 'data': {\n", - " 'image/png': png\n", - " },\n", - "\n", - " # We can specify the image size\n", - " # in the metadata field.\n", - " 'metadata' : {\n", - " 'image/png' : {\n", - " 'width': 600,\n", - " 'height': 400\n", - " }\n", - " }\n", - " } \n", - "\n", - " # We send the display_data message with the\n", - " # contents.\n", - " self.send_response(self.iopub_socket,\n", - " 'display_data', content)\n", - "\n", - " # We return the exection results.\n", - " return {'status': 'ok',\n", - " 'execution_count': self.execution_count,\n", - " 'payload': [],\n", - " 'user_expressions': {},\n", - " }\n", - "\n", - "if __name__ == '__main__':\n", - " from IPython.kernel.zmq.kernelapp import IPKernelApp\n", - " IPKernelApp.launch_instance(kernel_class=PlotKernel)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. First, we create a file `plotkernel.py`. This file will contain the implementation of our custom kernel. Let's import a few modules." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "from IPython.kernel.zmq.kernelbase import Kernel\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from io import BytesIO\n", - "import urllib, base64```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. We write a function that returns a PNG base64-encoded representation of a matplotlib figure." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "def _to_png(fig):\n", - " \"\"\"Return a base64-encoded PNG from a \n", - " matplotlib figure.\"\"\"\n", - " imgdata = BytesIO()\n", - " fig.savefig(imgdata, format='png')\n", - " imgdata.seek(0)\n", - " return urllib.parse.quote(\n", - " base64.b64encode(imgdata.getvalue()))```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. Now, we write a function that parses a code string which has the form `y = f(x)`, and returns a NumPy function. Here, `f` is an arbitrary Python expression that can use NumPy functions." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "_numpy_namespace = {n: getattr(np, n) \n", - " for n in dir(np)}\n", - "def _parse_function(code):\n", - " \"\"\"Return a NumPy function from a string 'y=f(x)'.\"\"\"\n", - " return lambda x: eval(code.split('=')[1].strip(),\n", - " _numpy_namespace, {'x': x})```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. For our new wrapper kernel, we create a class deriving from `Kernel`. There are a few metadata fields we need to provide." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "class PlotKernel(Kernel):\n", - " implementation = 'Plot'\n", - " implementation_version = '1.0'\n", - " language = 'python' # will be used for\n", - " # syntax highlighting\n", - " language_version = ''\n", - " banner = \"Simple plotting\"\n", - " ```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. In this class, we implement a `do_execute()` method that takes code as input, and sends responses to the client." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "def do_execute(self, code, silent,\n", - " store_history=True,\n", - " user_expressions=None,\n", - " allow_stdin=False):\n", - "\n", - " # We create the plot with matplotlib.\n", - " fig = plt.figure(figsize=(6,4), dpi=100)\n", - " x = np.linspace(-5., 5., 200)\n", - " functions = code.split('\\n')\n", - " for fun in functions:\n", - " f = _parse_function(fun)\n", - " y = f(x)\n", - " plt.plot(x, y)\n", - " plt.xlim(-5, 5)\n", - "\n", - " # We create a PNG out of this plot.\n", - " png = _to_png(fig)\n", - "\n", - " if not silent:\n", - " # We send the standard output to the client.\n", - " self.send_response(self.iopub_socket,\n", - " 'stream', {\n", - " 'name': 'stdout', \n", - " 'data': 'Plotting {n} function(s)'. \\\n", - " format(n=len(functions))})\n", - "\n", - " # We prepare the response with our rich data\n", - " # (the plot).\n", - " content = {\n", - " 'source': 'kernel',\n", - "\n", - " # This dictionary may contain different\n", - " # MIME representations of the output.\n", - " 'data': {\n", - " 'image/png': png\n", - " },\n", - "\n", - " # We can specify the image size\n", - " # in the metadata field.\n", - " 'metadata' : {\n", - " 'image/png' : {\n", - " 'width': 600,\n", - " 'height': 400\n", - " }\n", - " }\n", - " } \n", - "\n", - " # We send the display_data message with the\n", - " # contents.\n", - " self.send_response(self.iopub_socket,\n", - " 'display_data', content)\n", - "\n", - " # We return the exection results.\n", - " return {'status': 'ok',\n", - " 'execution_count': self.execution_count,\n", - " 'payload': [],\n", - " 'user_expressions': {},\n", - " }```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. Finally, we add the following lines at the end of the file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "if __name__ == '__main__':\n", - " from IPython.kernel.zmq.kernelapp import IPKernelApp\n", - " IPKernelApp.launch_instance(kernel_class=PlotKernel)```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. Our kernel is ready! The next step is to indicate to IPython that this new kernel is available. To do this, we need to create a **kernel spec** `kernel.json` file and put it in `~/.ipython/kernels/plot/`. This file contains the following lines:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "{\n", - " \"argv\": [\"python\", \"-m\",\n", - " \"plotkernel\", \"-f\",\n", - " \"{connection_file}\"],\n", - " \"display_name\": \"Plot\",\n", - " \"language\": \"python\"\n", - "}```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `plotkernel.py` file needs to be importable by Python. For example, you could simply put it in the current directory." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. In IPython 3, you can launch a notebook with this kernel from the IPython notebook dashboard. However, this feature is not available at the time of writing. An alternative (that is probably going to be deprecated by the time IPython 3 is released) is to run the following command in a terminal:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "```\n", - "ipython notebook --KernelManager.kernel_cmd=\"['python', '-m', 'plotkernel', '-f', '{connection_file}']\"\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "9. Finally, in a new notebook backed by our custom plot kernel, we can simply write mathematical equations `y=f(x)`. The corresponding graph appears in the output area." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "class PlotKernel(Kernel):\n", + " implementation = 'Plot'\n", + " implementation_version = '1.0'\n", + " language = 'python' # will be used for\n", + " # syntax highlighting\n", + " language_version = ''\n", + " banner = \"Simple plotting\"\n", + " ```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. In this class, we implement a `do_execute()` method that takes code as input, and sends responses to the client." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "def do_execute(self, code, silent,\n", + " store_history=True,\n", + " user_expressions=None,\n", + " allow_stdin=False):\n", + "\n", + " # We create the plot with matplotlib.\n", + " fig = plt.figure(figsize=(6,4), dpi=100)\n", + " x = np.linspace(-5., 5., 200)\n", + " functions = code.split('\\n')\n", + " for fun in functions:\n", + " f = _parse_function(fun)\n", + " y = f(x)\n", + " plt.plot(x, y)\n", + " plt.xlim(-5, 5)\n", + "\n", + " # We create a PNG out of this plot.\n", + " png = _to_png(fig)\n", + "\n", + " if not silent:\n", + " # We send the standard output to the client.\n", + " self.send_response(self.iopub_socket,\n", + " 'stream', {\n", + " 'name': 'stdout', \n", + " 'data': 'Plotting {n} function(s)'. \\\n", + " format(n=len(functions))})\n", + "\n", + " # We prepare the response with our rich data\n", + " # (the plot).\n", + " content = {\n", + " 'source': 'kernel',\n", + "\n", + " # This dictionary may contain different\n", + " # MIME representations of the output.\n", + " 'data': {\n", + " 'image/png': png\n", + " },\n", + "\n", + " # We can specify the image size\n", + " # in the metadata field.\n", + " 'metadata' : {\n", + " 'image/png' : {\n", + " 'width': 600,\n", + " 'height': 400\n", + " }\n", + " }\n", + " } \n", + "\n", + " # We send the display_data message with the\n", + " # contents.\n", + " self.send_response(self.iopub_socket,\n", + " 'display_data', content)\n", + "\n", + " # We return the exection results.\n", + " return {'status': 'ok',\n", + " 'execution_count': self.execution_count,\n", + " 'payload': [],\n", + " 'user_expressions': {},\n", + " }```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. Finally, we add the following lines at the end of the file." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "if __name__ == '__main__':\n", + " from IPython.kernel.zmq.kernelapp import IPKernelApp\n", + " IPKernelApp.launch_instance(kernel_class=PlotKernel)```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. Our kernel is ready! The next step is to indicate to IPython that this new kernel is available. To do this, we need to create a **kernel spec** `kernel.json` file and put it in `~/.ipython/kernels/plot/`. This file contains the following lines:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "{\n", + " \"argv\": [\"python\", \"-m\",\n", + " \"plotkernel\", \"-f\",\n", + " \"{connection_file}\"],\n", + " \"display_name\": \"Plot\",\n", + " \"language\": \"python\"\n", + "}```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `plotkernel.py` file needs to be importable by Python. For example, you could simply put it in the current directory." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. In IPython 3, you can launch a notebook with this kernel from the IPython notebook dashboard. However, this feature is not available at the time of writing. An alternative (that is probably going to be deprecated by the time IPython 3 is released) is to run the following command in a terminal:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "ipython notebook --KernelManager.kernel_cmd=\"['python', '-m', 'plotkernel', '-f', '{connection_file}']\"\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. Finally, in a new notebook backed by our custom plot kernel, we can simply write mathematical equations `y=f(x)`. The corresponding graph appears in the output area." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] } - ] -} \ No newline at end of file + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter02_best_practices/07_unittests.ipynb b/notebooks/chapter02_best_practices/07_unittests.ipynb index 74ad935..d36c246 100644 --- a/notebooks/chapter02_best_practices/07_unittests.ipynb +++ b/notebooks/chapter02_best_practices/07_unittests.ipynb @@ -1,237 +1,254 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:83e2a48a856f0b98d5d3f1f0d52c9220748d897d8e6aa8e20426f03f4f3e806e" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": [], - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 2.7. Writing unit tests with nose\n", - "\n", - "**This is the Python 3 version of the recipe.**\n", - "\n", - "Although Python has a native unit testing module (unittest), we will rather use Nose which is more convenient and more powerful. Having an extra dependency is not a problem as the Nose package is only required to launch the test suite, and not to use the software itself." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Creation of the Python module" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile datautils.py\n", - "# Version 1.\n", - "import os\n", - "from urllib.request import urlopen # Python 2: use urllib2\n", - "\n", - "def download(url):\n", - " \"\"\"Download a file and save it in the current folder.\n", - " Return the name of the downloaded file.\"\"\"\n", - " # Get the filename.\n", - " file = os.path.basename(url)\n", - " # Download the file unless it already exists.\n", - " if not os.path.exists(file):\n", - " with open(file, 'w') as f:\n", - " f.write(urlopen(url).read())\n", - " return file" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Creation of the test module" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile test_datautils.py\n", - "from urllib.request import (HTTPHandler, install_opener, \n", - " build_opener, addinfourl)\n", - "import os\n", - "import shutil\n", - "import tempfile\n", - "from io import StringIO # Python 2: use StringIO\n", - "from datautils import download\n", - "\n", - "TEST_FOLDER = tempfile.mkdtemp()\n", - "ORIGINAL_FOLDER = os.getcwd()\n", - "\n", - "class TestHTTPHandler(HTTPHandler):\n", - " \"\"\"Mock HTTP handler.\"\"\"\n", - " def http_open(self, req):\n", - " resp = addinfourl(http://github.com/StringIO('test'), '', req.get_full_url(), 200)\n", - " resp.msg = 'OK'\n", - " return resp\n", - " \n", - "def setup():\n", - " \"\"\"Install the mock HTTP handler for unit tests.\"\"\"\n", - " install_opener(build_opener(TestHTTPHandler))\n", - " os.chdir(TEST_FOLDER)\n", - " \n", - "def teardown():\n", - " \"\"\"Restore the normal HTTP handler.\"\"\"\n", - " install_opener(build_opener(HTTPHandler))\n", - " # Go back to the original folder.\n", - " os.chdir(ORIGINAL_FOLDER)\n", - " # Delete the test folder.\n", - " shutil.rmtree(TEST_FOLDER)\n", - "\n", - "def test_download1():\n", - " file = download(\"http://example.com/file.txt/")\n", - " # Check that the file has been downloaded.\n", - " assert os.path.exists(file)\n", - " # Check that the file contains the contents of the remote file.\n", - " with open(file, 'r') as f:\n", - " contents = f.read()\n", - " print(contents)\n", - " assert contents == 'test'" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Launching the tests" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!nosetests" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding a failing test" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let's add a new test." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile test_datautils.py -a\n", - "\n", - "def test_download2():\n", - " file = download(\"http://example.com//")\n", - " assert os.path.exists(file)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!nosetests" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing the failing test" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The new test fails because the filename cannot be inferred from the URL, so we need to handle this case." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile datautils.py\n", - "# Version 2.\n", - "import os\n", - "from urllib.request import urlopen # Python 2: use urllib2\n", - "\n", - "def download(url):\n", - " \"\"\"Download a file and save it in the current folder.\n", - " Return the name of the downloaded file.\"\"\"\n", - " # Get the filename.\n", - " file = os.path.basename(url)\n", - " # Fix the bug, by specifying a fixed filename if the URL \n", - " # does not contain one.\n", - " if not file:\n", - " file = 'downloaded'\n", - " # Download the file unless it already exists.\n", - " if not os.path.exists(file):\n", - " with open(file, 'w') as f:\n", - " f.write(urlopen(url).read())\n", - " return file" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!nosetests" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2.7. Writing unit tests with nose\n", + "\n", + "**This is the Python 3 version of the recipe.**\n", + "\n", + "Although Python has a native unit testing module (unittest), we will rather use Nose which is more convenient and more powerful. Having an extra dependency is not a problem as the Nose package is only required to launch the test suite, and not to use the software itself." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creation of the Python module" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile datautils.py\n", + "# Version 1.\n", + "import os\n", + "from urllib.request import urlopen # Python 2: use urllib2\n", + "\n", + "def download(url):\n", + " \"\"\"Download a file and save it in the current folder.\n", + " Return the name of the downloaded file.\"\"\"\n", + " # Get the filename.\n", + " file = os.path.basename(url)\n", + " # Download the file unless it already exists.\n", + " if not os.path.exists(file):\n", + " with open(file, 'w') as f:\n", + " f.write(urlopen(url).read())\n", + " return file" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creation of the test module" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile test_datautils.py\n", + "from urllib.request import (HTTPHandler, install_opener, \n", + " build_opener, addinfourl)\n", + "import os\n", + "import shutil\n", + "import tempfile\n", + "from io import StringIO # Python 2: use StringIO\n", + "from datautils import download\n", + "\n", + "TEST_FOLDER = tempfile.mkdtemp()\n", + "ORIGINAL_FOLDER = os.getcwd()\n", + "\n", + "class TestHTTPHandler(HTTPHandler):\n", + " \"\"\"Mock HTTP handler.\"\"\"\n", + " def http_open(self, req):\n", + " resp = addinfourl(http://github.com/StringIO('test'), '', req.get_full_url(), 200)\n", + " resp.msg = 'OK'\n", + " return resp\n", + " \n", + "def setup():\n", + " \"\"\"Install the mock HTTP handler for unit tests.\"\"\"\n", + " install_opener(build_opener(TestHTTPHandler))\n", + " os.chdir(TEST_FOLDER)\n", + " \n", + "def teardown():\n", + " \"\"\"Restore the normal HTTP handler.\"\"\"\n", + " install_opener(build_opener(HTTPHandler))\n", + " # Go back to the original folder.\n", + " os.chdir(ORIGINAL_FOLDER)\n", + " # Delete the test folder.\n", + " shutil.rmtree(TEST_FOLDER)\n", + "\n", + "def test_download1():\n", + " file = download(\"http://example.com/file.txt/")\n", + " # Check that the file has been downloaded.\n", + " assert os.path.exists(file)\n", + " # Check that the file contains the contents of the remote file.\n", + " with open(file, 'r') as f:\n", + " contents = f.read()\n", + " print(contents)\n", + " assert contents == 'test'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launching the tests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "!nosetests" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding a failing test" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's add a new test." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile test_datautils.py -a\n", + "\n", + "def test_download2():\n", + " file = download(\"http://example.com//")\n", + " assert os.path.exists(file)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "!nosetests" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing the failing test" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The new test fails because the filename cannot be inferred from the URL, so we need to handle this case." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile datautils.py\n", + "# Version 2.\n", + "import os\n", + "from urllib.request import urlopen # Python 2: use urllib2\n", + "\n", + "def download(url):\n", + " \"\"\"Download a file and save it in the current folder.\n", + " Return the name of the downloaded file.\"\"\"\n", + " # Get the filename.\n", + " file = os.path.basename(url)\n", + " # Fix the bug, by specifying a fixed filename if the URL \n", + " # does not contain one.\n", + " if not file:\n", + " file = 'downloaded'\n", + " # Download the file unless it already exists.\n", + " if not os.path.exists(file):\n", + " with open(file, 'w') as f:\n", + " f.write(urlopen(url).read())\n", + " return file" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "!nosetests" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter02_best_practices/07_unittests_py2.ipynb b/notebooks/chapter02_best_practices/07_unittests_py2.ipynb index 8357c64..9b26f2d 100644 --- a/notebooks/chapter02_best_practices/07_unittests_py2.ipynb +++ b/notebooks/chapter02_best_practices/07_unittests_py2.ipynb @@ -1,237 +1,254 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:4901b09e79a6d5f42d2df354514f3a8ce34d56d27217a7e0912a911b4e0d9b7d" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": [], - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 2.7. Writing unit tests with nose\n", - "\n", - "**This is the Python 2 version of the recipe.**\n", - "\n", - "Although Python has a native unit testing module (unittest), we will rather use Nose which is more convenient and more powerful. Having an extra dependency is not a problem as the Nose package is only required to launch the test suite, and not to use the software itself." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Creation of the Python module" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile datautils.py\n", - "# Version 1.\n", - "import os\n", - "from urllib2 import urlopen # Python 3: use urllib.request\n", - "\n", - "def download(url):\n", - " \"\"\"Download a file and save it in the current folder.\n", - " Return the name of the downloaded file.\"\"\"\n", - " # Get the filename.\n", - " file = os.path.basename(url)\n", - " # Download the file unless it already exists.\n", - " if not os.path.exists(file):\n", - " with open(file, 'w') as f:\n", - " f.write(urlopen(url).read())\n", - " return file" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Creation of the test module" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile test_datautils.py\n", - "from urllib2 import (HTTPHandler, install_opener, \n", - " build_opener, addinfourl)\n", - "import os\n", - "import shutil\n", - "import tempfile\n", - "from StringIO import StringIO # Python 3: use io\n", - "from datautils import download\n", - "\n", - "TEST_FOLDER = tempfile.mkdtemp()\n", - "ORIGINAL_FOLDER = os.getcwd()\n", - "\n", - "class TestHTTPHandler(HTTPHandler):\n", - " \"\"\"Mock HTTP handler.\"\"\"\n", - " def http_open(self, req):\n", - " resp = addinfourl(http://github.com/StringIO('test'), '', req.get_full_url(), 200)\n", - " resp.msg = 'OK'\n", - " return resp\n", - " \n", - "def setup():\n", - " \"\"\"Install the mock HTTP handler for unit tests.\"\"\"\n", - " install_opener(build_opener(TestHTTPHandler))\n", - " os.chdir(TEST_FOLDER)\n", - " \n", - "def teardown():\n", - " \"\"\"Restore the normal HTTP handler.\"\"\"\n", - " install_opener(build_opener(HTTPHandler))\n", - " # Go back to the original folder.\n", - " os.chdir(ORIGINAL_FOLDER)\n", - " # Delete the test folder.\n", - " shutil.rmtree(TEST_FOLDER)\n", - "\n", - "def test_download1():\n", - " file = download(\"http://example.com/file.txt/")\n", - " # Check that the file has been downloaded.\n", - " assert os.path.exists(file)\n", - " # Check that the file contains the contents of the remote file.\n", - " with open(file, 'r') as f:\n", - " contents = f.read()\n", - " print(contents)\n", - " assert contents == 'test'" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Launching the tests" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!nosetests" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding a failing test" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let's add a new test." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile test_datautils.py -a\n", - "\n", - "def test_download2():\n", - " file = download(\"http://example.com//")\n", - " assert os.path.exists(file)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!nosetests" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing the failing test" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The new test fails because the filename cannot be inferred from the URL, so we need to handle this case." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%writefile datautils.py\n", - "# Version 2.\n", - "import os\n", - "from urllib2 import urlopen # Python 3: use urllib.request\n", - "\n", - "def download(url):\n", - " \"\"\"Download a file and save it in the current folder.\n", - " Return the name of the downloaded file.\"\"\"\n", - " # Get the filename.\n", - " file = os.path.basename(url)\n", - " # Fix the bug, by specifying a fixed filename if the URL \n", - " # does not contain one.\n", - " if not file:\n", - " file = 'downloaded'\n", - " # Download the file unless it already exists.\n", - " if not os.path.exists(file):\n", - " with open(file, 'w') as f:\n", - " f.write(urlopen(url).read())\n", - " return file" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!nosetests" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2.7. Writing unit tests with nose\n", + "\n", + "**This is the Python 2 version of the recipe.**\n", + "\n", + "Although Python has a native unit testing module (unittest), we will rather use Nose which is more convenient and more powerful. Having an extra dependency is not a problem as the Nose package is only required to launch the test suite, and not to use the software itself." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creation of the Python module" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile datautils.py\n", + "# Version 1.\n", + "import os\n", + "from urllib2 import urlopen # Python 3: use urllib.request\n", + "\n", + "def download(url):\n", + " \"\"\"Download a file and save it in the current folder.\n", + " Return the name of the downloaded file.\"\"\"\n", + " # Get the filename.\n", + " file = os.path.basename(url)\n", + " # Download the file unless it already exists.\n", + " if not os.path.exists(file):\n", + " with open(file, 'w') as f:\n", + " f.write(urlopen(url).read())\n", + " return file" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creation of the test module" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile test_datautils.py\n", + "from urllib2 import (HTTPHandler, install_opener, \n", + " build_opener, addinfourl)\n", + "import os\n", + "import shutil\n", + "import tempfile\n", + "from StringIO import StringIO # Python 3: use io\n", + "from datautils import download\n", + "\n", + "TEST_FOLDER = tempfile.mkdtemp()\n", + "ORIGINAL_FOLDER = os.getcwd()\n", + "\n", + "class TestHTTPHandler(HTTPHandler):\n", + " \"\"\"Mock HTTP handler.\"\"\"\n", + " def http_open(self, req):\n", + " resp = addinfourl(http://github.com/StringIO('test'), '', req.get_full_url(), 200)\n", + " resp.msg = 'OK'\n", + " return resp\n", + " \n", + "def setup():\n", + " \"\"\"Install the mock HTTP handler for unit tests.\"\"\"\n", + " install_opener(build_opener(TestHTTPHandler))\n", + " os.chdir(TEST_FOLDER)\n", + " \n", + "def teardown():\n", + " \"\"\"Restore the normal HTTP handler.\"\"\"\n", + " install_opener(build_opener(HTTPHandler))\n", + " # Go back to the original folder.\n", + " os.chdir(ORIGINAL_FOLDER)\n", + " # Delete the test folder.\n", + " shutil.rmtree(TEST_FOLDER)\n", + "\n", + "def test_download1():\n", + " file = download(\"http://example.com/file.txt/")\n", + " # Check that the file has been downloaded.\n", + " assert os.path.exists(file)\n", + " # Check that the file contains the contents of the remote file.\n", + " with open(file, 'r') as f:\n", + " contents = f.read()\n", + " print(contents)\n", + " assert contents == 'test'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launching the tests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "!nosetests" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding a failing test" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's add a new test." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile test_datautils.py -a\n", + "\n", + "def test_download2():\n", + " file = download(\"http://example.com//")\n", + " assert os.path.exists(file)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "!nosetests" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing the failing test" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The new test fails because the filename cannot be inferred from the URL, so we need to handle this case." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%writefile datautils.py\n", + "# Version 2.\n", + "import os\n", + "from urllib2 import urlopen # Python 3: use urllib.request\n", + "\n", + "def download(url):\n", + " \"\"\"Download a file and save it in the current folder.\n", + " Return the name of the downloaded file.\"\"\"\n", + " # Get the filename.\n", + " file = os.path.basename(url)\n", + " # Fix the bug, by specifying a fixed filename if the URL \n", + " # does not contain one.\n", + " if not file:\n", + " file = 'downloaded'\n", + " # Download the file unless it already exists.\n", + " if not os.path.exists(file):\n", + " with open(file, 'w') as f:\n", + " f.write(urlopen(url).read())\n", + " return file" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "!nosetests" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter03_notebook/01_blocks.ipynb b/notebooks/chapter03_notebook/01_blocks.ipynb index 77d41b5..672c5c5 100644 --- a/notebooks/chapter03_notebook/01_blocks.ipynb +++ b/notebooks/chapter03_notebook/01_blocks.ipynb @@ -1,229 +1,246 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:b44d369e91f4f5407b1530ba655a5ff3223997e5b667333ff105a5dc2dd71ef9" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": [], - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 3.1. Teaching programming in the notebook with IPython blocks" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You need to install ipythonblocks for this recipe. You can just type in a terminal `pip install ipythonblocks`. Note that you can also execute this shell command from the IPython notebook by prefixing this command with `!`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!pip install ipythonblocks" - ], - "language": "python", - "metadata": { - "strip_output": [ - 0, - 3 - ] - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For the last part of this recipe, you also need to install Pillow: you will find more instructions in Chapter 11. (http://python-imaging.github.io)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, you need to download the *Portrait* image on the [book's website](http://ipython-books.github.io) and extract it in the current directory. You can also play with your own images!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. First, we import some modules." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import time\n", - "from IPython.display import clear_output\n", - "from ipythonblocks import BlockGrid, colors" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. Now, we create a **block grid** with 5 columns and 5 rows, and we fill each block in purple." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "grid = BlockGrid(width=5, height=5, fill=colors['Purple'])\n", - "grid.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. We can access individual blocks with 2D indexing. This illustrates the indexing syntax in Python. We can also access an entire row or line with `:` (colon). Each block is represented by an RGB color. The library comes with a handy dictionary of colors, assigning RGB tuples to standard color names." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "grid[0,0] = colors['Lime']\n", - "grid[-1,0] = colors['Lime']\n", - "grid[:,-1] = colors['Lime']\n", - "grid.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. Now, we are going to illustrate **matrix multiplication**, a fundamental notion in linear algebra. We will represent two $(n,n)$ matrices $A$ (in cyan) and $B$ (lime) aligned with $C=A \\cdot B$ (yellow). To do this, we use a small trick consisting in creating a big white grid of size $(2n+1,2n+1)$. The matrices $A$, $B$ and $C$ are just *views* on parts of the grid." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "n = 5\n", - "grid = BlockGrid(width=2*n+1, \n", - " height=2*n+1, \n", - " fill=colors['White'])\n", - "A = grid[n+1:,:n]\n", - "B = grid[:n,n+1:]\n", - "C = grid[n+1:,n+1:]\n", - "A[:,:] = colors['Cyan']\n", - "B[:,:] = colors['Lime']\n", - "C[:,:] = colors['Yellow']\n", - "grid.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Let's turn to matrix multiplication itself. We perform a loop over all rows and columns, and we highlight the corresponding rows and columns in $A$ and $B$ that are multiplied together during the matrix product. We combine IPython's `clear_output()` method with `grid.show()` and `time.sleep()` (pause) to implement the animation." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for i in range(n):\n", - " for j in range(n):\n", - " # We reset the matrix colors.\n", - " A[:,:] = colors['Cyan']\n", - " B[:,:] = colors['Lime']\n", - " C[:,:] = colors['Yellow']\n", - " # We highlight the adequate rows\n", - " # and columns in red.\n", - " A[i,:] = colors['Red']\n", - " B[:,j] = colors['Red']\n", - " C[i,j] = colors['Red']\n", - " # We animate the grid in the loop.\n", - " clear_output()\n", - " grid.show()\n", - " time.sleep(.25)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. Finally, we will display an image with IPython blocks. We import the JPG image with `Image.open()` and we retrieve the data with `getdata()`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from PIL import Image\n", - "imdata = Image.open('data/photo.jpg').getdata()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we can create a `BlockGrid` with the appropriate number of rows and columns, and set each block's color to the corresponding pixel's color in the image. We use a small block size, and we remove the lines between the blocks." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "rows, cols = imdata.size\n", - "grid = BlockGrid(width=rows, height=cols,\n", - " block_size=4, lines_on=False)\n", - "for block, rgb in zip(grid, imdata):\n", - " block.rgb = rgb\n", - "grid.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", - "\n", - "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 3.1. Teaching programming in the notebook with IPython blocks" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You need to install ipythonblocks for this recipe. You can just type in a terminal `pip install ipythonblocks`. Note that you can also execute this shell command from the IPython notebook by prefixing this command with `!`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "strip_output": [ + 0, + 3 + ] + }, + "outputs": [], + "source": [ + "!pip install ipythonblocks" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the last part of this recipe, you also need to install Pillow: you will find more instructions in Chapter 11. (http://python-imaging.github.io)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, you need to download the *Portrait* image on the [book's website](http://ipython-books.github.io) and extract it in the current directory. You can also play with your own images!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. First, we import some modules." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import time\n", + "from IPython.display import clear_output\n", + "from ipythonblocks import BlockGrid, colors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Now, we create a **block grid** with 5 columns and 5 rows, and we fill each block in purple." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "grid = BlockGrid(width=5, height=5, fill=colors['Purple'])\n", + "grid.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. We can access individual blocks with 2D indexing. This illustrates the indexing syntax in Python. We can also access an entire row or line with `:` (colon). Each block is represented by an RGB color. The library comes with a handy dictionary of colors, assigning RGB tuples to standard color names." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "grid[0,0] = colors['Lime']\n", + "grid[-1,0] = colors['Lime']\n", + "grid[:,-1] = colors['Lime']\n", + "grid.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. Now, we are going to illustrate **matrix multiplication**, a fundamental notion in linear algebra. We will represent two $(n,n)$ matrices $A$ (in cyan) and $B$ (lime) aligned with $C=A \\cdot B$ (yellow). To do this, we use a small trick consisting in creating a big white grid of size $(2n+1,2n+1)$. The matrices $A$, $B$ and $C$ are just *views* on parts of the grid." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "n = 5\n", + "grid = BlockGrid(width=2*n+1, \n", + " height=2*n+1, \n", + " fill=colors['White'])\n", + "A = grid[n+1:,:n]\n", + "B = grid[:n,n+1:]\n", + "C = grid[n+1:,n+1:]\n", + "A[:,:] = colors['Cyan']\n", + "B[:,:] = colors['Lime']\n", + "C[:,:] = colors['Yellow']\n", + "grid.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Let's turn to matrix multiplication itself. We perform a loop over all rows and columns, and we highlight the corresponding rows and columns in $A$ and $B$ that are multiplied together during the matrix product. We combine IPython's `clear_output()` method with `grid.show()` and `time.sleep()` (pause) to implement the animation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "for i in range(n):\n", + " for j in range(n):\n", + " # We reset the matrix colors.\n", + " A[:,:] = colors['Cyan']\n", + " B[:,:] = colors['Lime']\n", + " C[:,:] = colors['Yellow']\n", + " # We highlight the adequate rows\n", + " # and columns in red.\n", + " A[i,:] = colors['Red']\n", + " B[:,j] = colors['Red']\n", + " C[i,j] = colors['Red']\n", + " # We animate the grid in the loop.\n", + " clear_output()\n", + " grid.show()\n", + " time.sleep(.25)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. Finally, we will display an image with IPython blocks. We import the JPG image with `Image.open()` and we retrieve the data with `getdata()`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from PIL import Image\n", + "imdata = Image.open('data/photo.jpg').getdata()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can create a `BlockGrid` with the appropriate number of rows and columns, and set each block's color to the corresponding pixel's color in the image. We use a small block size, and we remove the lines between the blocks." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rows, cols = imdata.size\n", + "grid = BlockGrid(width=rows, height=cols,\n", + " block_size=4, lines_on=False)\n", + "for block, rgb in zip(grid, imdata):\n", + " block.rgb = rgb\n", + "grid.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> You'll find all the explanations, figures, references, and much more in the book (to be released later this summer).\n", + "\n", + "> [IPython Cookbook](http://ipython-books.github.io/), by [Cyrille Rossant](http://cyrille.rossant.net), Packt Publishing, 2014 (500 pages)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/chapter03_notebook/02_nbformat.ipynb b/notebooks/chapter03_notebook/02_nbformat.ipynb index 45562de..2054450 100644 --- a/notebooks/chapter03_notebook/02_nbformat.ipynb +++ b/notebooks/chapter03_notebook/02_nbformat.ipynb @@ -1,296 +1,318 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:4b556d3403cc34a2464d1888d46841cb68efaf8135fb3a36cd1a1676c0e535ef" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": [], - "source": [ - "> This is one of the 100 recipes of the [IPython Cookbook](http://ipython-books.github.io/), the definitive guide to high-performance scientific computing and data science in Python.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 3.2. Converting an IPython notebook to other formats with nbconvert" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You need pandoc, a LateX distribution, and the Notebook dataset on the book's website. On Windows, you also need pywin32 (`conda install pywin32` if you use Anaconda)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Let's open the test notebook in the `data` folder. A notebook is just a plain text file (JSON), so we open it in text mode (`r` mode)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "with open('data/test.ipynb', 'r') as f:\n", - " contents = f.read()\n", - "print(len(contents))" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(contents[:345] + '...' + contents[-33:])" - ], - "language": "python", - "metadata": { - "strip_output": [ - 10, - 10 - ] - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. Now that we have loaded the notebook as a string, let's parse it with the `json` module." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import json\n", - "nb = json.loads(contents)" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. Let's have a look at the keys in the notebook dictionary." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(nb.keys())\n", - "print('nbformat ' + str(nb['nbformat']) + \n", - " '.' + str(nb['nbformat_minor']))" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The version of the notebook format is indicated in `nbformat` and `nbformat_minor`." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. The main field is `worksheets`: there is only one by default. A worksheet contains a list of cells, and some metadata." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nb['worksheets'][0].keys()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "4. Each cell has a type, optional metadata, some contents (text or code), possibly one or several outputs, and other information. Let's look at a Markdown cell and a code cell." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nb['worksheets'][0]['cells'][1]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "nb['worksheets'][0]['cells'][2]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "5. Once parsed, the notebook is represented as a Python dictionary. Manipulating it is therefore quite convenient in Python. Here, we count the number of Markdown and code cells." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "cells = nb['worksheets'][0]['cells']\n", - "nm = len([cell for cell in cells\n", - " if cell['cell_type'] == 'markdown'])\n", - "nc = len([cell for cell in cells\n", - " if cell['cell_type'] == 'code'])\n", - "print((\"There are {nm} Markdown cells and \"\n", - " \"{nc} code cells.\").format(\n", - " nm=nm, nc=nc))" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "6. Let's have a closer look at the image output of the cell with the matplotlib figure." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "png = cells[2]['outputs'][0]['png']\n", - "cells[2]['outputs'][0]['png'] = png[:20] + '...' + png[-20:]\n", - "cells[2]['outputs'][0]" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In general, there can be zero, one, or multiple outputs. Besides, each output can have multiple representations. Here, the matplotlib figure has a PNG representation (the base64-encoded image) and a text representation (the internal representation of the figure)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "7. Now, we are going to use nbconvert to convert our text notebook to other formats. This tool can be used from the command-line. Note that the API of nbconvert may change in future versions. Here, we convert the notebook to an HTML document." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "!ipython nbconvert --to html data/test.ipynb" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "8. Let's display this document in an `