Added SciPy/NumPy/Matplotlib examples

Added a few more examples for each package, and moved them to the
preface to improve the flow of the g-h chapter.
This commit is contained in:
Roger Labbe committed 2018-01-01 14:16:39 -08:00
1 parent d0f6aeb4d7
commit 44c280f65b
2 files changed
+927 -489

No files matched your search

+853 -1
View File
@@ -25,7 +25,245 @@
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
"@import url('http://fonts.googleapis.com/css?family=Source+Code+Pro');\n",
"@import url('http://fonts.googleapis.com/css?family=Lora');\n",
"\n",
".CodeMirror pre {\n",
" font-family: 'Source Code Pro', Consolas, monocco, monospace;\n",
"}\n",
" div.cell{\n",
" //width: 950px;\n",
" margin-left: 0% !important;\n",
" margin-right: auto;\n",
" }\n",
" div.text_cell_render{\n",
" font-family: 'Lora';\n",
" line-height: 125%;\n",
" font-size: 100%;\n",
" text-align: justify;\n",
" text-justify:inter-word;\n",
" }\n",
" div.text_cell code {\n",
" background: transparent;\n",
" color: #000000;\n",
" font-weight: 400;\n",
" font-size: 11pt;\n",
" font-family: 'Source Code Pro', Consolas, monocco, monospace;\n",
" }\n",
" h1 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
"\t}\n",
"\n",
" div.input_area {\n",
" background: #F6F6F9;\n",
" border: 1px solid #586e75;\n",
" }\n",
"\n",
" .text_cell_render h1 {\n",
" font-weight: 200;\n",
" font-size: 30pt;\n",
" line-height: 100%;\n",
" color:#c76c0c;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 1em;\n",
" display: block;\n",
" white-space: wrap;\n",
" text-align: left;\n",
" }\n",
" h2 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" text-align: left;\n",
" }\n",
" .text_cell_render h2 {\n",
" font-weight: 200;\n",
" font-size: 16pt;\n",
" font-style: italic;\n",
" line-height: 100%;\n",
" color:#c76c0c;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 1.5em;\n",
" display: block;\n",
" white-space: wrap;\n",
" text-align: left;\n",
" }\n",
" h3 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" }\n",
" .text_cell_render h3 {\n",
" font-weight: 200;\n",
" font-size: 14pt;\n",
" line-height: 100%;\n",
" color:#d77c0c;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 2em;\n",
" display: block;\n",
" white-space: wrap;\n",
" text-align: left;\n",
" }\n",
" h4 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" }\n",
" .text_cell_render h4 {\n",
" font-weight: 100;\n",
" font-size: 14pt;\n",
" color:#d77c0c;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 0.5em;\n",
" display: block;\n",
" white-space: nowrap;\n",
" }\n",
" h5 {\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" }\n",
"\n",
" .text_cell_render h5 {\n",
" font-weight: 200;\n",
" font-style: normal;\n",
" color: #1d3b84;\n",
" font-size: 16pt;\n",
" margin-bottom: 0em;\n",
" margin-top: 0.5em;\n",
" display: block;\n",
" white-space: nowrap;\n",
" }\n",
" div.output_subarea.output_text.output_pyout {\n",
" overflow-x: auto;\n",
" overflow-y: visible;\n",
" max-height: 5000000px;\n",
" }\n",
" div.output_subarea.output_stream.output_stdout.output_text {\n",
" overflow-x: auto;\n",
" overflow-y: visible;\n",
" max-height: 5000000px;\n",
" }\n",
" div.output_wrapper{\n",
" margin-top:0.2em;\n",
" margin-bottom:0.2em;\n",
"}\n",
"\n",
" code{\n",
" font-size: 6pt;\n",
"\n",
" }\n",
" .rendered_html code{\n",
" background-color: transparent;\n",
" }\n",
" ul{\n",
" margin: 2em;\n",
" }\n",
" ul li{\n",
" padding-left: 0.5em;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 0.5em;\n",
" }\n",
" ul li li{\n",
" padding-left: 0.2em;\n",
" margin-bottom: 0.2em;\n",
" margin-top: 0.2em;\n",
" }\n",
" ol{\n",
" margin: 2em;\n",
" }\n",
" ol li{\n",
" padding-left: 0.5em;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 0.5em;\n",
" }\n",
" ul li{\n",
" padding-left: 0.5em;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 0.2em;\n",
" }\n",
" a:link{\n",
" color:#447adb;\n",
" }\n",
" a:visited{\n",
" color: #1d3b84;\n",
" }\n",
" a:hover{\n",
" color: #1d3b84;\n",
" }\n",
" a:focus{\n",
" color:#447adb;\n",
" }\n",
" a:active{\n",
" font-weight: bold;\n",
" color:#447adb;\n",
" }\n",
" .rendered_html :link {\n",
" text-decoration: underline;\n",
" }\n",
" .rendered_html :hover {\n",
" text-decoration: none;\n",
" }\n",
" .rendered_html :visited {\n",
" text-decoration: none;\n",
" }\n",
" .rendered_html :focus {\n",
" text-decoration: none;\n",
" }\n",
" .rendered_html :active {\n",
" text-decoration: none;\n",
" }\n",
" .warning{\n",
" color: rgb( 240, 20, 20 )\n",
" }\n",
" hr {\n",
" color: #f3f3f3;\n",
" background-color: #f3f3f3;\n",
" height: 1px;\n",
" }\n",
" blockquote{\n",
" display:block;\n",
" background: #fcfcfc;\n",
" border-left: 5px solid #c76c0c;\n",
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
" width:680px;\n",
" padding: 10px 10px 10px 10px;\n",
" text-align:justify;\n",
" text-justify:inter-word;\n",
" }\n",
" blockquote p {\n",
" margin-bottom: 0;\n",
" line-height: 125%;\n",
" font-size: 100%;\n",
" }\n",
"</style>\n",
"<script>\n",
" MathJax.Hub.Config({\n",
" TeX: {\n",
" extensions: [\"AMSmath.js\"],\n",
" equationNumbers: { autoNumber: \"AMS\", useLabelIds: true}\n",
" },\n",
" tex2jax: {\n",
" inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n",
" displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"] ]\n",
" },\n",
" displayAlign: 'center', // Change this to 'center' to center equations.\n",
" \"HTML-CSS\": {\n",
" scale:95,\n",
" availableFonts: [],\n",
" preferredFont:null,\n",
" webFont: \"TeX\",\n",
" styles: {'.MathJax_Display': {\"margin\": 4}}\n",
" }\n",
" });\n",
"</script>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#format the book\n",
"from book_format import load_style\n",
@@ -170,6 +408,620 @@
"Admittedly this is a cumbersome interface to a book. I am following in the footsteps of several other projects that are re-purposing Jupyter Notebook to generate entire books. I feel the slight annoyances have a huge payoff - instead of having to download a separate code base and run it in an IDE while you try to read a book, all of the code and text is in one place. If you want to alter the code, you may do so and immediately see the effects of your change. If you find a bug, you can make a fix, and push it back to my repository so that everyone in the world benefits. And, of course, you will never encounter a problem I face all the time with traditional books - the book and the code are out of sync with each other, and you are left scratching your head as to which source to trust."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Jupyter\n",
"\n",
"First, some words about using Jupyter Notebooks with this book. This book is interactive. If you want to run code examples, and especially if you want to see animated plots, you will need to run the code cells. I cannot teach you everything about Jupyter Notebooks. However, a few things trip readers up. You can go to http://jupyter.org/ for detailed documentation.\n",
"\n",
"First, you must always run the topmost code cell, the one with the comment `#format the book`. It is directly above. This does not just set up formatting, which you might not care about, but it also loads some necessary modules and makes some global settings regarding plotting and printing. So, always run this cell unless you are just passively reading. The import from `__future__` helps Python 2.7 work like Python 3.X. Division of integers will return a `float` (`3/10 == 0.3`) instead of an `int` (`3/10 == 0`), and printing requires parens: `print(3)`, not `print 3`. The line\n",
"\n",
"```python\n",
"%matplotlib inline\n",
"```\n",
"causes plots to be displayed inside the notebook. Matplotlib is a plotting package which is described below. For reasons I don't understand the default behavior of Jupyter Notebooks is to generate plots in an external window. \n",
"\n",
"The percent sign in `%matplotlib` is used for IPython *magic* - these are commands to the kernel to do things that are not part of the Python language. There are many useful magic commands, and you can read about them here: http://ipython.readthedocs.io/en/stable/interactive/magics.html \n",
"\n",
"Running the code inside a cell is easy. Click on it so that it has focus (a box will be drawn around it), and then press CTRL-Enter. \n",
"\n",
"Second, cells must be run in order. I break problems up over several cells; if you try to just skip down and run the tenth code cell it almost certainly won't work. If you haven't run anything yet just choose *Run All Above* from the **Cell** menu item. That's the easiest way to ensure everything has been run.\n",
"\n",
"Once cells are run you can often jump around and rerun cells in different orders, but not always. I'm trying to fix this, but there is a tradeoff. I'll define a variable in cell 10 (say), and then run code that modifies that variable in cells 11 and 12. If you go back and run cell 11 again the variable will have the value that was set in cell 12, and the code expects the value that was set in cell 10. So, occasionally you'll get weird results if you run cells out of order. My advise is to backtrack a bit, and run cells in order again to get back to a proper state. It's annoying, but the interactive aspect of Jupyter notebooks more than makes up for it. Better yet, submit an issue on GitHub so I know about the problem and fix it!\n",
"\n",
"Finally, some readers have reported problems with the animated plotting features in some browsers. I have not been able to reproduce this. In parts of the book I use the `%matplotlib notebook` magic, which enables interactive plotting. If these plots are not working for you, try changing this to read `%matplotlib inline`. You will lose the animated plotting, but it seems to work on all platforms and browsers."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## SciPy, NumPy, and Matplotlib\n",
"\n",
"SciPy is a open source collection of software for mathematics. Included in SciPy are NumPy, which provides array objects, linear algebra, random numbers, and more. Matplotlib provides plotting of NumPy arrays. SciPy's modules duplicate some of the functionality in NumPy while adding features such as optimization, image processing, and more.\n",
"\n",
"To keep my efforts for this book managable I have elected to assume that you know how to program in Python, and that you also are familiar with these packages. Nonetheless, I will take a few moments to illustrate a few features of each; realistically you will have to find outside sources to teach you the details. The home page for SciPy, https://scipy.org, is the perfect starting point, though you will soon want to search for relevant tutorials and/or videos.\n",
"\n",
"NumPy, SciPy, and Matplotlib do not come with the default Python distribution; see the *Installation* Appendix if you do not have them installed.\n",
"\n",
"I use NumPy's array data structure throughout the book, so let's learn about them now. I will teach you enough to get started; refer to NumPy's documentation if you want to become an expert.\n",
"\n",
"`numpy.array` implements a one or more dimensional array. Its type is `numpy.ndarray`, and we will refer to this as an ndarray for short. You can construct it with any list-like object. The following constructs a 1-D array from a list:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'numpy.ndarray'>\n"
]
},
{
"data": {
"text/plain": [
"array([1, 2, 3])"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"x = np.array([1, 2, 3])\n",
"print(type(x))\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It has become a industry standard to use `import numpy as np`. \n",
"\n",
"You can also use tuples:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([4, 5, 6])"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = np.array((4,5,6))\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create multidimensional arrays with nested brackets:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1 2 3]\n",
" [4 5 6]]\n"
]
}
],
"source": [
"x = np.array([[1, 2, 3],\n",
" [4, 5, 6]])\n",
"print(x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can create arrays of 3 or more dimensions, but we have no need for that here, and so I will not elaborate.\n",
"\n",
"By default the arrays use the data type of the values in the list; if there are multiple types then it will choose the type that most accurately represents all the values. So, for example, if your list contains a mix of `int` and `float` the data type of the array would be of type `float`. You can override this with the `dtype` parameter."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 1.0 2.0 3.0]\n"
]
}
],
"source": [
"x = np.array([1, 2, 3], dtype=float)\n",
"print(x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access the array elements using subscript location:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6\n"
]
}
],
"source": [
"x = np.array([[1, 2, 3],\n",
" [4, 5, 6]])\n",
"\n",
"print(x[1,2])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access a column or row by using slices. A colon (:) used as a subscript is shorthand for all data in that row or column. So `x[:,0]` returns an array of all data in the first column (the 0 specifies the first column):"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 4])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[:, 0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can get the second row with:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([4, 5, 6])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[1, :]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get the last two elements of the second row with:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([5, 6])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[1, 1:]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As with Python `list`s, you can use negative indexes to refer to the end of the array. -1 refers to the last index. So another way to get the last two elements of the second (last) row would be:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([5, 6])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[-1, -2:]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can perform matrix addition with the `+` operator, but matrix multiplication requires the `dot` method or function. The `*` operator performs element-wise multiplication, which is **not** what you want for linear algebra."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"abddition:\n",
" [[ 2.0 4.0]\n",
" [ 6.0 8.0]]\n",
"\n",
"element-wise multiplication\n",
" [[ 1.0 4.0]\n",
" [ 9.0 16.0]]\n",
"\n",
"multiplication\n",
" [[ 7.0 10.0]\n",
" [ 15.0 22.0]]\n",
"\n",
"dot is also a member of np.array\n",
" [[ 7.0 10.0]\n",
" [ 15.0 22.0]]\n"
]
}
],
"source": [
"x = np.array([[1., 2.],\n",
" [3., 4.]])\n",
"print('abddition:\\n', x + x)\n",
"print('\\nelement-wise multiplication\\n', x * x)\n",
"print('\\nmultiplication\\n', np.dot(x, x))\n",
"print('\\ndot is also a member of np.array\\n', x.dot(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Python 3.5 introduced the `@` operator for matrix multiplication.\n",
"\n",
"```python\n",
"x @ x\n",
"\n",
"[[ 7.0 10.0]\n",
" [ 15.0 22.0]]\n",
"```\n",
"\n",
"This will only work is you are running Python 3.5 or later. So, as much as I prefer this notation to `np.dot(x, x)` I will not use it in this book."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can get the transpose with `.T`, and the inverse with `numpy.linalg.inv`. The SciPy package also provides the inverse function."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"transpose\n",
" [[ 1.0 3.0]\n",
" [ 2.0 4.0]]\n",
"\n",
"NumPy ninverse\n",
" [[ -2.0 1.0]\n",
" [ 1.5 -0.5]]\n",
"\n",
"SciPy inverse\n",
" [[ -2.0 1.0]\n",
" [ 1.5 -0.5]]\n"
]
}
],
"source": [
"import scipy.linalg as linalg\n",
"print('transpose\\n', x.T)\n",
"print('\\nNumPy ninverse\\n', np.linalg.inv(x))\n",
"print('\\nSciPy inverse\\n', linalg.inv(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are helper functions like `zeros` to create a matrix of all zeros, `ones` to get all ones, and `eye` to get the identity matrix. If you want a multidimensional array, use a tuple to specify the shape."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"zeros\n",
" [ 0.0 0.0 0.0 0.0 0.0 0.0 0.0]\n",
"\n",
"zeros(3x2)\n",
" [[ 0.0 0.0]\n",
" [ 0.0 0.0]\n",
" [ 0.0 0.0]]\n",
"\n",
"eye\n",
" [[ 1.0 0.0 0.0]\n",
" [ 0.0 1.0 0.0]\n",
" [ 0.0 0.0 1.0]]\n"
]
}
],
"source": [
"print('zeros\\n', np.zeros(7))\n",
"print('\\nzeros(3x2)\\n', np.zeros((3, 2)))\n",
"print('\\neye\\n', np.eye(3))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have functions to create equally spaced data. `arange` works much like Python's `range` function, except it returns a NumPy array. `linspace` works slightly differently, you call it with `linspace(start, stop, num)`, where `num` is the length of the array that you want."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,\n",
" 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.arange(0, 2, 0.1)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.0, 0.105, 0.211, 0.316, 0.421, 0.526, 0.632, 0.737,\n",
" 0.842, 0.947, 1.05, 1.16, 1.26, 1.37, 1.47, 1.58,\n",
" 1.68, 1.79, 1.89, 2.0])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.linspace(0, 2, 20)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's plot some data. For the most part it is very simple. Matplotlib contains a plotting library `pyplot`. It is industry standard to import it as `plt`. Once imported, plot numbers by calling `plt.plot` with a list or array of numbers. If you make multiple calls it will plot multiple series, each with a different color."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x21b07a17780>]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"a = np.array([6, 3, 5, 2, 4, 1])\n",
"plt.plot([1, 4, 2, 5, 3, 6])\n",
"plt.plot(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The output `[<matplotlib.lines.Line2D at 0x2ba160bed68>]` is because `plt.plot` returns the object that was just created. Ordinarily we do not want to see that, so I add a `;` to my last plotting command to suppress that output.\n",
"\n",
"By default `plot` assumes that the x-series is incremented by one. You can provide your own x-series by passing in both x and y."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"plt.plot(np.arange(0,1, 0.1), [1,4,3,2,6,4,7,3,4,5]);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are many more features to these packages which I use in this book. Normally I will introduce them without explanation, trusting that you can infer the usage from context, or search online for an explanation. As always, if you are unsure, create a new cell in the Notebook or fire up a Python console and experiment!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise - Create arrays\n",
"\n",
"I want you to create a NumPy array of 10 elements with each element containing 1/10. There are several ways to do this; try to implement as many as you can think of. "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# your solution"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Solution\n",
"\n",
"Here are three ways to do this. The first one is the one I want you to know. I used the '/' operator to divide all of the elements of the array with 10. We will shortly use this to convert the units of an array from meters to km."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]\n",
"[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]\n",
"[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]\n"
]
}
],
"source": [
"print(np.ones(10) / 10.)\n",
"print(np.array([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]))\n",
"print(np.array([.1]*10))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is one I haven't covered yet. The function `numpy.asarray()` will convert its argument to an ndarray if it isn't already one. If it is, the data is unchanged. This is a handy way to write a function that can accept either Python lists or ndarrays, and it is very efficient if the type is already ndarray as nothing new is created."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.1 0.2 0.3]\n",
"[ 0.4 0.5 0.6]\n"
]
}
],
"source": [
"def one_tenth(x):\n",
" x = np.asarray(x)\n",
" return x / 10.\n",
"\n",
"print(one_tenth([1, 2, 3])) # I work!\n",
"print(one_tenth(np.array([4, 5, 6]))) # so do I!"
]
},
{
"cell_type": "markdown",
"metadata": {},
+74 -488
View File
@@ -269,24 +269,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Before we continue, some words about using Jupyter Notebooks with this book. This book is interactive. If you want to run code examples, and especially if you want to see animated plots, you will need to run the code cells. I cannot teach you everything about Jupyter Notebooks. However, a few things trip readers up. You can go to http://jupyter.org/ for detailed documentation.\n",
"\n",
"First, you must always run the topmost code cell, the one with the comment `#format the book`. It is directly above. This does not just set up formatting, which you might not care about, but it also loads some necessary modules and makes some global settings regarding plotting and printing. So, always run this cell unless you are just passively reading. The import from `__future__` helps Python 2.7 work like Python 3.X. Division of integers will return a `float` (`3/10 == 0.3`) instead of an `int` (`3/10 == 0`), and printing requires parens: `print(3)`, not `print 3`. The line\n",
"\n",
"```python\n",
"%matplotlib inline\n",
"```\n",
"causes plots to be displayed inside the noteboook. For reasons I don't understand the default behavior of Jupyter Notebooks is to generate plots in an external window. \n",
"\n",
"The percent sign in `%matplotlib` is used for IPython *magic* - these are commands to the kernel to do things that are not part of the Python language. There are many useful magic commands, and you can read about them here: http://ipython.readthedocs.io/en/stable/interactive/magics.html \n",
"\n",
"Running the code inside a cell is easy. Click on it so that it has focus (a box will be drawn around it), and then press CTRL-Enter. \n",
"\n",
"Second, cells must be run in order. I break problems up over several cells; if you try to just skip down and run the tenth code cell it almost certainly won't work. If you haven't run anything yet just choose *Run All Above* from the **Cell** menu item. That's the easiest way to ensure everything has been run.\n",
"\n",
"Once cells are run you can often jump around and rerun cells in different orders, but not always. I'm trying to fix this, but there is a tradeoff. I'll define a variable in cell 10 (say), and then run code that modifies that variable in cells 11 and 12. If you go back and run cell 11 again the variable will have the value that was set in cell 12, and the code expects the value that was set in cell 10. So, occasionally you'll get weird results if you run cells out of order. My advise is to backtrack a bit, and run cells in order again to get back to a proper state. It's annoying, but the interactive aspect of Jupyter notebooks more than makes up for it. Better yet, submit an issue on GitHub so I know about the problem and fix it!\n",
"\n",
"Finally, some readers have reported problems with the animated plotting features in some browsers. I have not been able to reproduce this. In parts of the book I use the `%matplotlib notebook` magic, which enables interactive plotting. If these plots are not working for you, try changing this to read `%matplotlib inline`. You will lose the animated plotting, but it seems to work on all platforms and browsers."
"Before we start, be sure you understand how to use Jupyter Notebooks, and are familiar with the SciPy, NumPy, and Matplotlib packages, as they are used throughout this book. The Preface contains an introduction to these packages."
]
},
{
@@ -345,7 +328,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fce43ae80>"
"<matplotlib.figure.Figure at 0x1f09b800048>"
]
},
"metadata": {},
@@ -385,7 +368,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcea96ef0>"
"<matplotlib.figure.Figure at 0x1f09bbd25c0>"
]
},
"metadata": {},
@@ -415,7 +398,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcebda0b8>"
"<matplotlib.figure.Figure at 0x1f09bc7a128>"
]
},
"metadata": {},
@@ -449,7 +432,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Average of measurements is 165.0435\n"
"Average of measurements is 165.0009\n"
]
}
],
@@ -480,7 +463,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Average of measurements is 165.0482\n"
"Average of measurements is 164.9544\n"
]
}
],
@@ -512,7 +495,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcd3c8eb8>"
"<matplotlib.figure.Figure at 0x1f09a7824e0>"
]
},
"metadata": {},
@@ -541,7 +524,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcece2160>"
"<matplotlib.figure.Figure at 0x1f09c0f0ef0>"
]
},
"metadata": {},
@@ -568,7 +551,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fced4a080>"
"<matplotlib.figure.Figure at 0x1f09c24d6d8>"
]
},
"metadata": {},
@@ -597,7 +580,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAEGCAYAAABy9FgRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3XlcVPX+P/DXGRgYQBbZBFfQNANc\ncsHMcEMETdMs82qmUtgv0tTrNTUXFjXbtKtpWoqKZZmp2dcsMdHiatfUq0kCt3u/JZgpqAyKIzIw\nw5zfH36ZGFmcAYYzZ3g9Hw8eOmc+55z34cPMnPd8NkEURRFERERERERETUwhdQBERERERETUPDEh\nJSIiIiIiIkkwISUiIiIiIiJJMCElIiIiIiIiSTAhJSIiIiIiIkk4Sh2A1AwGAwwGg8k2QRAgCIJE\nERERERER1Z8oirh3IQ2FQgGFgm1RZHuYkBoMKCkpkToMIiIiIiKrcXNzY0JKNol/lURERERERCQJ\nJqREREREREQkCSakREREREREJIlmP4a0psmL2MfetmVnZ0Ov18PR0RGhoaFSh0N1YF3JC+tLPlhX\n8sG6kg97qqua5kjhhJ1kq5iQ1vDi5Cxkts1gMKCiooL1JAOsK3lhfckH60o+WFfyYe91xYSUbJX9\nvdqIiIiIiIhIFpiQEhERERERkSSYkBIREREREZEkmJASERERERGRJJiQEhERERERkSSYkBIRERER\nEZEkmJASERERERGRJJiQEhERERERkSSYkBIREREREZEkmJASERERERGRJJiQEhERERERkSSYkBIR\nEREREZEkmJASERERERGRJJiQEhERERERkSSYkBIREREREZEkmJASERERERGRJCRPSDUaDebPn4/h\nw4fDz88PgiAgKSmpWjlRFLF582b07t0bHh4e8PHxwaBBg/D111/XeNx169aha9eucHZ2RnBwMJKT\nk6HT6ax8NURERERERGQuyRNStVqNTZs2oaysDGPHjq21XGJiIl588UWEh4dj7969SE1NhbOzM0aN\nGoUvvvjCpOzrr7+O2bNnY9y4cTh06BBefvllrFy5EjNmzLD25RAREREREZGZHKUOoEOHDrhx4wYE\nQUBhYSFSUlJqLLd161Y89thj2Lhxo3FbVFQUAgICsH37dowbNw7A3QR3xYoVmD59OlauXAkAGDx4\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcee91240>"
"<matplotlib.figure.Figure at 0x1f09c123208>"
]
},
"metadata": {},
@@ -614,7 +597,7 @@
"source": [
"That doesn't look very convincing. In fact, we can see that there is no horizontal line that we could draw that is inside all of the error bars.\n",
"\n",
"Now, let's assume we gained weight. How much? I don't know, but numpy does! We want to draw a line through the measurements that looks 'about' right. numpy has functions that will do this according to a rule called \"least squares fit\". Let's not worry about the details of that computation, or why we are writing our own filter if numpy provides one, and plot the results."
"Now, let's assume we gained weight. How much? I don't know, but NumPy does! We want to draw a line through the measurements that looks 'about' right. NumPy has functions that will do this according to a rule called \"least squares fit\". Let's not worry about the details of that computation, or why we are writing our own filter if NumPy provides one, and plot the results."
]
},
{
@@ -626,7 +609,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcecaa3c8>"
"<matplotlib.figure.Figure at 0x1f09c108da0>"
]
},
"metadata": {},
@@ -659,7 +642,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxoAAADqCAYAAAAlOjPWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xl8VPW5+PHPZN9DSAIkgQQIgYQE\nAijITiCiVAuCSGuxVqu9r1+t3nrd0ILsVnG3i9br1muV6wL9Ue7P5bayJIgSZQ0kmAAhCRBCNkIg\ne2b5/THMTM5kkswJWWZynvfrxUuZM+fJ98wzc5gnz/l+j85kMpkQQgghhBBCiG7k0dcDEEIIIYQQ\nQvQ/UmgIIYQQQgghup0UGkIIIYQQQohuJ4WGEEIIIYQQottJoSGEEEIIIYTodlJoCCGEEEIIIbqd\nV18PQEuMRiNGo1HxmE6nQ6fT9dGIhBBCCCGEcI7JZML+zhgeHh54eDjuXUih0YuMRiN1dXV9PQwh\nhBBCCCG6RWBgYLuFhlw6JYQQQgghhOh2UmgIIYQQQgghup0UGkIIIYQQQohu5xJzNK5cucLGjRs5\ncuQIhw8fprKykrVr17Ju3TrF8+69917ef//9NvuPGTOGvLw8xWMnTpzgd7/7Hbt27aKpqYlx48ax\natUqFi1a5NSYysvLWbFiBZ999hn19fWkpqbyzDPPkJ6e3ua5O3bsYPXq1WRnZxMQEMCPf/xjXnjh\nBQYNGqR4nqNJ3x1d19bTSktLMRgMeHp6EhUV1SdjEL1Lcq49knPtkZxrj+Rce/oq547mG3e0qJFL\nFBpVVVW89dZbpKamsnjxYt555512n+vv78+uXbvaPNZaUVER06ZNIyoqijfffJOgoCD+8pe/sHjx\nYrZs2cLSpUs7HE9TUxPp6elcunSJP/zhDwwaNIjXX3+dBQsWsGPHDubMmWN9bmZmJj/60Y+49dZb\n2b59O+Xl5Tz55JOkp6dz4MABfH19rc91lIiOZur3tMrKSlpaWvD29iYmJqZPxiB6l+RceyTn2iM5\n1x7JufZUVlbS0tyMt49Pn+fc5QuNuLg4qqur0el0VFZWdlhoeHh4MHXq1A7jbdq0ifr6ev75z39a\nX/wFCxYwbtw4HnnkEZYsWdLhl/t3332XnJwcvv32W6ZNmwbA3LlzSU1NZcWKFXz33XfW5z7xxBOM\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fced324e0>"
"<matplotlib.figure.Figure at 0x1f09bc0fc50>"
]
},
"metadata": {},
@@ -686,7 +669,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcea6c240>"
"<matplotlib.figure.Figure at 0x1f09c0899b0>"
]
},
"metadata": {},
@@ -726,7 +709,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcea1ad30>"
"<matplotlib.figure.Figure at 0x1f09bfe06d8>"
]
},
"metadata": {},
@@ -783,7 +766,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcee48d68>"
"<matplotlib.figure.Figure at 0x1f09c217400>"
]
},
"metadata": {},
@@ -2505,7 +2488,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmYAAAEDCAYAAACf/cj+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3XdcleX7wPHPzUZURHGAOEIQJy7M\nneQs0zI1S83VUDMtG9pPy771zbJpX1uWJY7KWe5IK00tNRVHau69SFAUAZnn3L8/HjiCguKA5xy4\n3q+XL8+5nsdzLk6YF/e4bqW1RgghhBBCmM/J7ASEEEIIIYRBCjMhhBBCCDshhZkQQgghhJ2QwkwI\nIYQQwk5IYSaEEEIIYSdczE7gZsTHx8sWUiGEEEIUGd7e3ir7cxkxE0IIIYSwE1KYCSGEEELYCYea\nyszO29vb7BSuERUVBUBYWJjJmTgu+Qxvj3x+t08+w9sjn9/tk8/w5qWlpdGmTRs2b958zbWPP/6Y\nUaNGmZBV3uLj4/O8JiNmQgghhHBo8+bNY/PmzVSpUoWZM2eyYcMGJk+eDMDrr79OQkKCyRnmnxRm\nQgghhHBoK1asAGDMmDHUqVMHV1dXnnvuOZo2bUpCQgIbNmwwOcP8k8JMCCGEEA5NKWNjo8ViyRHP\nyMjIcd0RSGEmhBBCCIfWtWtXAN577z2ioqKIj4/nnXfeYfv27Xh7e9O6dWuTM8w/h138L4QQQggB\n0LNnT9q2bcvatWt55plnclx77733KFGihEmZ3TwZMRNCCCGEQ3N1dSUyMpLx48dTqVIl3N3dadWq\nFYsXL2bo0KFmp3dTCmzETCkVAXQFYrTW9TJj84CQzFvKABe11g2VUh2BdwE3IA0YrbVeXVC5CSGE\nEKJoKVGiBP/973958MEHAcdtN1KQU5kzgM+AWVkBrfWjWY+VUh8BWY08zgHdtNZnlFL1gJVA5QLM\nTQghhBDC7hRYYaa1XqeUqp7bNWVsj+gNtMu8d3u2y/8AHkopd611akHlJ4QQQghhb5TWBXcueGZh\ntjxrKjNb/B5gktb6mnFGpVQvYJjWusPV17IfYn7w4ME7nq8QQgghHM/58+dZsGABqampPP/882an\nc0PBwcG2x/ZyiHkfYM7VQaVUXeA9wLFW6gkhhBCi0FgsFs6dO2d7npGRwbRp01iwYAEpKSkmZnb7\nCr1dhlLKBegBNLkqHgAsAgZorQ/f6HXscVGfnG92++QzvD3y+d0++Qxvj3x+t08+w+vbsmULDz74\nILVq1WLt2rW2+Ntvv02TJk1wcTFKG3v+/K53VqYZfcw6APu01qeyAkqpMsBPwFit9XoTchJCCCGE\nnUlMTOTnn39GKUWvXr0AqFmzJhcuXODMmTOkpqbi7u4OwLhx44Arha2jKrCpTKXUHGAjEKKUOqWU\nejLz0mNcO405AggCxiuldmT+qlBQuQkhhBDCPmVf+75hwwZ69+7NG2+8YYt5e3uzf/9+Dhw4YCvK\nipKC3JXZJ4/4oFxiE4AJBZWLEEIIIezbX3/9xbhx46hXrx6ffPIJAOHh4XTq1ImOHTtisVhwdnYG\n4K677jIz1QIlRzIJIYQQIt/i4uKwWCz4+vre1uHg+/btw2q1UqdOHcDo3v/7779z5MgRJk+ejFIK\nNzc3Vq5ceadSdwhyJJMQQgghbuivv/6idevWlCtXjgoVKtC4cWN++eWXW3qtadOmUbt2bd58801b\nrHHjxsybN4/t27ffVsHn6KQwE0IIIcR17dixg3bt2rF+/Xo8PDzw8vJix44ddOnShdWrr3+C4q5d\nuxg1ahSzZ8+2xdq3b4+Pjw++vr62mFKK3r174+PjU2BfhyOQwkwIIYSwAxkZGSxatIhPPvmEiIgI\nu2qk/vbbb5OcnMxjjz1GbGws586dY8SIEVgsFl5//fUc96akpHDp0iXb8+3btzN58mQiIiJsserV\nqxMTE8Pnn39eaF+Do5DCTAghhDDZ2bNnCQsLo0ePHnz77bdMmTKFkJAQ3nvvPbNTA7CNir3zzjuU\nLFkSDw8PJk6ciJOTE+vXryc11ThB8csvv6R8+fJMnjzZ9me7devG6NGjefvtt3O8Zla/MZGTFGZC\nCCGEyYYMGcLff/9N1apVeeqpp3jggQcA+L//+z/WrFljbnJga0sRFxdnix0+fBir1Yqzs7Ntt2SV\nKlVITExk//79tvt8fHx4//33adasWeEm7aCkXBVCCCFMdObMGZYtW4a7uzsbNmwgOjoagIYNG/L2\n228zdepUwsPDTc2xZ8+efPbZZzz55JNMnjwZd3d3HnnkEcBoXZE1+tWhQweOHj1K9erVTczWscmI\nmRBCCGGi06dPo7UmJCSEypUr2+Lt2rUD4MSJE2alZlOzZk3c3Nz4+++/CQ8Pp0WLFpw6dQo3Nzee\ne+45233u7u5SlN0mGTETQgghTJQ14vTPP/+wd+9eW/yHH34AICQkpFDzsVqtREVFERQURNmyZQFI\nTk4mLS2N+vXrk5GRgcVioXPnzowePZoqVaoUan5FnRRmQgghhIl8fX3p168fM2fOpHnz5txzzz2c\nOXOGbdu24eTkxPDhwws1n0GDBvHtt98ydepUnn76aQD69u1L7dq16dChA56enoWaT3EjU5lCCCGE\nyT799FPuv/9+Ll26xPLly9m2bRslSpRg5syZNGnSpMDed+XKlQwaNIgDBw7YYm3btqVKlSo5zqwM\nCAigW7duUpQVAhkxE0IIIUxWqlQpIiMj2bp1K/PmzaNkyZI899xzlClT5o6+z8WLFyldujROTsa4\nzOzZs5k1axYhISGMHTsWgAEDBvDEE08U6+77ZpLCTAghhLATTZo0sY1U3emi7KmnnmLWrFmsWbOG\nli1bAvDEE09Qq1Yt2w5LMM6sFOaRqUwhhBCiiDly5AiTJk0iOTnZFitdujQWi4Xt27fbYm3btmXs\n2LEEBQWZkabIhYyYCSGEEEVM79692bp1K8HBwXTr1g2A0aNHM3bsWMqXL29yduJ6ZMRMCCGEcGDj\nxo0jJCSE8+fP22L9+/fnscceo0KFCraYn5+fFGUOQAozIYQQwkGkpaXxxx9/5Iht3bqVAwcOEBkZ\naYs9//zzzJkzR45BckAFVpgppSKUUjFKqd3ZYvOUUjsyfx1TSu3Idm2sUuqQUmq/UqpzQeUlhBBC\nOCKr1UpwcDD33HMPR44cscX/85//sG7dOvr27WtiduJOKcg1ZjOAz4BZWQGt9aNZj5VSHwHxmY/r\nAI8BdQF/4DelVE2ttaUA8xNCCCHsUkZGBrNmzWLt2rV88803KKVwcnKiZcuWlCpViujoaAIDAwFs\nOyxF0aCyN5C74y+uVHVguda63lVxBZwA2mmtDyqlxgJorSdmXl8JvKG13pj9z8XHx9uSPXjwYIHl\nLYQQQhS2xMRESpYsCRijY926dSMmJoYZM2ZQt25dAFJTU3F3dzczTXEHBAcH2x57e3vnaBhn1q7M\nNsBZrXVWdVUZ+Cvb9VOZMSGEEKJIS05O5tlnn+XYsWOsXLkSV1dXnJycGDRoEFrrHAebS1FW9JlV\nmPUB5mR7nlt74esO5YWFhd3RhO6EqKgowD5zcxTyGd4e+fxun71+hhkZGSxatIgVK1aglKJr1650\n69YNZ2dns1PLwV4/P3uhtWbHjh38/fffDBo0KMe19PR03N3dsVqtALz33nsmZOj4HOF7MD4+Ps9r\nhV6YKaVcgB5A9sO/TgHZj6cPAM4UZl5CCGGvEhMTuf/++/nzzz9tsWnTptGpUyeWLFmCh4eHidmJ\nmxEXF0dYWBhOTk50797d1t1/3rx5VK1aFS8vL1thIYonM9pldAD2aa1PZYstBR5TSrkrpe4CgoHN\nJuQmhBB258033+TPP//Ez8+PDz74gIkTJ+Lr68svv/zCBx98YHZ6Ig8xMTEMGTKEBx54wBYrV64c\nvXv35qmnnuLy5cu2eO3atfHy8jIjTWFnCmzETCk1BwgHfJVSp4D/aK2nYey+zD6Nidb6H6XUfGAP\nkAE8KzsyhRDCmPqaPn06AAsXLqR58+YANG7cmM6dOxMREcH48ePNTFFkSkxM5MiRI4SGhgLGweSz\nZ88mKSmJkydPUqWKMTE0Z86c672MKOYKrDDTWvfJIz4oj/jbwNsFlY8QQjgii8Vi6+jepMmVFSBN\nmzYF4OzZs6bkJXLau3cvjRo1ws/PjyNHjqCUwtPTk2nTplG7dm0CAgLMTlE4COn8L4QQdszFxYU6\ndeoAEBERYYtPmzYNgAYNGpiSV3F2/vx5Pv300xzTyCEhIZQtWxZ/f38uXLhgiz/66KOEhoZidIkS\n4sbkEHMhhLBzo0ePZvDgwQwbNozvv/+ejIwMNm402jy+/PLLJmdXPCQlJdnWgMXGxvLcc8/h4+PD\nqFGjbO0tDh48KOvExG2TwkwIIezcwIEDiY6O5q233rKdk+jl5cU777xDz549Tc6uaNuyZQsDBgwg\nKCiIZcuWAVCrVi1GjBhBs2bNyN6kXYoy8y3efpoJkbGcv2zF/7fVjO4cQvdGjtUWVQozIYSwc0op\nxo4dy7Bhw1i7di1OTk6Eh4dTunRps1MrUjIyMvjzzz+xWCy0b98egCpVqrB//34uXbpEeno6rq6u\nAHz66admpipysXj7acYu3EVyutEH7vTFZMYu3AXgUMWZFGZCCOEgfHx86N69u9lpFFlLly6lZ8+e\ntGjRwlaYVapUib/++otGjRrZijJhnz5YuZ/k9JwNHZLTLXywcr9DFWay+F8IIUSxs3XrVh599FEm\nTJhgi3Xq1InQ0FDatm2bY4ry7rvvlqLMjqWkW1gQdZLTF5NzvX4mj7i9khEzIYQQRLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcea1e128>"
"<matplotlib.figure.Figure at 0x1f09c086278>"
]
},
"metadata": {},
@@ -3416,7 +3399,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fced16940>"
"<matplotlib.figure.Figure at 0x1f09bbd26a0>"
]
},
"metadata": {},
@@ -3487,403 +3470,6 @@
"So, the algorithm is simple. The state is initialized with $\\mathbf{x_0}$, the initial estimate. We then enter a loop, predicting the state for time or step $k$ from the values from time (or step) $k-1$. We then get the measurement $z_k$ and choose some intermediate point between the measurements and prediction, creating the estimate $\\mathbf{x}_k$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## NumPy arrays\n",
"\n",
"I use NumPy's array data structure throughout the book, so let's learn about them now. I will teach you enough to get started; refer to NumPy's documentation if you want to become an expert.\n",
"\n",
"`numpy.array` implements a one or more dimensional array. Its type is `numpy.ndarray`, and we will refer to this as an ndarray for short. You can construct it with any list-like object. The following constructs a 1-D array from a list:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'numpy.ndarray'>\n"
]
},
{
"data": {
"text/plain": [
"array([1, 2, 3])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"x = np.array([1, 2, 3])\n",
"print(type(x))\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also use tuples:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([4, 5, 6])"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = np.array((4,5,6))\n",
"x"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1 2 3]\n",
" [4 5 6]]\n"
]
}
],
"source": [
"x = np.array([[1, 2, 3],\n",
" [4, 5, 6]])\n",
"print(x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can create arrays of 3 or more dimensions, but we have no need for that here, and so I will not elaborate.\n",
"\n",
"By default the arrays use the data type of the values in the list; if there are multiple types then it will choose the type that most accurately represents all the values. So, for example, if your list contains a mix of `int` and `float` the data type of the array would be of type `float`. You can override this with the `dtype` parameter."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 1.0 2.0 3.0]\n"
]
}
],
"source": [
"x = np.array([1, 2, 3], dtype=float)\n",
"print(x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access the array elements using subscript location:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6\n"
]
}
],
"source": [
"x = np.array([[1, 2, 3],\n",
" [4, 5, 6]])\n",
"\n",
"print(x[1,2])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access a column or row by using slices. A colon (:) used as a subscript is shorthand for all data in that row or column. So `x[:,0]` returns an array of all data in the first column (the 0 specifies the first column):"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 4])"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[:, 0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can get the second row with:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([4, 5, 6])"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[1, :]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can perform matrix addition with the `+` operator, but matrix multiplication requires the `dot` method or function. The `*` operator performs element-wise multiplication, which is **not** what you want for linear algebra."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"abddition:\n",
" [[ 2.0 4.0]\n",
" [ 6.0 8.0]]\n",
"\n",
"element-wise multiplication\n",
" [[ 1.0 4.0]\n",
" [ 9.0 16.0]]\n",
"\n",
"multiplication\n",
" [[ 7.0 10.0]\n",
" [ 15.0 22.0]]\n",
"\n",
"dot is also a member of np.array\n",
" [[ 7.0 10.0]\n",
" [ 15.0 22.0]]\n"
]
}
],
"source": [
"x = np.array([[1., 2.],\n",
" [3., 4.]])\n",
"print('abddition:\\n', x+x)\n",
"print('\\nelement-wise multiplication\\n', x*x)\n",
"print('\\nmultiplication\\n', np.dot(x,x))\n",
"print('\\ndot is also a member of np.array\\n', x.dot(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can get the transpose with `.T`, and the inverse with `numpy.linalg.inv`."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"transpose\n",
" [[ 1.0 3.0]\n",
" [ 2.0 4.0]]\n",
"\n",
"inverse\n",
" [[ -2.0 1.0]\n",
" [ 1.5 -0.5]]\n"
]
}
],
"source": [
"print('transpose\\n', x.T)\n",
"print('\\ninverse\\n', np.linalg.inv(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, there are helper functions like `zeros` to create a matrix of all zeros, `ones` to get all ones, and `eye` to get the identity matrix. If you want a multidimensional array, use a tuple to specify the shape."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"zeros\n",
" [ 0.0 0.0 0.0 0.0 0.0 0.0 0.0]\n",
"\n",
"zeros(3x2)\n",
" [[ 0.0 0.0]\n",
" [ 0.0 0.0]\n",
" [ 0.0 0.0]]\n",
"\n",
"eye\n",
" [[ 1.0 0.0 0.0]\n",
" [ 0.0 1.0 0.0]\n",
" [ 0.0 0.0 1.0]]\n"
]
}
],
"source": [
"print('zeros\\n', np.zeros(7))\n",
"print('\\nzeros(3x2)\\n', np.zeros((3, 2)))\n",
"print('\\neye\\n', np.eye(3))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"NumPy is part of the SciPy package. Both are well documented. You can find a tutorial and links to the full documentation at the following location:\n",
"\n",
"https://docs.scipy.org/doc/numpy-dev/user/quickstart.html"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise - Create arrays\n",
"\n",
"I want you to create a NumPy array of 10 elements with each element containing 1/10. There are several ways to do this; try to implement as many as you can think of. "
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# your solution"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Solution\n",
"\n",
"Here are three ways to do this. The first one is the one I want you to know. I used the '/' operator to divide all of the elements of the array with 10. We will shortly use this to convert the units of an array from meters to km."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]\n",
"[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]\n",
"[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]\n"
]
}
],
"source": [
"print(np.ones(10) / 10.)\n",
"print(np.array([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]))\n",
"print(np.array([.1]*10))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is one I haven't covered yet. The function `numpy.asarray()` will convert its argument to an ndarray if it isn't already one. If it is, the data is unchanged. This is a handy way to write a function that can accept either Python lists or ndarrays, and it is very efficient if the type is already ndarray as nothing new is created."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.1 0.2 0.3]\n",
"[ 0.4 0.5 0.6]\n"
]
}
],
"source": [
"def one_tenth(x):\n",
" x = np.asarray(x)\n",
" return x / 10.\n",
"\n",
"print(one_tenth([1, 2, 3])) # I work!\n",
"print(one_tenth(np.array([4, 5, 6]))) # so do I!"
]
},
{
"cell_type": "markdown",
"metadata": {},
@@ -3916,7 +3502,7 @@
},
{
"cell_type": "code",
"execution_count": 35,
"execution_count": 22,
"metadata": {
"collapsed": true
},
@@ -3936,14 +3522,14 @@
},
{
"cell_type": "code",
"execution_count": 36,
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcea78400>"
"<matplotlib.figure.Figure at 0x1f09bc0b710>"
]
},
"metadata": {},
@@ -4010,7 +3596,7 @@
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 24,
"metadata": {
"collapsed": true
},
@@ -4028,16 +3614,16 @@
},
{
"cell_type": "code",
"execution_count": 38,
"execution_count": 25,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcecde9e8>"
"<matplotlib.figure.Figure at 0x1f09c0f6a20>"
]
},
"metadata": {},
@@ -4065,14 +3651,14 @@
},
{
"cell_type": "code",
"execution_count": 39,
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcea377f0>"
"<matplotlib.figure.Figure at 0x1f09c1fdb38>"
]
},
"metadata": {},
@@ -4099,7 +3685,7 @@
},
{
"cell_type": "code",
"execution_count": 40,
"execution_count": 27,
"metadata": {
"collapsed": true
},
@@ -4117,14 +3703,14 @@
},
{
"cell_type": "code",
"execution_count": 41,
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAC+CAYAAADnTQ8FAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3XdUFcfbwPHv0ntVkCYqInZjxY69\nRhMbUbBj7DEaE40lmp/RmKjRWKIkYjfWKCYW7GIsKKAoCliwYQELvcPlzvsHcl+IJRaMxMznnHuU\n2dmd2Z2Dd5ydeUYRQiBJkiRJkvS2aL3tCkiSJEmS9N8mOyOSJEmSJL1VsjMiSZIkSdJbJTsjkiRJ\nkiS9VTpvo9Dk5GQ5a1aSJEmS3jHm5ubKq5wnR0YkSZIkSXqrZGdEkiRJkqS36q28pinM3Nz8bVfh\nPy80NBSAevXqveWaSCDbo6SR7VHyyDZ5OcHBwbi7u1OzZk3Onz+vST9w4ADt2rWjadOmHDt27JWv\nn5yc/Np1lCMjkiRJkvQOs7GxAeDatWskJiZq0gs6dba2tm+lXoW99ZERSZIkSZLenHLlytGyZUuO\nHDlCy5YtGTFiBNevX+fHH38EYNCgQW+5hrIzIkmSJEnvPD8/P1q1asX58+cZPny4Jn3s2LF06tTp\nLdYsn+yMSJIkSdI7rkKFCly4cIF169Zx8uRJzM3N8fLyokmTJm+7aoDsjEiSJEnSf4KpqSkjR45k\n5MiRRdIzMzOJiorCzMyMihUrvpW6/e0EVkVRnBRFOaIoSpSiKBGKonz6ON1KUZQDiqJcffyn5eN0\nRVGURYqiRCuKEq4oSp03fROSJEmS9G+Wk5PD5s2b+eKLL/juu++4efPmGy9TCMG3336Lvb09devW\nxdXVlfr163P27Nk3XvZfvchqGhUwXghRBWgIjFIUpSrwJXBICOEKHHr8M0BHwPXxZyiwrNhrLUmS\nJEnviJiYGGrWrEnv3r2ZN28ekyZNomLFiixduvSNljt79mymTJlCUlISlSpVwsLCgtDQUFq3bk1M\nTMwbLfuvFCFeLjK7oii/A0sef1oIIWIVRbEDAoUQboqi/Pz47xsf579ckK/gGoXDwV+9erUYbkOS\nJEmS/p2GDRvG2bNncXJyomPHjty4cYMDBw4AsG7dOipXrlzsZWZlZdGpUydSU1OZPXs2bdq0ISsr\n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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcfecd940>"
"<matplotlib.figure.Figure at 0x1f09c24d4a8>"
]
},
"metadata": {},
@@ -4160,7 +3746,7 @@
},
{
"cell_type": "code",
"execution_count": 42,
"execution_count": 29,
"metadata": {
"collapsed": true
},
@@ -4178,14 +3764,14 @@
},
{
"cell_type": "code",
"execution_count": 43,
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fce452cf8>"
"<matplotlib.figure.Figure at 0x1f09bffa748>"
]
},
"metadata": {},
@@ -4223,7 +3809,7 @@
},
{
"cell_type": "code",
"execution_count": 44,
"execution_count": 31,
"metadata": {
"collapsed": true
},
@@ -4241,14 +3827,14 @@
},
{
"cell_type": "code",
"execution_count": 45,
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiQAAAC+CAYAAAAFkRR8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xl8TNf/+PHXmez7IiEhsTb2nVJt\naVE7pZairVKt6q579fPpp1T1W60uP9p+lA8+SlWp1lLVqipKKVJLBJVYgpBESDLZ1zm/P2YyDZ+E\nkEkmy/v5MI+5c+65c9/HzWTeOffcc5XWGiGEEEIIezLYOwAhhBBCCElIhBBCCGF3kpAIIYQQwu4k\nIRFCCCGE3TnaY6dGo1FG0gohhBDVjI+Pj7rZbaWHRAghhBB2JwmJEEIIIezOLqdsivLx8bF3CBUm\nPDwcgM6dO9s5kopXU9teU9sN0naoeW2vqe2GytP2FStW8MADDzBixAhWr15tLV+wYAGTJ09m/Pjx\nLFmyxKb7NBqNNnkf6SERQgghqon69esDsGvXLjIyMqzlv/zyyxXrKyO795AIIYQQwjZuv/122rRp\nw+HDh+nSpQv3338/e/fuZePGjTg5OTFx4kR7h1giSUiEEEKIakIpxTfffEO/fv04evQo06dPB8DF\nxYWlS5fSsGFDu8Z3LZKQCCGEENVIs2bN+Ouvv/j22285fPgwQUFBjB07ljp16tg7tGu6bkKilGoG\nrCxS1Bh4E1hqKW8IxAD3a62TlVIKmAMMBDKBCVrr/bYNWwghhBAlcXV15cEHH7R3GDfkuoNatdbH\ntdbttdbtgU6Yk4w1wFRgi9Y6DNhieQ0wAAizPB4H5pVH4EIIIYSoPpTWpZ80VSnVF5imtb5DKXUc\nuFtrHaeUCga2aa2bKaXmW5ZXWLax1it8n6IztUZHR9uqLUIIIYSoYGFhYdblipypdQywwrJcpzDJ\nsDzXtpTXA84V2SbWUiaEEEIIUaxSD2pVSjkD9wKvX69qMWUldsPYexKZilRZJs6xh5ra9prabpC2\nQ81re01tN9TstttjYrQBwH6tdYLldYLlVA2W54uW8lggtMh2IcCFsgYqhBBCiOrrRhKSsfx9ugZg\nPTDesjweWFek/GFldhtgLDp+RAghhBDiaqU6ZaOUcgf6AJOLFM8CVimlHgXOAqMs5RsxX/J7AvMV\nOY/YLFohhBCiGkhKSuLUqVPUrVuXunXr2jucSqFUPSRa60ytdS2ttbFI2WWtdW+tdZjlOclSrrXW\nT2utm2it22itw8sreCGEEKIqyczMZNKkSQQFBXHrrbcSEhLCkCFDiIuTEwlycz0hhBCigjz00EMs\nXLiQgoIC2rRpg7OzMxs2bKBv377k5ubaOzy7koRECCGEqACHDx9mzZo1eHh4cPDgQSIiIjh9+jSN\nGjUiMjKSNWvW2DtEu5KERAghhKgAu3fvBmDo0KG0adMGgODgYB599FEAdu3aZbfYKgNJSIQQQogK\n4O3tDUBMTMwV5YWvfXx8KjiiykXu9iuEEEJUgEGDBuHl5cWuXbuYPHkyY8aM4bfffmPx4sUAjBkz\nxs4R2pckJEIIIUQF8PLyYsGCBTz00EMsWLCABQsWWNe99dZbtGzZ0o7R2Z8kJEIIIUQFGTNmDM2a\nNeOzzz7j2LFjhISEMGnSJO655x57h2Z3kpAIIYQQFahDhw4sXLjQ3mFUOjKoVQghhBB2JwmJEEII\nIexOEhIhhBBC2J0kJEIIIYSwu1IlJEopX6XUaqXUX0qpY0qpbkopf6XUZqVUtOXZz1JXKaXmKqVO\nKKUilFIdy7cJQgghhKjqSttDMgf4SWvdHGgHHAOmAlu01mHAFstrgAFAmOXxODDPphELIYQQotq5\nbkKilPIGegCLALTWuVrrFGAo8IWl2hfAMMvyUGCpNvsD8FVKBds8ciGEEMLGfvrpJ4YMGULz5s3p\n378/69ats3dINYbSWl+7glLtgQXAUcy9I38CU4DzWmvfIvWStdZ+SqkNwCyt9U5L+RbgNa11eGFd\no9Fo3Wl0dLQNmyOEEELcnGXLljF37tz/KX/ssceYPHmyHSKqGsLCwqzLPj4+6mbfpzSnbByBjsA8\nrXUHIIO/T88Up7hgrp31CCGEEHaUmJjIZ599BsDkyZNZvnw5zz33HAaDgYULF3L27Fk7R1j9lWam\n1lggVmu9x/J6NeaEJEEpFay1jrOckrlYpH5oke1DgAslvXnnzp1vPOoqKjzc3ElUk9pcqKa2vaa2\nG6TtUPPaXpXbPW/ePAoKChg2bBiff/45AA888ADJycksW7aM6Ohohg8fXuL2lbHtWmty8k24OjmU\n636MRqNN3ue6PSRa63jgnFKqmaWoN+bTN+uB8Zay8UDhibb1wMOWq21uA4xa6zibRCuEEEKUg8zM\nTAACAwOvKC98nZWVVeExlcXZy5lMXLKPV1ZH2DuUUivtVTbPAsuVUhFAe+D/gFlAH6VUNNDH8hpg\nI3AKOAH8B3jKphELIYQQNnb33XcD8PXXX1t7OyIjI/niC/O1G3fddZe9QrshOfkFzN0STZ+Pt7P3\ndBLtQny43ljRyqJUN9fTWh8EiuuH6l1MXQ08Xca4hBBCiArTqVMnhg4dyrp167j11lupW7cuFy6Y\nRxv06tXLmrBUZjuiE3lz3RFOX8pgUNtg/jWoJUE+rvYOq9RkplYhhBACWLFiBc899xweHh5cuHAB\nV1dXHn/8cdauXYtSN33xSLmLN2bz9Ff7GbdoL1prlk7swmcPdKxSyQiUsodECCGEqO7c3NyYM2cO\n7777LgkJCdSuXRsPDw97h1Wi/AITS3bF8PHmKPJMmhf7NOXxHo3LfRBreZGERAghhCjC3d2dRo0a\n2TuMawqPSeKNtZH8FZ/G3c0CeeveVjSoVXmTp9KQhEQIIYSoIpIycpn14zFWhccS7OPK5w91ol+r\nOpX6lFJpSUIihBBCVHImk2ZV+Dlm/fQX6dn5TL6rMc/1CsPDpfp8jVeflgghhBDV0JELRt5YG8mB\nsyl0aeTPzGGtaVrHy95h2ZwkJEIIIUQllJadx0ebo/hiVwx+7s58dH877utQr1qcnimOJCRCCCGq\nBK01O3fuJCYmhrCwMLp27Votv5y11nwfEcfMDUdJTM/hoa4NeLlvM3zcnewdWrmShEQIIUSlFxUV\nxYgRI4iMjLSWde7cmdWrV9OgQQM7RmZbJxPTeXNdJL+fuEybej785+HOtAv1tXdYFUISEiGEEJVa\nTk4O/fv35/Tp09StW5c77riDbdu2ER4ezuDBgzl48CAODlVz7o1CWbkFfLb1BPN/O4mrkwNvD23F\nA10b4GCofj1AJZGERAghRKW2Zs0aTp8+TfPmzQkPD8fDw4OUlBTatm1LZGQkmzdvpn///vYO86Zt\nOZbAtPVHiE3OYniHerw+sAWBXi72DqvCydTxQgghKrXC0zQjR460zpzq6+vLsGHDADh8+LDdYiuL\n2ORMJi0N59EvwnFzcuDrx2/jo9Hta2QyAtJDIoQQopILDg4G4I8//kBrjVIKk8nEnj17rlhfVWTm\n5rPgt1N8vv0kCsXUAc2ZeEcjnB1rdh9BqRISpVQMkAYUAPla685KKX9gJdAQiAHu11onK/OQ5znA\nQCATmKC13m/70IUQQtQEo0eP5tVXX+WXX35h+PDh9O3bl3Xr1rF37178/Py477777B1iqZhMmnWH\nzvPej8eJT81mUJtg/jGoBfV83ewdWqVwIz0kPbXWl4q8ngps0VrPUkpNtbx+DRgAhFkeXYF5lmch\nhBDihgUEBLB8+XLGjBnD2rVrWbt2LQAeHh6sXLmyUt8Ar9CfZ5KY8f1RDsUaaRviwycPdODWhv72\nDqtSUVrr61cy95B0LpqQKKWOA3drreOUUsHANq11M6XUfMvyiqvrFW5rNBqtO42OjrZZY4QQQlRf\n8fHxbNiwgbi4OEJCQhgyZAgBAQH2DuuaEjMK+DIyjd/P5eDvauCBNp70qO+KoRrNnxIWFmZd9vHx\nuemGlbaHRAM/K6U0MF9rvQCoU5hkWJKS2pa69YBzRbaNtZTFIYQQQtykoKAgHnvsMXuHUSpZ+SbW\n/pXJ91EZAIxq4cHQZh64OlafRMTWSpuQ3KG1vmBJOjYrpf66Rt3i/rdL7Ibp3LlzKUOo+sLDw4Ga\n1eZCNbXtNbXdIG2Hmtf2mtpu+LvtHTt2YvX+WGZvOU5iWg5D29fl1f7Nq/U4EaPRaJP3KVVCorW+\nYHm+qJRaA3QBEpRSwUVO2Vy0VI8FQotsHgJcsEm0QgghRCV1NDGX6Z/tJPJ8Ku1DfZk/rhMd6/vZ\nO6wq47rXGCmlPJRSXoXLQF8gElgPjLdUGw+ssyyvBx5WZrcBxqLjR4QQQojq5OzlTD7YncKb25NJ\nSs9lzpj2rHnqdklGblBpekjqAGssNzByBL7SWv+klNoHrFJKPQqcBUZZ6m/EfMnvCcyX/T5i86iF\nEEIIO0vLzuPTrSf4784YFCZGt/Rg+pjuuDlX7Wns7eW6CYnW+hTQrpjyy0DvYso18LRNohNCCFEl\nbN26lffee4+LFy/SpUsXnnrqKdq2bWvvsMpFgUmzKvwcH/58nEvpuYzoGELf4GxquTlIMlIGMlOr\nEEKIMnnnnXd44403rK8PHDjAokWL+Oqrrxg1atQ1tqx6dp24xIwNR/krPo1bG/qxeMKttA3xtQ5q\nFTdPEhIhhBA37dixY7zxxhsYDAYmTJhAx44d2b9/P4sXL+axxx5jwIABeHp62jvMMjt9KYP/23iM\nzUcTCPFz498PdmRA6yBUNZpPxN4kIRFCCHHTVqxYAcAjjzzCE088AcBTTz3FkSNH2Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcec0f048>"
"<matplotlib.figure.Figure at 0x1f09bfe65f8>"
]
},
"metadata": {},
@@ -4298,7 +3884,7 @@
},
{
"cell_type": "code",
"execution_count": 46,
"execution_count": 33,
"metadata": {
"collapsed": true
},
@@ -4316,7 +3902,7 @@
},
{
"cell_type": "code",
"execution_count": 47,
"execution_count": 34,
"metadata": {
"scrolled": false
},
@@ -4325,7 +3911,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcfee5400>"
"<matplotlib.figure.Figure at 0x1f09bfe6240>"
]
},
"metadata": {},
@@ -4357,14 +3943,14 @@
},
{
"cell_type": "code",
"execution_count": 48,
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcec38e10>"
"<matplotlib.figure.Figure at 0x1f09d2fcb70>"
]
},
"metadata": {},
@@ -4399,14 +3985,14 @@
},
{
"cell_type": "code",
"execution_count": 49,
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcec15c88>"
"<matplotlib.figure.Figure at 0x1f09c167c50>"
]
},
"metadata": {},
@@ -4444,14 +4030,14 @@
},
{
"cell_type": "code",
"execution_count": 50,
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcfffc9b0>"
"<matplotlib.figure.Figure at 0x1f09d3892b0>"
]
},
"metadata": {},
@@ -4489,13 +4075,13 @@
},
{
"cell_type": "code",
"execution_count": 51,
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e2221e31cf4d4600bc33c6cc1f23592d",
"model_id": "30ca2a57b74e4ce0bc389ef82e37922f",
"version_major": 2,
"version_minor": 0
},
@@ -4540,14 +4126,14 @@
},
{
"cell_type": "code",
"execution_count": 52,
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcff48828>"
"<matplotlib.figure.Figure at 0x1f09d36d198>"
]
},
"metadata": {},
@@ -4574,14 +4160,14 @@
},
{
"cell_type": "code",
"execution_count": 53,
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAC+CAYAAAAIj2Q7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xd8Tff/wPHXvTd7D9khQ8QKYsZo\nUFqUCGrWLkUoqsrP6lAUtTq0SmdsamusKkFJaOwRO1YSIkMiQ5Kbez+/P25zKl97Jvg8H4/7yL3n\nnvE559yT+76f8/m8PyohBJIkSZIkScVBXdwFkCRJkiTp1SUDEUmSJEmSio0MRCRJkiRJKjYyEJEk\nSZIkqdgYFXcB7iYjI0O2oJUkSZKkl4ytra3qf6fJGhFJkiRJkoqNDEQkSZIkSSo2JfLWzO1sbW2L\nuwivFCEEyZl5XLmRQ/yNWySm55KQnkPsxWuk5Oi5kQ+ZuQV3LGdvYYyztRnONqY4WZniaGWCo5Up\nDpYmlLIywd7CBEdLU+wsjbE2NUKluqN27qVRoNOTcUtLanY+KZl5JGflkVz492YeSZm5XMvIJelm\nHll5RY+lsUaFm605nvbmeDla4OVoibejBWUcLPFytMDStOglu3//fgBq1ar13PZPuj95TkoeeU6K\nV0ZGxn3fL/GBiPT05Rfoib+Rw6XUHC6lZnMxNYcraTlcTsvhyo0ccrX6IvPbWRhjbyJwsdLwupcr\nbnbmuNma4W5njquNIfgwNdIU096UPEYaNY5WpjhameLvYn3febPyCriWcYv4G7dISP/3741bXLmR\nw58nkkjNzi8yv4uNKT6lLJWHLj2X0jZG6PUCtfrlDe4kSXp5yUDkJaXXC67dzCUuOZu4lCzikrM5\nn5zFxdRsEm7cQn9bc2ALEw1lHCzwKWVJI38nyjhaUNrBAk87c9ztzLE0NbrtF0VAMe3Ry8nK1Ag/\nZ2v8nO8esGTmav8NGHO4mJrNhRTDY8uJJNJuC1LMtm2mnLM15VysKO9iTQU3Gyq6WuNkbfpS1z5J\nkvTik4HIC06nF1xOy+FMUibnrmdx/noWZ69ncT45i5x8nTKfpYkGXycrAkvb0y7QgzL/Vvl7OVpS\nyspEflmVUNZmxgR42BLgcectyowcLRv+juHKTR355o6cScpkz7kUVh9MUOZxsDShgqs1FVxtCPCw\noaqnLT6lrNDI2hPpBSCEIC0tDb1e/+CZ78PKygqA5OTkp1Es6T7UajUODg6P9J0iA5EXSHJmHqev\nZXLq2k1OXcvkTJLhcfutFDdbM/ycrehcuzRlnazwdbKkrJMVzvKX8UvH1sIYf0cT/B2hVq1KyvT0\nnHxOXcvk1FXD5+TktUyW/HNJ+ZxYmGgIcDcEN9VK2xJY2o4yDhby8yGVOGlpaVhaWmJmZvZE67Gw\nsADA0tLyaRRLuo/c3FzS0tJwdHR86GVkIFICaXV6zl3P4kTiTeXL5NS1m6Rk/VcVX8rKlAqu1nSt\n40UFV0OVvJ+zFdZmxsVYcqkksLMwoa6vI3V9//tHoNMLzidncSw+g2MJGRyNT2fJP5f4dY8hOHGw\nNKGapy3VSttRo4w91cvYyc+SVOz0ev0TByHS82VmZkZmZuYjLSMDkWKWq9Vx6lomx+LTOZ5wkxNX\nMzhzLYt8neELwtRITXlXa5pUcKa8q+G+f3lXaxytTIu55NKLRKNW4e9ijb+LNe1regKG3j2nkzI5\nfCWdI1fSOXwlnR1nkhEC1Cqo4GpDLW97ank7UMfbAVdb+YUgSdLTJwOR5yi/QM+ZpMx/f5EafpWe\nvpZJwb8tR+0tjKnsbsu7Dbyp5G5DZXdbfEpZyvv50jNhpFFT2d2Wyu62dAvyAgyNYw9fSWf/xRvs\nv5TGygPxLIi+BEAZBwuCfByo4+NAXV9HPO3N5e0cSZKemAxEnhG9XhCXksXBy+kci8/gaEIGJ6/e\nJL/AUNNha25MVU9b+jf0paqn4X69h538xy4VL2szY4LLORFczgkw1JqcupbJvgtp7ItLZevJJFYc\niAfAw86c+mUdaeBXivp+jjhbyxoT6eXz7bff8sMPP3Dt2jVGjRrF6NGjGT9+PFZWVowYMYLw8HCa\nNWuGu7t7cRf1hSUDkackI0fLwSs3OHQ5nUOXb3D4SrqS+MvK1IgADxt61/emioctVTxs8XKUjQOl\nks9Io1Z67fR9zQe9XnD2ehb7LqQSfT6VP2P/C0z8Xax4zc+JRuWdCPJxwMxY5paRXnxz5sxh06ZN\n+Pj43PX98PBwAgICHikQKSgowMhIfv0WkkfiMQhh6DJrqL6+wYFLaZxJygL+u7feupo71UvbUb2M\nHb6lrGSyKemloFarKP9vO6We9bzR6QWxiTfZcz6FPedSWLTvEr/uuYCpkZq6vo408neicXknfJ2s\nirvokvTIwsLCiIuLIzQ0lD59+nD+/Hm+++475f2VK1eyf/9+unXrhrm5OdHR0cTGxjJ8+HCysrIo\nVaoU4eHhuLm50bhxY+rXr8+ePXsIDQ3lo48+KsY9K1lkIPIQ8gv0nEjM4MClG0rwkZKVB4C1mRE1\nytjTuqo7Nb3tqeZpd0cabkl6WWnUKqp42lLF05awRmW5la9j34VUdp5JZueZZCZExDIhArwdLWhc\n3pnXKzjL2hLpsXWeF/1Yy+n1hpxKanXRz93yAfXuu9zcuXPZvHkzkZGRRERE3PF+hw4d+O6775gx\nYwa1atVCq9UyZMgQ1q1bh5OTE8uXL2fcuHH8+uuvAKSnp7Nz587H2oeXmfzGvIuMW1oOXjI01ou5\neIMjV9LJ+7dtR2kHc4LLlaKmlz21vO3xd7aWtR2S9C9zEw2NyzvTuLwzAFfScthx+jrbT11n6T+X\nCY+6iLmxhgZ+pXizkjNNK7pQSvYAk14Sp0+f5vjx47z55psA6HQ63NzclPc7d+5cXEUr0WQgAqRm\n5SmN8fZdSON0UiZCGH7tBbjb0C3Iy9CN0cseZxvZIE+SHlZpBwt61POmRz1vcrU6ouNSiTx1nW0n\nr/PXySRUqmPUKGPPm5VcaFbJRd7Cke7rQTUY95KdnQ08+4RmQggqV65MdPTda25kQrW7eyUDkZSs\nPPbFpbHvQip741KV9h3mxhpqedvTsoobtbztCSxth4XJK3mIJOmpMzPW8Hp5Z14v78znoYLYqzfZ\nGpvE1tgkpm46xdRNp/B3saJFZVeaB7hSyc1GNuiWSjxra2slgVf58uVJTk4mOjqaevXqodVqOXPm\nDJUrVy7mUpZsr8S37PXMXPbFpbH33xqPc9cNgYeliYZa3g60re5BkI8jVT1tMdaoi7m0kvTyU6lU\nSg6TYW/4k5B+iz9PXGPz8Wt8F3mOb7efo4yDBS0CXGkR4Eqgp528BSqVSL179yYsLExprLpy5UqG\nDh1KRkYGBQUFDBs2TAYiD6ASQjx4rucsIyNDKZSt7Z2DfRVKTEwkKysLHx8fjI3/S0d9e+CxNy6V\n88mGajkrUyNqedsr6a8D3G0wkoHHQ/lv9N1axVwS6XYv43lJycpja2wSm45fI/p8ClqdwM3WjOaV\nXWlZxY2aXvYlOsnfy3hOiktycjJOTk5PvJ7ndWtGMvjf85aRkaE8t7W1vePifSFrRI4dO8bgwYPZ\ntWsXAK5eZekwaCx2/nWIjktVajysTI2o7W1Pp1qlCZKBhyS9EEpZmfJOnTK8U6cMGbe0bDtpCEqW\n/NvY1cnalJYBrrSq6k4tL3tZUyJJL7gXJhCJj4/n1q1bmJiY8Hqzt8ixcMOpWRjmXtVQOZTmjzQw\n3neB+uVc6FDTk3q+jlSWgYckvdBszY15u4Ynb9fwJCuvgMhT19l47CrLYq4wP/oSLjamtKziRkhV\nN2qUsZdtSiTpBVTiA5GYmBjeHzKUowmZmHlXw9KnBpbdv8dKY4SJRkUtbwdM0i+y7JvPsdGm8+Pl\ni5iaPnp3wIsXLxIeHs7ly5fx9/end+/euLq6PoM9kiTpcViZGtG6mjutq7mTnVfAXyeT2HD0Kov3\nXea3PRfxtDenTaA7bQM9KOdiXdzFlSTpIZX4QKTNrD8xqj8CVxMzhF5P/rVz3PxnDa3rlOPHiaMx\nM9YgRBC7fhjLhYRrnD59mqpVqz7SNn7//Xe6d++OVqtVpn3xxResW7eOJk2aPO1dkiTpCVmaGtEm\n0IM2gR5k5mr580QSaw8n8MOO83wfeZ5Kbja0rW4ISmSXe0kq2Up8IKKycsTx5hk+H9SV4PKuBFX/\niGtnz7IpthQmX44B4NatW6SlpQGP3hjp2rVr9OzZE61WS4cOHWjatClr1qzhzz//pFOnTly5cgVz\nc/Onvl+SJD0d1mbGtK/pSfuanlzPzCXiyFXWHU5g8kZDl+Dgck60r+lJs0ouMqOrJJVAJb4BReLP\nA/FMiiK0hhf2lqYMHz4cgJSUFGbPns3u3bvp0qULGRkZlC1bljFjxvDmm28yduxY4uPj77leIQS5\nubksWbKEvLw8WrVqxYoVKwgLC2PTpk1Ur16d1NRU/vjjjweWUQjBvn37+Pnnn4mIiCA/P/+p7b8k\nSQ/P2dqMPq/5sG7wa2z/qBGDGvtxNimToUsPUfuLvxiz+igHLt2gJPYWlKRXVbEFIiqVqoVKpTqt\nUqnOqVSq0febd8uWLcqXe7t27ZQGacOGDSM4OJg//vgDY2Njzp8/z4oVK/jrr7+YMmUKAQEBSle6\nQtnZ2YwcOZJSpUphbm7OhAkTAKhTp44yj1qtVl5fvXr1vvuRlJREcHAwdevWpV+/frRu3RofHx/2\n7NnziEdEkqSnydfJihHNy7N7VBOWvBfEm5VcWHc4kfY/RNF01k7m7jzP9Zu5xV1M6Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fd00e9ac8>"
"<matplotlib.figure.Figure at 0x1f09c144be0>"
]
},
"metadata": {},
@@ -4637,14 +4223,14 @@
},
{
"cell_type": "code",
"execution_count": 54,
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcece6048>"
"<matplotlib.figure.Figure at 0x1f09d2cb198>"
]
},
"metadata": {},
@@ -4686,7 +4272,7 @@
},
{
"cell_type": "code",
"execution_count": 55,
"execution_count": 42,
"metadata": {
"scrolled": true
},
@@ -4695,7 +4281,7 @@
"data": {
"image/png": "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\nAHx8fGjWrBnu7u72Dk3TtGR0YqJp2n+GUooaNWpQo4butUDTMitdx0TTNE3TtExDJyaapmmapmUa\nOjHRNE3TNC3T0ImJpmmapmmZhk5MNE3TNE3LNHRiommapmlapqETE03TNE3TMg2dmGiapmmalmno\nxETTNE3TtExDJyaapmmapmUaukt6TdM0LcsymUw4OOjf2M+SR15NpZS/Umq7UuqUUuqEUmpg0vxP\nlFJXlVJHkqamD9j+VaXUGaXUP0qpYbY+AU3TNM32Tp8+Tffu3SlcuDDPPfccI0aM4O7du/YOy7B9\n+3Zq1qzJyy+/zIsvvki9evXYv3+/vcPK8i5dusSUKVMYP348u3fvRkSeegxpKTFJAD4UkUNKKQ/g\nL6XU1qRlX4vIpAdtqJRyBGYAjYArwEGl1K8icvJJA9c0TdMyxqFDh2jQoAHh4eHGvAkTJrB69Wr2\n7t2Lt7e3HaODPXv20LhxY+Lj43F1dUVE2LNnDw0bNuSPP/6gSpUqdo0vq/riiy8YPnw4FovFmNeo\nUSNWrlxJjhw5nlocKr3ZkFJqDTAdqANEPCIxqQV8IiKNk54PBxCRCdZ1TCaTEUBgYGC6YtE0TdNs\nr1evXhw6dIj69evTp08fTCYTEydO5MKFC7zzzjv07t3brvH16dOHgIAAWrVqxYcffojZbGbChAls\n3ryZBg0a8OWXXxrrRkZGsnr1avbs2YNSirp169KyZUvc3d3teAaZz759+xgwYABKKV566SV8fHzY\nuHEjYWFhtG7dmhEjRqRpPyVLljQee3l5qceJJV2JiVKqCLALKA98ALwFhAEBJJaqhNyz/uvAqyLS\nI+l5F6CmiPSzrqMTE03TtMzDZDLx8ssv4+LiwubNm41fyn/++SfvvfcexYoVY+nSpXaLz2w2U6tW\nLUSE7du3G/Fdv36d5s2b4+7uzo4dOwAIDQ2lZ8+eXLhwIcU+ihUrxnfffYeXl9fTDj/T+vDDD9m1\naxe9evWiR48eAPzzzz906NABV1dXNm/ebCRzERERzJ8/n61btxIVFUXlypV56623KFOmjE0SkzRX\nflVK5QBWAO+LSJhSahbwKSBJf78C3r53s1R29cBMqFq1amkNR8sgAQEBgL4WmYm+JpnLs349bty4\nAYCrqyu1a9fGxcUFwKhr4OjoaNdzt1gsODs7ExcXR7Fixbh58yYAhQsXBiBbtmxGfLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcfeb08d0>"
"<matplotlib.figure.Figure at 0x1f09d2e55c0>"
]
},
"metadata": {},
@@ -4717,7 +4303,7 @@
},
{
"cell_type": "code",
"execution_count": 56,
"execution_count": 43,
"metadata": {
"scrolled": true
},
@@ -4726,7 +4312,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fced16898>"
"<matplotlib.figure.Figure at 0x1f09c2667b8>"
]
},
"metadata": {},
@@ -4750,14 +4336,14 @@
},
{
"cell_type": "code",
"execution_count": 57,
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcea6d358>"
"<matplotlib.figure.Figure at 0x1f09bca4978>"
]
},
"metadata": {},
@@ -4781,7 +4367,7 @@
},
{
"cell_type": "code",
"execution_count": 58,
"execution_count": 45,
"metadata": {
"collapsed": true
},
@@ -4798,14 +4384,14 @@
},
{
"cell_type": "code",
"execution_count": 59,
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcff89eb8>"
"<matplotlib.figure.Figure at 0x1f09c10d668>"
]
},
"metadata": {},
@@ -4827,14 +4413,14 @@
},
{
"cell_type": "code",
"execution_count": 60,
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x27fcee47748>"
"<matplotlib.figure.Figure at 0x1f09b660e48>"
]
},
"metadata": {},
@@ -4880,7 +4466,7 @@
},
{
"cell_type": "code",
"execution_count": 61,
"execution_count": 48,
"metadata": {
"collapsed": true
},
@@ -4901,7 +4487,7 @@
},
{
"cell_type": "code",
"execution_count": 62,
"execution_count": 49,
"metadata": {},
"outputs": [
{
@@ -4910,7 +4496,7 @@
"(0.96, 0.24)"
]
},
"execution_count": 62,
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
@@ -4928,7 +4514,7 @@
},
{
"cell_type": "code",
"execution_count": 63,
"execution_count": 50,
"metadata": {},
"outputs": [
{
@@ -4952,7 +4538,7 @@
},
{
"cell_type": "code",
"execution_count": 64,
"execution_count": 51,
"metadata": {},
"outputs": [
{
@@ -4976,7 +4562,7 @@
},
{
"cell_type": "code",
"execution_count": 65,
"execution_count": 52,
"metadata": {},
"outputs": [
{
@@ -5003,7 +4589,7 @@
},
{
"cell_type": "code",
"execution_count": 66,
"execution_count": 53,
"metadata": {},
"outputs": [
{