Show More
@@ -1,787 +1,787 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 | "name": "", |
|
3 | "name": "", | |
4 | "signature": "sha256:f210f09ecd181dffaa696ef401f8613f70d69991ee9360b45edcfd7a6f62b7b6" |
|
4 | "signature": "sha256:86c779d5798c4a68bda7e71c8ef320cb7ba9d7e3d0f1bc4b828ee65f617a5ae3" | |
5 | }, |
|
5 | }, | |
6 | "nbformat": 3, |
|
6 | "nbformat": 3, | |
7 | "nbformat_minor": 0, |
|
7 | "nbformat_minor": 0, | |
8 | "worksheets": [ |
|
8 | "worksheets": [ | |
9 | { |
|
9 | { | |
10 | "cells": [ |
|
10 | "cells": [ | |
11 | { |
|
11 | { | |
12 | "cell_type": "heading", |
|
12 | "cell_type": "heading", | |
13 | "level": 1, |
|
13 | "level": 1, | |
14 | "metadata": {}, |
|
14 | "metadata": {}, | |
15 | "source": [ |
|
15 | "source": [ | |
16 | "Custom Display Logic" |
|
16 | "Custom Display Logic" | |
17 | ] |
|
17 | ] | |
18 | }, |
|
18 | }, | |
19 | { |
|
19 | { | |
20 | "cell_type": "heading", |
|
20 | "cell_type": "heading", | |
21 | "level": 2, |
|
21 | "level": 2, | |
22 | "metadata": {}, |
|
22 | "metadata": {}, | |
23 | "source": [ |
|
23 | "source": [ | |
24 | "Overview" |
|
24 | "Overview" | |
25 | ] |
|
25 | ] | |
26 | }, |
|
26 | }, | |
27 | { |
|
27 | { | |
28 | "cell_type": "markdown", |
|
28 | "cell_type": "markdown", | |
29 | "metadata": {}, |
|
29 | "metadata": {}, | |
30 | "source": [ |
|
30 | "source": [ | |
31 | "As described in the [Rich Output](Rich Output.ipynb) tutorial, the IPython display system can display rich representations of objects in the following formats:\n", |
|
31 | "As described in the [Rich Output](Rich Output.ipynb) tutorial, the IPython display system can display rich representations of objects in the following formats:\n", | |
32 | "\n", |
|
32 | "\n", | |
33 | "* JavaScript\n", |
|
33 | "* JavaScript\n", | |
34 | "* HTML\n", |
|
34 | "* HTML\n", | |
35 | "* PNG\n", |
|
35 | "* PNG\n", | |
36 | "* JPEG\n", |
|
36 | "* JPEG\n", | |
37 | "* SVG\n", |
|
37 | "* SVG\n", | |
38 | "* LaTeX\n", |
|
38 | "* LaTeX\n", | |
39 | "* PDF\n", |
|
39 | "* PDF\n", | |
40 | "\n", |
|
40 | "\n", | |
41 | "This Notebook shows how you can add custom display logic to your own classes, so that they can be displayed using these rich representations. There are two ways of accomplishing this:\n", |
|
41 | "This Notebook shows how you can add custom display logic to your own classes, so that they can be displayed using these rich representations. There are two ways of accomplishing this:\n", | |
42 | "\n", |
|
42 | "\n", | |
43 | "1. Implementing special display methods such as `_repr_html_` when you define your class.\n", |
|
43 | "1. Implementing special display methods such as `_repr_html_` when you define your class.\n", | |
44 | "2. Registering a display function for a particular existing class.\n", |
|
44 | "2. Registering a display function for a particular existing class.\n", | |
45 | "\n", |
|
45 | "\n", | |
46 | "This Notebook describes and illustrates both approaches." |
|
46 | "This Notebook describes and illustrates both approaches." | |
47 | ] |
|
47 | ] | |
48 | }, |
|
48 | }, | |
49 | { |
|
49 | { | |
50 | "cell_type": "markdown", |
|
50 | "cell_type": "markdown", | |
51 | "metadata": {}, |
|
51 | "metadata": {}, | |
52 | "source": [ |
|
52 | "source": [ | |
53 | "Import the IPython display functions." |
|
53 | "Import the IPython display functions." | |
54 | ] |
|
54 | ] | |
55 | }, |
|
55 | }, | |
56 | { |
|
56 | { | |
57 | "cell_type": "code", |
|
57 | "cell_type": "code", | |
58 | "collapsed": false, |
|
58 | "collapsed": false, | |
59 | "input": [ |
|
59 | "input": [ | |
60 | "from IPython.display import (\n", |
|
60 | "from IPython.display import (\n", | |
61 | " display, display_html, display_png, display_svg\n", |
|
61 | " display, display_html, display_png, display_svg\n", | |
62 | ")" |
|
62 | ")" | |
63 | ], |
|
63 | ], | |
64 | "language": "python", |
|
64 | "language": "python", | |
65 | "metadata": {}, |
|
65 | "metadata": {}, | |
66 | "outputs": [], |
|
66 | "outputs": [], | |
67 |
"prompt_number": |
|
67 | "prompt_number": 1 | |
68 | }, |
|
68 | }, | |
69 | { |
|
69 | { | |
70 | "cell_type": "markdown", |
|
70 | "cell_type": "markdown", | |
71 | "metadata": {}, |
|
71 | "metadata": {}, | |
72 | "source": [ |
|
72 | "source": [ | |
73 | "Parts of this notebook need the matplotlib inline backend:" |
|
73 | "Parts of this notebook need the matplotlib inline backend:" | |
74 | ] |
|
74 | ] | |
75 | }, |
|
75 | }, | |
76 | { |
|
76 | { | |
77 | "cell_type": "code", |
|
77 | "cell_type": "code", | |
78 | "collapsed": false, |
|
78 | "collapsed": false, | |
79 | "input": [ |
|
79 | "input": [ | |
80 | "%matplotlib inline\n", |
|
80 | "%matplotlib inline\n", | |
81 | "import numpy as np\n", |
|
81 | "import numpy as np\n", | |
82 | "import matplotlib.pyplot as plt" |
|
82 | "import matplotlib.pyplot as plt" | |
83 | ], |
|
83 | ], | |
84 | "language": "python", |
|
84 | "language": "python", | |
85 | "metadata": {}, |
|
85 | "metadata": {}, | |
86 | "outputs": [], |
|
86 | "outputs": [], | |
87 |
"prompt_number": |
|
87 | "prompt_number": 2 | |
88 | }, |
|
88 | }, | |
89 | { |
|
89 | { | |
90 | "cell_type": "heading", |
|
90 | "cell_type": "heading", | |
91 | "level": 2, |
|
91 | "level": 2, | |
92 | "metadata": {}, |
|
92 | "metadata": {}, | |
93 | "source": [ |
|
93 | "source": [ | |
94 | "Special display methods" |
|
94 | "Special display methods" | |
95 | ] |
|
95 | ] | |
96 | }, |
|
96 | }, | |
97 | { |
|
97 | { | |
98 | "cell_type": "markdown", |
|
98 | "cell_type": "markdown", | |
99 | "metadata": {}, |
|
99 | "metadata": {}, | |
100 | "source": [ |
|
100 | "source": [ | |
101 | "The main idea of the first approach is that you have to implement special display methods when you define your class, one for each representation you want to use. Here is a list of the names of the special methods and the values they must return:\n", |
|
101 | "The main idea of the first approach is that you have to implement special display methods when you define your class, one for each representation you want to use. Here is a list of the names of the special methods and the values they must return:\n", | |
102 | "\n", |
|
102 | "\n", | |
103 | "* `_repr_html_`: return raw HTML as a string\n", |
|
103 | "* `_repr_html_`: return raw HTML as a string\n", | |
104 | "* `_repr_json_`: return raw JSON as a string\n", |
|
104 | "* `_repr_json_`: return raw JSON as a string\n", | |
105 | "* `_repr_jpeg_`: return raw JPEG data\n", |
|
105 | "* `_repr_jpeg_`: return raw JPEG data\n", | |
106 | "* `_repr_png_`: return raw PNG data\n", |
|
106 | "* `_repr_png_`: return raw PNG data\n", | |
107 | "* `_repr_svg_`: return raw SVG data as a string\n", |
|
107 | "* `_repr_svg_`: return raw SVG data as a string\n", | |
108 | "* `_repr_latex_`: return LaTeX commands in a string surrounded by \"$\"." |
|
108 | "* `_repr_latex_`: return LaTeX commands in a string surrounded by \"$\"." | |
109 | ] |
|
109 | ] | |
110 | }, |
|
110 | }, | |
111 | { |
|
111 | { | |
112 | "cell_type": "markdown", |
|
112 | "cell_type": "markdown", | |
113 | "metadata": {}, |
|
113 | "metadata": {}, | |
114 | "source": [ |
|
114 | "source": [ | |
115 | "As an illustration, we build a class that holds data generated by sampling a Gaussian distribution with given mean and standard deviation. Here is the definition of the `Gaussian` class, which has a custom PNG and LaTeX representation." |
|
115 | "As an illustration, we build a class that holds data generated by sampling a Gaussian distribution with given mean and standard deviation. Here is the definition of the `Gaussian` class, which has a custom PNG and LaTeX representation." | |
116 | ] |
|
116 | ] | |
117 | }, |
|
117 | }, | |
118 | { |
|
118 | { | |
119 | "cell_type": "code", |
|
119 | "cell_type": "code", | |
120 | "collapsed": false, |
|
120 | "collapsed": false, | |
121 | "input": [ |
|
121 | "input": [ | |
122 | "from IPython.core.pylabtools import print_figure\n", |
|
122 | "from IPython.core.pylabtools import print_figure\n", | |
123 | "from IPython.display import Image, SVG, Math\n", |
|
123 | "from IPython.display import Image, SVG, Math\n", | |
124 | "\n", |
|
124 | "\n", | |
125 | "class Gaussian(object):\n", |
|
125 | "class Gaussian(object):\n", | |
126 | " \"\"\"A simple object holding data sampled from a Gaussian distribution.\n", |
|
126 | " \"\"\"A simple object holding data sampled from a Gaussian distribution.\n", | |
127 | " \"\"\"\n", |
|
127 | " \"\"\"\n", | |
128 | " def __init__(self, mean=0.0, std=1, size=1000):\n", |
|
128 | " def __init__(self, mean=0.0, std=1, size=1000):\n", | |
129 | " self.data = np.random.normal(mean, std, size)\n", |
|
129 | " self.data = np.random.normal(mean, std, size)\n", | |
130 | " self.mean = mean\n", |
|
130 | " self.mean = mean\n", | |
131 | " self.std = std\n", |
|
131 | " self.std = std\n", | |
132 | " self.size = size\n", |
|
132 | " self.size = size\n", | |
133 | " # For caching plots that may be expensive to compute\n", |
|
133 | " # For caching plots that may be expensive to compute\n", | |
134 | " self._png_data = None\n", |
|
134 | " self._png_data = None\n", | |
135 | " \n", |
|
135 | " \n", | |
136 | " def _figure_data(self, format):\n", |
|
136 | " def _figure_data(self, format):\n", | |
137 | " fig, ax = plt.subplots()\n", |
|
137 | " fig, ax = plt.subplots()\n", | |
138 | " ax.hist(self.data, bins=50)\n", |
|
138 | " ax.hist(self.data, bins=50)\n", | |
139 | " ax.set_title(self._repr_latex_())\n", |
|
139 | " ax.set_title(self._repr_latex_())\n", | |
140 | " ax.set_xlim(-10.0,10.0)\n", |
|
140 | " ax.set_xlim(-10.0,10.0)\n", | |
141 | " data = print_figure(fig, format)\n", |
|
141 | " data = print_figure(fig, format)\n", | |
142 | " # We MUST close the figure, otherwise IPython's display machinery\n", |
|
142 | " # We MUST close the figure, otherwise IPython's display machinery\n", | |
143 | " # will pick it up and send it as output, resulting in a double display\n", |
|
143 | " # will pick it up and send it as output, resulting in a double display\n", | |
144 | " plt.close(fig)\n", |
|
144 | " plt.close(fig)\n", | |
145 | " return data\n", |
|
145 | " return data\n", | |
146 | " \n", |
|
146 | " \n", | |
147 | " def _repr_png_(self):\n", |
|
147 | " def _repr_png_(self):\n", | |
148 | " if self._png_data is None:\n", |
|
148 | " if self._png_data is None:\n", | |
149 | " self._png_data = self._figure_data('png')\n", |
|
149 | " self._png_data = self._figure_data('png')\n", | |
150 | " return self._png_data\n", |
|
150 | " return self._png_data\n", | |
151 | " \n", |
|
151 | " \n", | |
152 | " def _repr_latex_(self):\n", |
|
152 | " def _repr_latex_(self):\n", | |
153 | " return r'$\\mathcal{N}(\\mu=%.2g, \\sigma=%.2g),\\ N=%d$' % (self.mean,\n", |
|
153 | " return r'$\\mathcal{N}(\\mu=%.2g, \\sigma=%.2g),\\ N=%d$' % (self.mean,\n", | |
154 | " self.std, self.size)" |
|
154 | " self.std, self.size)" | |
155 | ], |
|
155 | ], | |
156 | "language": "python", |
|
156 | "language": "python", | |
157 | "metadata": {}, |
|
157 | "metadata": {}, | |
158 | "outputs": [], |
|
158 | "outputs": [], | |
159 |
"prompt_number": 3 |
|
159 | "prompt_number": 3 | |
160 | }, |
|
160 | }, | |
161 | { |
|
161 | { | |
162 | "cell_type": "markdown", |
|
162 | "cell_type": "markdown", | |
163 | "metadata": {}, |
|
163 | "metadata": {}, | |
164 | "source": [ |
|
164 | "source": [ | |
165 | "Create an instance of the Gaussian distribution and return it to display the default representation:" |
|
165 | "Create an instance of the Gaussian distribution and return it to display the default representation:" | |
166 | ] |
|
166 | ] | |
167 | }, |
|
167 | }, | |
168 | { |
|
168 | { | |
169 | "cell_type": "code", |
|
169 | "cell_type": "code", | |
170 | "collapsed": false, |
|
170 | "collapsed": false, | |
171 | "input": [ |
|
171 | "input": [ | |
172 | "x = Gaussian(2.0, 1.0)\n", |
|
172 | "x = Gaussian(2.0, 1.0)\n", | |
173 | "x" |
|
173 | "x" | |
174 | ], |
|
174 | ], | |
175 | "language": "python", |
|
175 | "language": "python", | |
176 | "metadata": {}, |
|
176 | "metadata": {}, | |
177 | "outputs": [ |
|
177 | "outputs": [ | |
178 | { |
|
178 | { | |
179 | "latex": [ |
|
179 | "latex": [ | |
180 | "$\\mathcal{N}(\\mu=2, \\sigma=1),\\ N=1000$" |
|
180 | "$\\mathcal{N}(\\mu=2, \\sigma=1),\\ N=1000$" | |
181 | ], |
|
181 | ], | |
182 | "metadata": {}, |
|
182 | "metadata": {}, | |
183 | "output_type": "pyout", |
|
183 | "output_type": "pyout", | |
184 | "png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAENCAYAAAASUO4dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGolJREFUeJzt3XtwlNUdxvFnMUGhkgkpuKHANJoQIreQGEWttBvD4pWY\nWAdhOpgqOKJ26m2wQG0b6yhL1T9Q2k5FSrcyxeK0RmqRAQoLxVGDXOoFYqhEQbrZAkkwEDQmnP6B\nbBMgZHezm83ZfD8zmey+++77/rJsnhzOnnNehzHGCABgrT7xLgAA0DUEOQBYjiAHAMsR5ABgOYIc\nACxHkAOA5QhyALAcQQ4AliPIEZaampp4lxBTfr9fTU1N8S4DCAtBjnPaunWrcnNzde+996qmpkZv\nv/12vEuKqcGDB+tXv/pVvMsAwuJgij4kafbs2frOd76jGTNmtNt+77336tZbb9Xll1+uBQsWaOHC\nhTE5/5/+9Cf5/X5VVlaqtLRU06ZNi8l5Trdz504tX75czzzzTHDb1q1btXv3bt1xxx3dUkNHzlZb\nRUWFdu3apT59+mjo0KHBf69wtyPBGMAYc+WVV5rbbrut3bYPPvjArF692hhjzM6dO81zzz0Xk3Pv\n2bMneOyDBw+a1NRUs3fv3picq61nn33WlJaWmh/+8IdnPDZjxoyQj/P222+bkpISM3ToUPPVV18Z\nY4ypra01t99+u7npppvMm2++GZXaGhoaTH5+fvD+lVdeaQ4dOhTW9oMHD4ZdC3o+ulag1tZWTZo0\nSRs2bNAXX3wR3O7z+XTttddKkl5//fXg7Wj78MMPg90ZgwYNUlZWlrZt2xaTc7X18MMP65Zbbjnr\nY4MHD9a///3vkI4zYcIEXX/99crOztZf/vIXSZLT6dTNN9+sV155RVdffXVUatu8ebNGjRoVvJ+b\nm6sNGzaEtX3jxo1h14KeLyneBSD+PvzwQxUVFWnnzp164403VFpaKkk6fvy4zj//fEknuxvmz58f\n1nH37t2rJUuWdPj4lVdeqVtuuUU33nij3njjDUmSMUZ+v19ZWVkR/SyhnvMU00HPYm5urrZt2xZS\nHSdOnFBycrJ+/OMf6+mnn9btt98uSTp27Jj69esXtdo+++wzpaamBu+npqZqz549SktLC2s7Eg9B\nDlVWVmrGjBmaNm2aVqxYodLSUn355Zfq27dvcJ+mpiY5HI7g/dbWVn3ve9/Tli1bJEkzZ87UvHnz\n2gXfJZdcogULFnR6/uTkZI0ZM0aS9Pe//10FBQUaP378Wfetrq7WY489poMHD+rdd9+Vy+XSTTfd\npNmzZ4d1zlPa/kxtDRw4UNXV1SEdY/v27SooKNCYMWP08MMPa/v27crPzz/j2F2traGhQRdccEHw\nft++fXX06FE5HI6wtiPx0LUCHT16VOeff76Ki4u1du1a/fe//1VlZaUmTJgQ3Ke1tbXdc9566y19\n+9vflnSy5fjWW29F3Io+paGhQX/4wx+0fPnysz5eV1en2bNn649//KM2btyooqIiLV++PBjikeio\nRd6vXz81NzeHdIz33ntP48aNU58+fXTffffp+eef10cffaSRI0dGXNfZahswYEC7bcePH1daWlrY\n25F4aJH3ckeOHFH//v0lnQyK66+/XosXL9Y3v/lN3X///cH9kpLav1XWrFmj6667TpK0Y8cOjR07\n9oxjh9OVYIyRx+PRiy++qAsvvFCffvpp8A/FKb/+9a91//33B1uZX375ZbD2SM4pddwiP3LkSMih\nd+LEieDtWbNmKSsrS6NGjdIDDzwQ1doyMzP17rvvBu8fPnxY+fn5Sk1NDWn7oUOHlJ+fH9LPBMvE\n61NWxFdjY6PZuXOn+e1vf9tuJMO2bdtMSkqKmTdvXrv977jjDtPY2Bi8X1BQYN5//31jjDG//OUv\nze9+9zvz2muvRVzPokWLzLvvvmv8fr955513jM/nM8YYU11dbVpbW40xxsyZM8fs2rXLGHNyRM0j\njzwS8flOWbZs2VlHrTz//PNm/fr1wftt62irubnZeL3edtvuuecec8MNN0S9tqNHj5oxY8YE748b\nN84EAoGwtyPxnFdeXl4e7z8m6H4+n08TJ07UuHHjNGXKlOD2IUOG6IMPPlB+fn671lt9fb2OHTum\niy++WAcPHtSCBQs0cOBANTY26siRI/r888918cUX65JLLgm7li1btmjatGl64YUX9Oyzz2rp0qV6\n4oknlJKSomuuuUYjRoxQVlaWsrKytHr1ah04cEA7d+7U/Pnz1adP5L2Dixcv1vLly/Xee+/pyJEj\nys/PD364+8ILL2j27NnB/4m0reOUrVu36oEHHtC+ffs0YcIEpaSkSDrZF378+HFNnDgxqrUNGDBA\nAwYM0N/+9jf5fD5NmTJFV111lfr27RvWdiSgzpK+qqrKjB8/PviVkpJiFi1aZA4fPmwmTZpkRowY\n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\nBAJyOp2SJKfTqUAg0OlzIhq14na7VVtbe8b2p556SlOmTAn5OIw7PVNHr+2TTz6pe++9Vz//+c8l\nST/72c/0yCOPaOnSpd1dotV4z0Xfm2++qSFDhujgwYNyu93KycnRxIkT411WQji5LELn79mIgnzd\nunVhP+f0CUSfffaZhg4dGsnpE1qor+2sWbPC+qOJk0KZyIbwDBkyRJI0ePBglZaWqrKykiDvAqfT\nqdraWqWnp8vv9+uiiy7q9Dkx7Vpp229WXFysl19+Wc3NzaqpqdGePXv4hDtMfr8/ePvVV19t90k3\nQlNQUKA9e/bok08+UXNzs/785z+ruLg43mVZq6mpSY2NjZKkY8eOae3atbwvu6i4uFher1eS5PV6\nVVJS0vmTov0p7F//+lczbNgwc8EFFxin02muv/764GNPPvmkyczMNCNHjjRr1qyJ9qkT3owZM8zY\nsWPNuHHjzC233GJqa2vjXZKVVq9ebbKzs01mZqZ56qmn4l2O1fbu3Wtyc3NNbm6uGT16NK9nmKZN\nm2aGDBlikpOTzbBhw8zvf/97c/jwYVNUVGRGjBhh3G63qa+v7/Q4TAgCAMuxdBwAWI4gBwDLEeQA\nYDmCHAAsR5ADgOUIcgCwHEEOAJYjyAHAcv8DUrLE4leGVckAAAAASUVORK5CYII=\n", |
|
184 | "png": "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\n", | |
185 |
"prompt_number": 4 |
|
185 | "prompt_number": 4, | |
186 | "text": [ |
|
186 | "text": [ | |
187 |
"<__main__.Gaussian at 0x10 |
|
187 | "<__main__.Gaussian at 0x106e7ae10>" | |
188 | ] |
|
188 | ] | |
189 | } |
|
189 | } | |
190 | ], |
|
190 | ], | |
191 |
"prompt_number": 4 |
|
191 | "prompt_number": 4 | |
192 | }, |
|
192 | }, | |
193 | { |
|
193 | { | |
194 | "cell_type": "markdown", |
|
194 | "cell_type": "markdown", | |
195 | "metadata": {}, |
|
195 | "metadata": {}, | |
196 | "source": [ |
|
196 | "source": [ | |
197 | "You can also pass the object to the `display` function to display the default representation:" |
|
197 | "You can also pass the object to the `display` function to display the default representation:" | |
198 | ] |
|
198 | ] | |
199 | }, |
|
199 | }, | |
200 | { |
|
200 | { | |
201 | "cell_type": "code", |
|
201 | "cell_type": "code", | |
202 | "collapsed": false, |
|
202 | "collapsed": false, | |
203 | "input": [ |
|
203 | "input": [ | |
204 | "display(x)" |
|
204 | "display(x)" | |
205 | ], |
|
205 | ], | |
206 | "language": "python", |
|
206 | "language": "python", | |
207 | "metadata": {}, |
|
207 | "metadata": {}, | |
208 | "outputs": [ |
|
208 | "outputs": [ | |
209 | { |
|
209 | { | |
210 | "latex": [ |
|
210 | "latex": [ | |
211 | "$\\mathcal{N}(\\mu=2, \\sigma=1),\\ N=1000$" |
|
211 | "$\\mathcal{N}(\\mu=2, \\sigma=1),\\ N=1000$" | |
212 | ], |
|
212 | ], | |
213 | "metadata": {}, |
|
213 | "metadata": {}, | |
214 | "output_type": "display_data", |
|
214 | "output_type": "display_data", | |
215 | "png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAENCAYAAAASUO4dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGolJREFUeJzt3XtwlNUdxvFnMUGhkgkpuKHANJoQIreQGEWttBvD4pWY\nWAdhOpgqOKJ26m2wQG0b6yhL1T9Q2k5FSrcyxeK0RmqRAQoLxVGDXOoFYqhEQbrZAkkwEDQmnP6B\nbBMgZHezm83ZfD8zmey+++77/rJsnhzOnnNehzHGCABgrT7xLgAA0DUEOQBYjiAHAMsR5ABgOYIc\nACxHkAOA5QhyALAcQQ4AliPIEZaampp4lxBTfr9fTU1N8S4DCAtBjnPaunWrcnNzde+996qmpkZv\nv/12vEuKqcGDB+tXv/pVvMsAwuJgij4kafbs2frOd76jGTNmtNt+77336tZbb9Xll1+uBQsWaOHC\nhTE5/5/+9Cf5/X5VVlaqtLRU06ZNi8l5Trdz504tX75czzzzTHDb1q1btXv3bt1xxx3dUkNHzlZb\nRUWFdu3apT59+mjo0KHBf69wtyPBGMAYc+WVV5rbbrut3bYPPvjArF692hhjzM6dO81zzz0Xk3Pv\n2bMneOyDBw+a1NRUs3fv3picq61nn33WlJaWmh/+8IdnPDZjxoyQj/P222+bkpISM3ToUPPVV18Z\nY4ypra01t99+u7npppvMm2++GZXaGhoaTH5+fvD+lVdeaQ4dOhTW9oMHD4ZdC3o+ulag1tZWTZo0\nSRs2bNAXX3wR3O7z+XTttddKkl5//fXg7Wj78MMPg90ZgwYNUlZWlrZt2xaTc7X18MMP65Zbbjnr\nY4MHD9a///3vkI4zYcIEXX/99crOztZf/vIXSZLT6dTNN9+sV155RVdffXVUatu8ebNGjRoVvJ+b\nm6sNGzaEtX3jxo1h14KeLyneBSD+PvzwQxUVFWnnzp164403VFpaKkk6fvy4zj//fEknuxvmz58f\n1nH37t2rJUuWdPj4lVdeqVtuuUU33nij3njjDUmSMUZ+v19ZWVkR/SyhnvMU00HPYm5urrZt2xZS\nHSdOnFBycrJ+/OMf6+mnn9btt98uSTp27Jj69esXtdo+++wzpaamBu+npqZqz549SktLC2s7Eg9B\nDlVWVmrGjBmaNm2aVqxYodLSUn355Zfq27dvcJ+mpiY5HI7g/dbWVn3ve9/Tli1bJEkzZ87UvHnz\n2gXfJZdcogULFnR6/uTkZI0ZM0aS9Pe//10FBQUaP378Wfetrq7WY489poMHD+rdd9+Vy+XSTTfd\npNmzZ4d1zlPa/kxtDRw4UNXV1SEdY/v27SooKNCYMWP08MMPa/v27crPzz/j2F2traGhQRdccEHw\nft++fXX06FE5HI6wtiPx0LUCHT16VOeff76Ki4u1du1a/fe//1VlZaUmTJgQ3Ke1tbXdc9566y19\n+9vflnSy5fjWW29F3Io+paGhQX/4wx+0fPnysz5eV1en2bNn649//KM2btyooqIiLV++PBjikeio\nRd6vXz81NzeHdIz33ntP48aNU58+fXTffffp+eef10cffaSRI0dGXNfZahswYEC7bcePH1daWlrY\n25F4aJH3ckeOHFH//v0lnQyK66+/XosXL9Y3v/lN3X///cH9kpLav1XWrFmj6667TpK0Y8cOjR07\n9oxjh9OVYIyRx+PRiy++qAsvvFCffvpp8A/FKb/+9a91//33B1uZX375ZbD2SM4pddwiP3LkSMih\nd+LEieDtWbNmKSsrS6NGjdIDDzwQ1doyMzP17rvvBu8fPnxY+fn5Sk1NDWn7oUOHlJ+fH9LPBMvE\n61NWxFdjY6PZuXOn+e1vf9tuJMO2bdtMSkqKmTdvXrv977jjDtPY2Bi8X1BQYN5//31jjDG//OUv\nze9+9zvz2muvRVzPokWLzLvvvmv8fr955513jM/nM8YYU11dbVpbW40xxsyZM8fs2rXLGHNyRM0j\njzwS8flOWbZs2VlHrTz//PNm/fr1wftt62irubnZeL3edtvuuecec8MNN0S9tqNHj5oxY8YE748b\nN84EAoGwtyPxnFdeXl4e7z8m6H4+n08TJ07UuHHjNGXKlOD2IUOG6IMPPlB+fn671lt9fb2OHTum\niy++WAcPHtSCBQs0cOBANTY26siRI/r888918cUX65JLLgm7li1btmjatGl64YUX9Oyzz2rp0qV6\n4oknlJKSomuuuUYjRoxQVlaWsrKytHr1ah04cEA7d+7U/Pnz1adP5L2Dixcv1vLly/Xee+/pyJEj\nys/PD364+8ILL2j27NnB/4m0reOUrVu36oEHHtC+ffs0YcIEpaSkSDrZF378+HFNnDgxqrUNGDBA\nAwYM0N/+9jf5fD5NmTJFV111lfr27RvWdiSgzpK+qqrKjB8/PviVkpJiFi1aZA4fPmwmTZpkRowY\nYdxut6mvr++OPzyIotra2pD3ra+vNz/96U+NMca89NJLZv78+bEqq50vv/zSbN68uVvOdcrx48fN\nQw89FPc6gFB12pwZOXKkduzYoR07dmjbtm3q37+/SktL5fF45Ha7VV1draKiInk8nu74u4Mocjqd\nIe+bmpqqQYMG6dChQ6qsrNStt94aw8r+79VXX41oHHZXvPzyy7rnnnviXgcQqrCm6K9du1ZPPPGE\n/vnPfyonJ0ebNm2S0+lUbW2tXC6XqqqqYlkr4swYoxdffFF33313vEuJmf3792v79u0dThQCeqKw\ngvyuu+5SQUGB7rvvPg0cOFD19fWSTv6Cp6WlBe8DALpPyEHe3NysoUOHateuXRo8eHC7IJektLQ0\n1dXVxaxQAMDZhTyO/I033tBll12mwYMHS1KwSyU9PV1+v18XXXTRGc/JysrSxx9/HL1qAaAXyMzM\nDHmtHymMmZ0rVqzQ9OnTg/eLi4vl9XolSV6vVyUlJWc85+OPP5Yxhq8ofP3iF7+Iew2J9MXryevZ\nk7/CbQCHFOTHjh3T+vXr241UmDt3rtatW6fs7Gxt2LBBc+fODevEAIDoCKlr5Rvf+IYOHTrUblta\nWprWr18fk6IAAKFj0SxLuFyueJeQUHg9o4vXM75ieqk3h8OhGB4eABJSuNlJixwALEeQA4DlCHIA\nsBxBDgCWI8gBwHIEOQBYjiAHAMsR5ABgOYIcACxHkAOA5QhyALAcQQ4AliPIAcByBDnQA6SkpMnh\ncCglJS3epcBCLGML9AAOh0OSkcTvDFjGFgB6HYIcACxHkAOA5QhyALAcQQ4AliPIAcByIQV5Q0OD\nbrvtNl166aUaNWqU3nnnHdXV1cntdis7O1uTJ09WQ0NDrGsFAJxFSEH+wAMP6MYbb9Tu3bv13nvv\nKScnRx6PR263W9XV1SoqKpLH44l1rQCAs+h0QtCRI0eUl5envXv3ttuek5OjTZs2yel0qra2Vi6X\nS1VVVe0PzoQgICRMCEJbUZ8QVFNTo8GDB+vOO+9Ufn6+7r77bh07dkyBQEBOp1OS5HQ6FQgEIq8a\nABCxpM52aGlp0fbt27V48WJdfvnlevDBB8/oRnE4HF+3KM5UXl4evO1yueRyubpUMAAkGp/PJ5/P\nF/HzO+1aqa2t1VVXXaWamhpJ0pYtW7RgwQLt3btXGzduVHp6uvx+vwoLC+laASJE1wrainrXSnp6\nuoYPH67q6mpJ0vr16zV69GhNmTJFXq9XkuT1elVSUhJhyQCArghp9cN//etfmjVrlpqbm5WZmall\ny5aptbVVU6dO1b59+5SRkaGVK1cqNTW1/cFpkQMhoUWOtsLNTpaxBXoAghxtsYwtAPQyBDkAWI4g\nBwDLEeQAYDmCHAAsR5ADgOUIcgCwHEEOAJYjyIE4SElJk8PhUEpKWrxLQQJgZicQB6fP5GRmJ9pi\nZicA9DIEOQBYjiAHAMsR5ABgOYIcACxHkAOA5QhyALAcQQ4AliPIAcByBDkAWI4gBwDLEeRAD8Si\nWggHi2YBcdDZolksotW7hZudSaHslJGRoZSUFJ133nlKTk5WZWWl6urqdPvtt+vTTz9VRkaGVq5c\nqdTU1IgLBwBEJqSuFYfDIZ/Ppx07dqiyslKS5PF45Ha7VV1draKiInk8npgWCgA4u5D7yE9v5q9a\ntUplZWWSpLKyMlVUVES3MgBASEJukU+aNEkFBQVasmSJJCkQCMjpdEqSnE6nAoFA7KoEAHQopD7y\nN998U0OGDNHBgwfldruVk5PT7nGHw/H1hzNnKi8vD952uVxyuVwRFwsAicjn88nn80X8/LBHrTz+\n+OO68MILtWTJEvl8PqWnp8vv96uwsFBVVVXtD86oFeCsGLWCc4n6pd6amprU2NgoSTp27JjWrl2r\nsWPHqri4WF6vV5Lk9XpVUlISYckAgK7otEVeU1Oj0tJSSVJLS4t+8IMfaN68eaqrq9PUqVO1b9++\nDocf0iIHzo4WOc4l3OxkQhAQBwQ5ziXqXSsAgJ6NIAcAyxHkAGA5ghwALEeQA4DlCHIgrpI6nBUN\nhIogB+KqRSeHGQKRI8gBwHIEORADXKoN3YmZnUAMdDYzs+3jp39nZieY2QkAvQxBDgCWI8gBwHIE\nOQBYjiAHAMsR5ABgOYIcACxHkAOA5QhyALAcQQ4AliPIAcByBDnQDVhEC7HEollADJy+6NW57rNo\nFk4Xk0WzWltblZeXpylTpkiS6urq5Ha7lZ2drcmTJ6uhoSGyagEAXRZSkC9atEijRo0KXpLK4/HI\n7XarurpaRUVF8ng8MS0SANCxToP8s88+0+rVqzVr1qxgU3/VqlUqKyuTJJWVlamioiK2VQIAOtRp\nkD/00EN6+umn1afP/3cNBAJyOp2SJKfTqUAgELsKAQDnlHSuB19//XVddNFFysvLk8/nO+s+Dofj\nnFcBLy8vD952uVxyuVyR1AkACcvn83WYsaE456iV+fPn66WXXlJSUpK++OILff7557r11lu1detW\n+Xw+paeny+/3q7CwUFVVVWcenFEr6KUYtYKuiOqolaeeekr79+9XTU2NXn75ZV177bV66aWXVFxc\nLK/XK0nyer0qKSnpWtUAgIiFNSHoVBfK3LlztW7dOmVnZ2vDhg2aO3duTIoD7Jd0zq7HUJ/vcPRl\nQhE6xIQgIAbC6TqJ5HEktphMCAIA9FwEOQBYjiAHAMsR5ABgOYIcACxHkAM9SmfDFZMYhogznHOK\nPoDu1qL/Dzfs+PHGxq6MTUeioUUOAJYjyIFu1dWZnsCZCHKgW53qOgGihyAHAMsR5ABgOYIcACxH\nkAOA5QhyALAcQQ4AliPIAcByBDkAWI4gB8KQkpLGolXocbhmJxCGttfSPNd7+1zX3IzWd363EhfX\n7ASAXoYgB7rgVFeLw9GXLhfEDV0rQBhO71o5WxdKR9vpWkGootq18sUXX2jChAkaP368Ro0apXnz\n5kmS6urq5Ha7lZ2drcmTJ6uhoaFrVQMAItZpi7ypqUn9+/dXS0uLrrnmGj3zzDNatWqVBg0apEcf\nfVQLFy5UfX29PB7PmQenRY4EQ4sc3SHqH3b2799fktTc3KzW1lYNHDhQq1atUllZmSSprKxMFRUV\nEZYLAOiqToP8xIkTGj9+vJxOpwoLCzV69GgFAgE5nU5JktPpVCAQiHmhAICz6/Tiy3369NHOnTt1\n5MgRXXfdddq4cWO7x09+Yt/xpavKy8uDt10ul1wuV8TFAj0Hl2xD9Ph8Pvl8voifH9aolSeeeEL9\n+vXTiy++KJ/Pp/T0dPn9fhUWFqqqqurMg9NHjgQTSt83feToqqj2kR86dCg4IuX48eNat26d8vLy\nVFxcLK/XK0nyer0qKSnpQskAgK44Z9eK3+9XWVmZTpw4oRMnTmjGjBkqKipSXl6epk6dqqVLlyoj\nI0MrV67srnqBHq67ulxOnmfAgIH6/PO6bjgfejImBAFh6I4uE7pYwForANDLEOQAYDmCHAAsR5AD\ngOUIcgCwHEEOAJYjyAHAcgQ5AFiOIAeslsQl5tD56ocAerIWSUaNjazE2JvRIgcAyxHkAGA5ghwA\nLEeQA4DlCHIggaSkpDGKpRdiPXIgDD1xPfKOLjHH7569WI8cAHoZghwALEeQA4DlCHIAsBxBDgCW\nI8iBhJD09YgV9EYEOZAQTi6ehd6p0yDfv3+/CgsLNXr0aI0ZM0bPPfecJKmurk5ut1vZ2dmaPHmy\nGhoaYl4sAOBMnU4Iqq2tVW1trcaPH6+jR4/qsssuU0VFhZYtW6ZBgwbp0Ucf1cKFC1VfXy+Px9P+\n4EwIQoLpyROCzjZBCHaK+oSg9PR0jR8/XpJ04YUX6tJLL9WBAwe0atUqlZWVSZLKyspUUVERYckA\ngK4Iq4/8k08+0Y4dOzRhwgQFAgE5nU5JktPpVCAQiEmBAIBzC/kKQUePHtX3v/99LVq0SAMGDGj3\nmMPh6PAT8/Ly8uBtl8sll8sVUaEAkKh8Pp98Pl/Ezw9p0ayvvvpKN998s2644QY9+OCDkqScnBz5\nfD6lp6fL7/ersLBQVVVV7Q9OHzkSDH3k6A5R7yM3xmjmzJkaNWpUMMQlqbi4WF6vV5Lk9XpVUlIS\nQbkAgK7qtEW+ZcsWffe739W4ceOC3ScLFizQFVdcoalTp2rfvn3KyMjQypUrlZqa2v7gtMhhuZSU\nNDU21ktKlvTV11t7RoubFnniCjc7WY8cOAebulII8sTBeuQA0MsQ5ABgOYIcACxHkAOA5QhyALAc\nQQ4AliPIAcByBDkAWI4gBwDLEeQAYDmCHAAsR5ADbaSkpMnhcCglJS3epXRR0tfXCeibID8PzoVF\ns4A22i6SZYyxetEsFtGyF4tmAUAvQ5ADgOUIcgCwHEEOAJYjyIFeJHFG5aCtpHgXAKD7nLz+qFFj\noyPepSCKaJEDgOUIcgCwHEEOAJYjyAHAcp0G+V133SWn06mxY8cGt9XV1cntdis7O1uTJ09WQ0ND\nTIsEAHSs0yC/8847tWbNmnbbPB6P3G63qqurVVRUJI/HE7MCge5walhe4kpK8J+vdwtp0axPPvlE\nU6ZM0fvvvy9JysnJ0aZNm+R0OlVbWyuXy6WqqqozD86iWbDE2RbHSrRFs1hEyx7dsmhWIBCQ0+mU\nJDmdTgUCgUgOAwCIgi5PCDq55nHH/2UrLy8P3na5XHK5XF09JdBlKSlpX0+OSZb0VbzLQS/n8/nk\n8/kifn7EXSs+n0/p6eny+/0qLCykawVWCaXLhK4VxEu3dK0UFxfL6/VKkrxer0pKSiI5DAAgCjoN\n8unTp+vqq6/WRx99pOHDh2vZsmWaO3eu1q1bp+zsbG3YsEFz587tjlqBiIW/WFTvGOXBIlqJgUu9\noVdI5Eu4daVr5fTXBT0Dl3oDgF6GIAcAyxHkAGA5ghwALEeQA4DlCHIAsBxBDgCWI8gBwHIEORJK\n5zMVe8eMzc6d/XVgpqedmNmJhNLRTEVmcjLT0ybM7ASAXoYgBwDLEeQAYDmCHAAsR5ADgOUIcgCw\nHEEOAJYjyJGgkpjYEpbwJkoxcahnSYp3AUBstEgyamxkFmdoTr5eJycIda6xsV68vj0HQQ7rtLa2\nqr6+XpKUlpamPn34jyV6N34DYJ3HHivXkCHfVnr6cP3mN7/pZG/WVolMqF1TdGH1BLTIYZ2jR5vU\n0vJLJSUF1NTU1Mne4XUZ4JRQu6bowuoJutQiX7NmjXJycjRixAgtXLgwWjUBAMIQcZC3trbqRz/6\nkdasWaNdu3ZpxYoV2r17dzRrQxs+ny/eJQDooSIO8srKSmVlZSkjI0PJycmaNm2aXnvttWjWhjYI\ncsTHyT5wh6Nvu+/oWSIO8gMHDmj48OHB+8OGDdOBAweiUhSAnuLUZwxfnfYdPUnEQc5fZcTLeef1\n0QUXLFVS0l8YegioC6NWhg4dqv379wfv79+/X8OGDWu3T2ZmJoEfRY8//ni8S+hx5syZozlz5py2\n1cH3OHzndz16MjMzw9o/4ku9tbS0aOTIkfrHP/6hb33rW7riiiu0YsUKXXrppZEcDgAQoYhb5ElJ\nSVq8eLGuu+46tba2aubMmYQ4AMRBTC++DACIvah/UvTKK69o9OjROu+887R9+/Z2jy1YsEAjRoxQ\nTk6O1q5dG+1TJ7zy8nINGzZMeXl5ysvL05o1a+JdkpWYyBZdGRkZGjdunPLy8nTFFVfEuxyr3HXX\nXXI6nRo7dmxwW11dndxut7KzszV58mQ1NDR0fiATZbt37zYfffSRcblcZtu2bcHtH374ocnNzTXN\nzc2mpqbGZGZmmtbW1mifPqGVl5ebZ599Nt5lWK2lpcVkZmaampoa09zcbHJzc82uXbviXZbVMjIy\nzOHDh+NdhpU2b95stm/fbsaMGRPcNmfOHLNw4UJjjDEej8f85Cc/6fQ4UW+R5+TkKDs7+4ztr732\nmqZPn67k5GRlZGQoKytLlZWV0T59wjP0hHUJE9lig/dlZCZOnKiBAwe227Zq1SqVlZVJksrKylRR\nUdHpcbptEO5//vOfdsMTmUAUmeeff165ubmaOXNmaP/lQjtMZIs+h8OhSZMmqaCgQEuWLIl3OdYL\nBAJyOp2SJKfTqUAg0OlzIhq14na7VVtbe8b2p556SlOmTAn5OIw7PVNHr+2TTz6pe++9Vz//+c8l\nST/72c/0yCOPaOnSpd1dotV4z0Xfm2++qSFDhujgwYNyu93KycnRxIkT411WQji5LELn79mIgnzd\nunVhP+f0CUSfffaZhg4dGsnpE1qor+2sWbPC+qOJk0KZyIbwDBkyRJI0ePBglZaWqrKykiDvAqfT\nqdraWqWnp8vv9+uiiy7q9Dkx7Vpp229WXFysl19+Wc3NzaqpqdGePXv4hDtMfr8/ePvVV19t90k3\nQlNQUKA9e/bok08+UXNzs/785z+ruLg43mVZq6mpSY2NjZKkY8eOae3atbwvu6i4uFher1eS5PV6\nVVJS0vmTov0p7F//+lczbNgwc8EFFxin02muv/764GNPPvmkyczMNCNHjjRr1qyJ9qkT3owZM8zY\nsWPNuHHjzC233GJqa2vjXZKVVq9ebbKzs01mZqZ56qmn4l2O1fbu3Wtyc3NNbm6uGT16NK9nmKZN\nm2aGDBlikpOTzbBhw8zvf/97c/jwYVNUVGRGjBhh3G63qa+v7/Q4TAgCAMuxdBwAWI4gBwDLEeQA\nYDmCHAAsR5ADgOUIcgCwHEEOAJYjyAHAcv8DUrLE4leGVckAAAAASUVORK5CYII=\n", |
|
215 | "png": "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\n", | |
216 | "text": [ |
|
216 | "text": [ | |
217 |
"<__main__.Gaussian at 0x10 |
|
217 | "<__main__.Gaussian at 0x106e7ae10>" | |
218 | ] |
|
218 | ] | |
219 | } |
|
219 | } | |
220 | ], |
|
220 | ], | |
221 |
"prompt_number": |
|
221 | "prompt_number": 5 | |
222 | }, |
|
222 | }, | |
223 | { |
|
223 | { | |
224 | "cell_type": "markdown", |
|
224 | "cell_type": "markdown", | |
225 | "metadata": {}, |
|
225 | "metadata": {}, | |
226 | "source": [ |
|
226 | "source": [ | |
227 | "Use `display_png` to view the PNG representation:" |
|
227 | "Use `display_png` to view the PNG representation:" | |
228 | ] |
|
228 | ] | |
229 | }, |
|
229 | }, | |
230 | { |
|
230 | { | |
231 | "cell_type": "code", |
|
231 | "cell_type": "code", | |
232 | "collapsed": false, |
|
232 | "collapsed": false, | |
233 | "input": [ |
|
233 | "input": [ | |
234 | "display_png(x)" |
|
234 | "display_png(x)" | |
235 | ], |
|
235 | ], | |
236 | "language": "python", |
|
236 | "language": "python", | |
237 | "metadata": {}, |
|
237 | "metadata": {}, | |
238 | "outputs": [ |
|
238 | "outputs": [ | |
239 | { |
|
239 | { | |
240 | "metadata": {}, |
|
240 | "metadata": {}, | |
241 | "output_type": "display_data", |
|
241 | "output_type": "display_data", | |
242 | "png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAENCAYAAAASUO4dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGolJREFUeJzt3XtwlNUdxvFnMUGhkgkpuKHANJoQIreQGEWttBvD4pWY\nWAdhOpgqOKJ26m2wQG0b6yhL1T9Q2k5FSrcyxeK0RmqRAQoLxVGDXOoFYqhEQbrZAkkwEDQmnP6B\nbBMgZHezm83ZfD8zmey+++77/rJsnhzOnnNehzHGCABgrT7xLgAA0DUEOQBYjiAHAMsR5ABgOYIc\nACxHkAOA5QhyALAcQQ4AliPIEZaampp4lxBTfr9fTU1N8S4DCAtBjnPaunWrcnNzde+996qmpkZv\nv/12vEuKqcGDB+tXv/pVvMsAwuJgij4kafbs2frOd76jGTNmtNt+77336tZbb9Xll1+uBQsWaOHC\nhTE5/5/+9Cf5/X5VVlaqtLRU06ZNi8l5Trdz504tX75czzzzTHDb1q1btXv3bt1xxx3dUkNHzlZb\nRUWFdu3apT59+mjo0KHBf69wtyPBGMAYc+WVV5rbbrut3bYPPvjArF692hhjzM6dO81zzz0Xk3Pv\n2bMneOyDBw+a1NRUs3fv3picq61nn33WlJaWmh/+8IdnPDZjxoyQj/P222+bkpISM3ToUPPVV18Z\nY4ypra01t99+u7npppvMm2++GZXaGhoaTH5+fvD+lVdeaQ4dOhTW9oMHD4ZdC3o+ulag1tZWTZo0\nSRs2bNAXX3wR3O7z+XTttddKkl5//fXg7Wj78MMPg90ZgwYNUlZWlrZt2xaTc7X18MMP65Zbbjnr\nY4MHD9a///3vkI4zYcIEXX/99crOztZf/vIXSZLT6dTNN9+sV155RVdffXVUatu8ebNGjRoVvJ+b\nm6sNGzaEtX3jxo1h14KeLyneBSD+PvzwQxUVFWnnzp164403VFpaKkk6fvy4zj//fEknuxvmz58f\n1nH37t2rJUuWdPj4lVdeqVtuuUU33nij3njjDUmSMUZ+v19ZWVkR/SyhnvMU00HPYm5urrZt2xZS\nHSdOnFBycrJ+/OMf6+mnn9btt98uSTp27Jj69esXtdo+++wzpaamBu+npqZqz549SktLC2s7Eg9B\nDlVWVmrGjBmaNm2aVqxYodLSUn355Zfq27dvcJ+mpiY5HI7g/dbWVn3ve9/Tli1bJEkzZ87UvHnz\n2gXfJZdcogULFnR6/uTkZI0ZM0aS9Pe//10FBQUaP378Wfetrq7WY489poMHD+rdd9+Vy+XSTTfd\npNmzZ4d1zlPa/kxtDRw4UNXV1SEdY/v27SooKNCYMWP08MMPa/v27crPzz/j2F2traGhQRdccEHw\nft++fXX06FE5HI6wtiPx0LUCHT16VOeff76Ki4u1du1a/fe//1VlZaUmTJgQ3Ke1tbXdc9566y19\n+9vflnSy5fjWW29F3Io+paGhQX/4wx+0fPnysz5eV1en2bNn649//KM2btyooqIiLV++PBjikeio\nRd6vXz81NzeHdIz33ntP48aNU58+fXTffffp+eef10cffaSRI0dGXNfZahswYEC7bcePH1daWlrY\n25F4aJH3ckeOHFH//v0lnQyK66+/XosXL9Y3v/lN3X///cH9kpLav1XWrFmj6667TpK0Y8cOjR07\n9oxjh9OVYIyRx+PRiy++qAsvvFCffvpp8A/FKb/+9a91//33B1uZX375ZbD2SM4pddwiP3LkSMih\nd+LEieDtWbNmKSsrS6NGjdIDDzwQ1doyMzP17rvvBu8fPnxY+fn5Sk1NDWn7oUOHlJ+fH9LPBMvE\n61NWxFdjY6PZuXOn+e1vf9tuJMO2bdtMSkqKmTdvXrv977jjDtPY2Bi8X1BQYN5//31jjDG//OUv\nze9+9zvz2muvRVzPokWLzLvvvmv8fr955513jM/nM8YYU11dbVpbW40xxsyZM8fs2rXLGHNyRM0j\njzwS8flOWbZs2VlHrTz//PNm/fr1wftt62irubnZeL3edtvuuecec8MNN0S9tqNHj5oxY8YE748b\nN84EAoGwtyPxnFdeXl4e7z8m6H4+n08TJ07UuHHjNGXKlOD2IUOG6IMPPlB+fn671lt9fb2OHTum\niy++WAcPHtSCBQs0cOBANTY26siRI/r888918cUX65JLLgm7li1btmjatGl64YUX9Oyzz2rp0qV6\n4oknlJKSomuuuUYjRoxQVlaWsrKytHr1ah04cEA7d+7U/Pnz1adP5L2Dixcv1vLly/Xee+/pyJEj\nys/PD364+8ILL2j27NnB/4m0reOUrVu36oEHHtC+ffs0YcIEpaSkSDrZF378+HFNnDgxqrUNGDBA\nAwYM0N/+9jf5fD5NmTJFV111lfr27RvWdiSgzpK+qqrKjB8/PviVkpJiFi1aZA4fPmwmTZpkRowY\n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\nBAJyOp2SJKfTqUAg0OlzIhq14na7VVtbe8b2p556SlOmTAn5OIw7PVNHr+2TTz6pe++9Vz//+c8l\nST/72c/0yCOPaOnSpd1dotV4z0Xfm2++qSFDhujgwYNyu93KycnRxIkT411WQji5LELn79mIgnzd\nunVhP+f0CUSfffaZhg4dGsnpE1qor+2sWbPC+qOJk0KZyIbwDBkyRJI0ePBglZaWqrKykiDvAqfT\nqdraWqWnp8vv9+uiiy7q9Dkx7Vpp229WXFysl19+Wc3NzaqpqdGePXv4hDtMfr8/ePvVV19t90k3\nQlNQUKA9e/bok08+UXNzs/785z+ruLg43mVZq6mpSY2NjZKkY8eOae3atbwvu6i4uFher1eS5PV6\nVVJS0vmTov0p7F//+lczbNgwc8EFFxin02muv/764GNPPvmkyczMNCNHjjRr1qyJ9qkT3owZM8zY\nsWPNuHHjzC233GJqa2vjXZKVVq9ebbKzs01mZqZ56qmn4l2O1fbu3Wtyc3NNbm6uGT16NK9nmKZN\nm2aGDBlikpOTzbBhw8zvf/97c/jwYVNUVGRGjBhh3G63qa+v7/Q4TAgCAMuxdBwAWI4gBwDLEeQA\nYDmCHAAsR5ADgOUIcgCwHEEOAJYjyAHAcv8DUrLE4leGVckAAAAASUVORK5CYII=\n" |
|
242 | "png": "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\n" | |
243 | } |
|
243 | } | |
244 | ], |
|
244 | ], | |
245 |
"prompt_number": |
|
245 | "prompt_number": 6 | |
246 | }, |
|
246 | }, | |
247 | { |
|
247 | { | |
248 | "cell_type": "markdown", |
|
248 | "cell_type": "markdown", | |
249 | "metadata": {}, |
|
249 | "metadata": {}, | |
250 | "source": [ |
|
250 | "source": [ | |
251 | "<div class=\"alert alert-success\">\n", |
|
251 | "<div class=\"alert alert-success\">\n", | |
252 | "It is important to note a subtle different between <code>display</code> and <code>display_png</code>. The former computes <em>all</em> representations of the object, and lets the notebook UI decide which to display. The later only computes the PNG representation.\n", |
|
252 | "It is important to note a subtle different between <code>display</code> and <code>display_png</code>. The former computes <em>all</em> representations of the object, and lets the notebook UI decide which to display. The later only computes the PNG representation.\n", | |
253 | "</div>" |
|
253 | "</div>" | |
254 | ] |
|
254 | ] | |
255 | }, |
|
255 | }, | |
256 | { |
|
256 | { | |
257 | "cell_type": "markdown", |
|
257 | "cell_type": "markdown", | |
258 | "metadata": {}, |
|
258 | "metadata": {}, | |
259 | "source": [ |
|
259 | "source": [ | |
260 | "Create a new Gaussian with different parameters:" |
|
260 | "Create a new Gaussian with different parameters:" | |
261 | ] |
|
261 | ] | |
262 | }, |
|
262 | }, | |
263 | { |
|
263 | { | |
264 | "cell_type": "code", |
|
264 | "cell_type": "code", | |
265 | "collapsed": false, |
|
265 | "collapsed": false, | |
266 | "input": [ |
|
266 | "input": [ | |
267 | "x2 = Gaussian(0, 2, 2000)\n", |
|
267 | "x2 = Gaussian(0, 2, 2000)\n", | |
268 | "x2" |
|
268 | "x2" | |
269 | ], |
|
269 | ], | |
270 | "language": "python", |
|
270 | "language": "python", | |
271 | "metadata": {}, |
|
271 | "metadata": {}, | |
272 | "outputs": [ |
|
272 | "outputs": [ | |
273 | { |
|
273 | { | |
274 | "latex": [ |
|
274 | "latex": [ | |
275 | "$\\mathcal{N}(\\mu=0, \\sigma=2),\\ N=2000$" |
|
275 | "$\\mathcal{N}(\\mu=0, \\sigma=2),\\ N=2000$" | |
276 | ], |
|
276 | ], | |
277 | "metadata": {}, |
|
277 | "metadata": {}, | |
278 | "output_type": "pyout", |
|
278 | "output_type": "pyout", | |
279 | "png": "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\n/xa6Y+R78p3rD0fthDTck5KSVFdX53ldV1en5ORkr2nS0tKi7kfgm2/e8nq9fXtXP2Sd2/ydrvfb\n+kod4WjrybIW/d8jVMvry//WcLQFvz39y4ngv3PRlkNpaWkBTR/SOzGdPn1aw4cP17vvvquhQ4dq\n4sSJWrlypUaMGBGqVQAA/BDSnntMTIyWLVumW265Re3t7ZozZw7BDgAREPZ7qAIAel/YzlB94403\nNHLkSF100UXavn2713slJSUaNmyYMjMztX79+nCVZIzi4mIlJydr3LhxGjdunCoqKiJdUtTh5LvQ\nSk1N1ZgxYzRu3DhNnDgx0uVEnfvvv192u12jR4/2tDU3N8vpdCojI0O5ublqaWnpfiFWmOzcudP6\n8ssvLYfDYW3bts3TvmPHDis7O9tqa2uzamtrrbS0NKu9vT1cZRmhuLjY+t3vfhfpMqLW6dOnrbS0\nNKu2ttZqa2uzsrOzraqqqkiXFdVSU1OtQ4cORbqMqPX+++9b27dvt0aNGuVpe/LJJ62lS5dalmVZ\npaWl1s9//vNulxG2nntmZqYyMjI6tZeXl6uwsFCxsbFKTU1Venq6Kisrw1WWMSxG14Jm2sl3fQWf\nyeBNnjxZgwYN8mpbu3atioqKJElFRUUqKyvrdhkRv3DY/v37vQ6XNOHEp0h44YUXlJ2drTlz5lz4\nzzV4MfHku0iz2Wy6+eabNWHCBL344ouRLscITU1NstvtkiS73a6mpqZupw/p0TJOp1ONjY2d2pcs\nWaJp06b5mMO3aDv+NBy62raLFy/Www8/rF//+teSpF/96ld64okn9PLLL4e7xKjF5y30PvjgA111\n1VU6cOCAnE6nMjMzNXny5EiXZQx/LlMS0nDfsGFDwPOcf+JTfX29kpKSQlmWEfzdtnPnzg3ohxT+\nnXyHwFx11VWSpMGDB2v69OmqrKwk3HvIbrersbFRiYmJamho0JAhvi+FclZEhmXOHYvLy8vTqlWr\n1NbWptraWu3evZu96wFqaGjwPH/zzTe99rDjwiZMmKDdu3drz549amtr0+rVq5WXlxfpsqLW8ePH\n1draKkk6duyY1q9fz2cyBPLy8uRyuSRJLpdL+fn53c/Qe/t7vf3973+3kpOTrUsuucSy2+3W1KlT\nPe8tXrzYSktLs4YPH25VVFSEqyRjzJo1yxo9erQ1ZswY684777QaGxsjXVLUWbdunZWRkWGlpaVZ\nS5YsiXQ5Ua2mpsbKzs62srOzrZEjR7I9gzBz5kzrqquusmJjY63k5GTrlVdesQ4dOmTl5ORYw4YN\ns5xOp3X48OFul8FJTABgoIgfLQMACD3CHQAMRLgDgIEIdwAwEOEOAAYi3AHAQIQ7ABiIcAcAA/1/\nt6/k+ndBNwkAAAAASUVORK5CYII=\n", |
|
279 | "png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAENCAYAAAD0eSVZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE3lJREFUeJzt3X2UXOVBx/HvkE2AQJZ0S00CpCZNGyHYVmIDVEEGBExr\nTwjHU160GFqKx9PSUvW0JKBlfSlStGp7tPQIpSdUCaZa3qStCSmjPYq8CAkvIQ2JRgltFoSk2R6j\nhDL+8dzJ3pmd3Z258/7M93POnNx79748XO7+9pnnPve5IEmSJEmSJEmSJEmSJEmSJEmSJElSD1jY\n6QK02DxgZqcLIdXqsE4XQD1rGbAFuJkQ7Kd3tjgt9xLwqU4XQqpVrtMFUNf7EvDPwFcrlt8MfB14\nFFgDXNOi468ElgCvAy9UKUcr/DKhpn4qcBdwZ7J8GXAScHsbyjCRico20Xmqd7mkPvEQ8LWKZScD\n70mm3wl8rEXHPgb4t4qyHNuiY5W8lbH/nmOBvZQ3OdUT7KcRAng3MJAsm0MI5L8HfqYJZVtA9fP0\nxjqXt/q8qs1sltFkpgEPAOcAR6SW54FvJ9PvS003288BW1PzW4CzW3SskpMZa375b2AH8NOpn79E\nCNlaPAx8C9gO/FKybIQQ7O8H/qUJZVtG9fN0Tp3LW31e1WYDU6+iPnYysAn4KUJN/a5k+ZHA/yXT\ny4Ab6tzvW4ArJ/n5vwL3ACcA+1LL9wFvq/NY9R7zG4x9K8kRmkB2pNbbQgj7HUztMOAg8AXgk8Df\nJMuPAg40qWzPAe+m+nl6pc7liojhrsmcSmiLvRO4lBDuhwOvptaZCRRT89OAfwTOSOa/DPwh5WH4\n74R2+qnMBv43Nf8qcPQE6y4G/gB4E/AuoADcT7hnUM8xDwJPJ9O/CDwGbE79fG9yrFosTbZ/GviT\nZP5xys9XM8r2Xqqfp2KdyxURm2U0maMJNfR7gfOBHyME/sOpdaZVbPNu4D+T6VwyX0stt5pRym/6\nH0modVYaIoT4rxKaFzYBH2As2LOYDVye7CftADCjxn28A3iScNPyi4T28p8AvttAuaqVbT/Vz9NE\n56/W86oeZs1dEzkG+J9kepTQdnwV8DLwF6n1XqvYbjnwD8n0KcBTVfZdazPETkItvORYQs230keT\nMpVqo4enyl7vMSEE32rgw8APgR9n7A/WMdQehOnK062EP3Jbgc83uWyV5+mNhPO0r8blE51XSRE5\nmtAD5tcp70GxFPgB49vX11L+lf5R4CeT6d8Bfg1YkbEsR1H+x2EL4dsDhDbiUnjeROiiCOE+wR9n\nPF7Jxwnt6nMJ31TOSv3sKuDnU/PpcqRNJ3yTSPsSod282WWbSfXzNNH5m+y8SorU+YRmhM9U+dlf\nE2qMaR8i9MCA0N49AlxLaAf+LeA64NwGynMZ8NvAp4FfSS1/lvAtAUJXxasJPVKuprFvpGcAPyKc\ng9eT6eNTP7+V8p5D6XKULCM8A/BXFdsuoba29Sxlm+g81btcfeI2wi9r+q/8HxEu6C2EC/iY1M/W\nEO7ebyOEhHrTnDrWnU24kQmhDbjaH4VWmAGc2aZjlRxBuDHa6XJIDTuT8e2m5zH2NfTG5AOhVrKZ\n8HV0AaF90Ru2/eEThCacL1DeJ7yVLmb8zdxWu5xwQ7TT5ZCaYgHVb4oBXEj46gnjH0H/FvGPN6Ig\nx+Q3BGMwH7ig04WQatVob5kPAeuS6eMId/VLdlPe3qh4FYFbOl2IFns++Ug9oZFmk+sIDz/cMck6\nlQ9rSJLaIGvN/XJCb4h0l7AXCF9dS05IlpVZtGhRcefOnRkPK0l9aye1j2uUqea+nDBOxgWUP8J8\nL3AJoffAQkL/30fGlW7nTorFop8mfa6//vqOlyGmj+fT89mtH2BRPUE9Vc19HeEhiWMJ7Y3XE26c\nzgA2Jus8BHyE8OTd+uTf15JlNstIUgdMFe6XVll22yTr30D9IwRKkprMfug9Lp/Pd7oIUfF8Npfn\ns3M68Zq9YtJ+JEmqUS6Xgzoy25q7JEXIcJekCBnukhQhw12SImS4S1KEDHf1jcHBIXK53KHP4OBQ\np4sktYxdIdU3Qley9LWXw2tRvcKukJIkw12SYmS4S1KEDHdpEt6EVa/yhqr6RpYbqt6EVbfwhqqU\nqKx1S/3EmruiVa3Wbc1dvcqauyTJcJekGBnukhQhw12SImS4S1KEDHdJipDhLjWgsi+9T7GqW9jP\nXdFqRz/38T+vbb9SveznLkky3CUpRoa7JEXIcJdSHGxMsZgq3G8DRoCnUsuGgI3AdmADMDv1szXA\nc8A24PzmFVNqj9HRvYQbpKWP1JumCvevAMsrlq0mhPtiYFMyD7AEuDj5dznwxRr2L3XQwLhujFIs\npgrf7wB7K5atANYm02uBlcn0BcA64CCwC9gBnNqUUkot8RrltXRr6opHlpr1HEJTDcm/c5Lp44Dd\nqfV2A8dnL5okKatGm02mqu5YFZKkDhjIsM0IMBfYA8wDXkyWvwDMT613QrJsnOHh4UPT+XyefD6f\noRiSFK9CoUChUMi8fS13kBYA9wFvT+ZvAl4GPku4mTo7+XcJcAehnf144AHgrYyvvTv8gNqiluEH\nqg0dUM+QBQ4/oHapd/iBqWru64CzgGOB54FPAzcC64ErCDdOL0rW3Zos30q4U/URbJaRpI5w4DBF\ny5q7YuLAYZIkw12SYmS4S1KEDHdJipDhLkkRMtzVEyqH4vU9pdLk7AqpnjDVu0xr3caukOpVzX6I\nSVKZAYcGVk8w3KW6lIYJLjHo1Z1sc5ekCBnukhQhw12SImS4S1KEDHdJipDhLkkRMtwlKUKGuyRF\nyHCXpAj5hKp6VOUwANOBg50qjNR1DHf1qGrDAFQbBEzqTzbLSFKEDHdJipDhLkkRMtwlKUKGuyRF\nyHCXpAgZ7pIUIcNdkiJkuEtShBoJ9zXAM8BTwB3A4cAQsBHYDmwAZjdaQElS/bKG+wLgSmAp8HZg\nGnAJsJoQ7ouBTcm8JKnNsob7fsIoTTMJ49PMBL4HrADWJuusBVY2WkCp1w0ODpHL5Q59BgeHOl0k\n9YGs4f4K8Dngvwihvo9QY58DjCTrjCTzUl8bHd1LGNQsfMK81FpZR4VcBHyC0DzzA+BrwAcq1ild\nzeMMDw8fms7n8+Tz+YzFkKQ4FQoFCoVC5u2zjol6MXAe8OFk/jLgdOAc4GxgDzAPeBA4sWLbYrFY\nNfOlCYWx2ycb4neiIX9bvU31faSv8Wpl93dA9UreX1BzZmdtltlGCPMjk4OdC2wF7gNWJeusAu7O\nuH9JUgOyNstsAW4HHgNeBx4H/hKYBawHrgB2ARc1XkRJUr068aoam2VUN5tl1O/a1SwjSepihrsk\nRchwl6QIGe6SFCHDXZIiZLhLUoQMd0mKkOEuSREy3CUpQoa7JEXIcJekCBnukhQhw12SImS4S1KE\nDHdJilDWl3VImtBAaextqWMMd6npXmP8Cz2k9rJZRpIiZLhLUoQMd0mKkOEuSREy3CUpQoa7JEXI\ncJekCBnukhQhw12SImS4S1KEDHd1pcHBIXK53KGPpPo0Eu6zgb8FngW2AqcBQ8BGYDuwIVlHqtvo\n6F7C+CylT0wGyv5w5XI5BgeHOl0oRaaRcP888A3gJOAdwDZgNSHcFwObknlJZUoDi419wh8zqXmy\nft89BngCeEvF8m3AWcAIMBcoACdWrFMsFmOriakeg4NDZWE2a9Yb2L//lbJ1QlNM5ciK9cy3a5vm\nHdffC00maZ6sObOz1twXAi8BXwEeB24BjgLmEIKd5N85GfeviFU2uVhrlZov63juA8BS4CrgUeDP\nGN8EM2Fj6fDw8KHpfD5PPp/PWAxJilOhUKBQKGTePmuzzFzgIUINHuAMYA2hmeZsYA8wD3gQm2VU\noVqTS+U1YbOMVK5dzTJ7gOcJN04BzgWeAe4DViXLVgF3Z9y/+sr43iOSGtPIb9E7gVuBGcBO4IPA\nNGA98GZgF3ARsK9iO2vufW7qWnm1Zdbc1d/qrbl3oopkuPc5w73aNtMJXSSDaj2I1N/qDXdfkC11\nhfKXao+O2jSlxjj8gCRFyHCXpAgZ7pIUIcNdkiJkuEtShAx3SYqQ4S5JETLcJSlChrskRchwl6QI\nGe6SFCHDXepKA75AWw1x4DCpKzmQmBpjzV0tNzg45Is4pDaz5q6WG3shdokBL7WaNXdJipDhLkkR\nMtwlKUKGu9QT7Bqp+nhDVeoJdo1Ufay5S1KEDHdJipDhLkkRMtwlKUKGuyRFyHCXpAgZ7pIUoUbD\nfRrwBHBfMj8EbAS2AxuA2Q3uX5KUQaPhfjWwlbGnK1YTwn0xsCmZlyS1WSPhfgLwXuBWxsZwXQGs\nTabXAisb2L8kKaNGwv1PgU8Cr6eWzQFGkumRZF6S1GZZx5Z5H/Aiob09P8E6Rcrf0HDI8PDwoel8\nPk8+P9EuJKk/FQoFCoVC5u2zjj50A3AZYTSjI4BB4OvAMkLY7wHmAQ8CJ1ZsWywWq2a+IhVerVf5\nJqbJ5mtZpxX76K3j+nvUX5JXVNac2VmbZa4F5gMLgUuAbxPC/l5gVbLOKuDujPtXj6h8P6pD0Urd\noVlD/paqEDcC64ErgF3ARU3av7pU5ftRHYpW6g6d+E20WSYi45tcphNa6yrF2zzSmeOOP8+zZr2B\n/ftfQXGqt1nGl3WoycpfKhFYm2++8efZb01Kc/gBSYqQ4S5JETLcJSlChrskRchwl6QIGe6SFCHD\nXZIiZLhLUoQMd0mKkOEuRWPAQdx0iMMPSNEoH5LA4Qj6mzV3SYqQ4S5JETLcJSlChrskRchwl6Jl\n75l+Zm8ZKVr2nuln1twlKUKGuyRFyHCXpAgZ7pIUIcNdkiJkuEtShAx3SYqQ4a66DA4OlT0YI6k7\n+RCT6jI6upf0gzFgwEvdyJq71DccjqCfZA33+cCDwDPA08DHk+VDwEZgO7ABmN1oASU1S2k4gvAJ\n38IUq6zhfhD4DeBk4HTgo8BJwGpCuC8GNiXzkqQ2yxrue4DNyfQPgWeB44EVwNpk+VpgZUOlkyRl\n0ow29wXAKcDDwBxgJFk+ksxLktqs0XA/Gvg74GpgtOJnpcY9SVKbNdIVcjoh2L8K3J0sGwHmEppt\n5gEvVttweHj40HQ+nyefzzdQDEmKT6FQoFAoZN4+ayflHKFN/WXCjdWSm5JlnyXcTJ3N+JuqxWLR\nCn03GhwcqtKDYjrh/nlaZT/3yeZrWacZ23jcLPvwd7F3JA8N1pzZWcP9DOCfgCcZu1rWAI8A64E3\nA7uAi4B9Fdsa7l0qXDzdEDoe13BXpXaFeyMM9y5luPfbcQ33XlJvuPuEqiRFyHCX+lb5cAQOSRAX\nBw6T+lZpOIIxo6MOBBcLa+6SFCHDXZIiZLhLUoQMd0mKkOEuSREy3CUpQoZ7H/Nl11K87Ofex3zZ\ntRQva+6SFCHDvY/YDKOpVQ5JMMPhCXqUzTJ9xGYYTa1ySILykSQdnqB3WHOXpAgZ7pIUIcM9EpXt\n6baPSv3NNvdIjG9Pt31U6mfW3KM2YO8YNZkv+OgV1tyjVq3ng9QIX/DRK6y5S1KEDHdJipDhLkkR\nMtwlKUKGexeo7KNeS+8Dx4lR9xiw90wXMty7wFgf9fAJ8/VtI3VOqQdN9es3S+WlFq3abyw6UeUr\nFouGUVqoeZd3WZzqHFXbZnzIT7VOt+7D4/bOPqqvk75+s1zftWjVfrtV8g295sy2n7ukJhuwqbAL\ntKJZZjmwDXgOuKYF+5fU1cqbadQZzQ73acCfEwJ+CXApcFKTj9EHxj/iXfnShDGFThVSqkGhyrKp\nr++p5/1mMJVmN8ucCuwAdiXzdwIXAM82+Tg96/77v8n992+YYq3xj3hXb/uE8MuTb0rZpOYrVFlW\n6/VdS1u/JtLscD8eeD41vxs4rcnH6Gm33HIH99zzOvCuZMljnSyOpEg1O9xtYJvC9OmHceSRTzN9\n+n4ADh7czYEDHS6UpOg0O9xfAOan5ucTau9pO3O53KImH7fnHDiwuWJJ5VfMal85J1rndzNs04zj\ntnIfHrd39tE9x428LX5nJw8+kBRgATAD2Iw3VCUpCu8Bvku4sbqmw2WRJEmSVK/3A88APwKWVvxs\nDeGhp23A+W0uVwyGCfc2nkg+yztamt7kw3fNtQt4knA9PtLZovSk24AR4KnUsiFgI7Ad2ADM7kC5\nqjoRWAw8SHm4LyG0zU8ntNXvwAHN6nU98JudLkQPm0a47hYQrkPvFTXuPwhhpGzOBE6hPNxvAj6V\nTF8D3DjZDtoZotsIf3EqXQCsAw4S/trvIDwMpfpE3U2gxdIP3x1k7OE7NcZrMrvvAJXDw64A1ibT\na4GVk+2gG2rIx1HeXXI34WEo1edjwBbgy3TR17UeUe3hO6/BxhSBBwhP6V3Z4bLEYg6hqYbk3zmT\nrdzsfu4bgblVll8L3FfHfnwYaryJzu11wM3A7yXzvw98DriiTeWKgddb8/0s8H3gTYRrdxuhNqrm\nmHJUtmaH+3kZtql88OmEZJnK1Xpub6W+P6Sq7eE71ef7yb8vAXcRmr4M98aMECp4e4B5wIuTrdyp\nZpl0W9y9wCWEh54WAm/Du+v1mpeavpDymzCa2mOE624B4Tq8mHBdKpuZwKxk+ihCDzivycbdC6xK\nplcBd3ewLGUuJLRrHiD85flm6mfXEm5obQN+of1F63m3E7qdbSH8D5+0LU5V+fBd8ywk9DjaDDyN\n5zOLdcD3gFcJuflBQu+jB+jCrpCSJEmSJEmSJEmSJEmSJEmSJEmS+tD/AzUxDUJku6WfAAAAAElF\nTkSuQmCC\n", | |
280 |
"prompt_number": |
|
280 | "prompt_number": 7, | |
281 | "text": [ |
|
281 | "text": [ | |
282 |
"<__main__.Gaussian at 0x10 |
|
282 | "<__main__.Gaussian at 0x106e9ce90>" | |
283 | ] |
|
283 | ] | |
284 | } |
|
284 | } | |
285 | ], |
|
285 | ], | |
286 |
"prompt_number": |
|
286 | "prompt_number": 7 | |
287 | }, |
|
287 | }, | |
288 | { |
|
288 | { | |
289 | "cell_type": "markdown", |
|
289 | "cell_type": "markdown", | |
290 | "metadata": {}, |
|
290 | "metadata": {}, | |
291 | "source": [ |
|
291 | "source": [ | |
292 | "You can then compare the two Gaussians by displaying their histograms:" |
|
292 | "You can then compare the two Gaussians by displaying their histograms:" | |
293 | ] |
|
293 | ] | |
294 | }, |
|
294 | }, | |
295 | { |
|
295 | { | |
296 | "cell_type": "code", |
|
296 | "cell_type": "code", | |
297 | "collapsed": false, |
|
297 | "collapsed": false, | |
298 | "input": [ |
|
298 | "input": [ | |
299 | "display_png(x)\n", |
|
299 | "display_png(x)\n", | |
300 | "display_png(x2)" |
|
300 | "display_png(x2)" | |
301 | ], |
|
301 | ], | |
302 | "language": "python", |
|
302 | "language": "python", | |
303 | "metadata": {}, |
|
303 | "metadata": {}, | |
304 | "outputs": [ |
|
304 | "outputs": [ | |
305 | { |
|
305 | { | |
306 | "metadata": {}, |
|
306 | "metadata": {}, | |
307 | "output_type": "display_data", |
|
307 | "output_type": "display_data", | |
308 | "png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAENCAYAAAASUO4dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGolJREFUeJzt3XtwlNUdxvFnMUGhkgkpuKHANJoQIreQGEWttBvD4pWY\nWAdhOpgqOKJ26m2wQG0b6yhL1T9Q2k5FSrcyxeK0RmqRAQoLxVGDXOoFYqhEQbrZAkkwEDQmnP6B\nbBMgZHezm83ZfD8zmey+++77/rJsnhzOnnNehzHGCABgrT7xLgAA0DUEOQBYjiAHAMsR5ABgOYIc\nACxHkAOA5QhyALAcQQ4AliPIEZaampp4lxBTfr9fTU1N8S4DCAtBjnPaunWrcnNzde+996qmpkZv\nv/12vEuKqcGDB+tXv/pVvMsAwuJgij4kafbs2frOd76jGTNmtNt+77336tZbb9Xll1+uBQsWaOHC\nhTE5/5/+9Cf5/X5VVlaqtLRU06ZNi8l5Trdz504tX75czzzzTHDb1q1btXv3bt1xxx3dUkNHzlZb\nRUWFdu3apT59+mjo0KHBf69wtyPBGMAYc+WVV5rbbrut3bYPPvjArF692hhjzM6dO81zzz0Xk3Pv\n2bMneOyDBw+a1NRUs3fv3picq61nn33WlJaWmh/+8IdnPDZjxoyQj/P222+bkpISM3ToUPPVV18Z\nY4ypra01t99+u7npppvMm2++GZXaGhoaTH5+fvD+lVdeaQ4dOhTW9oMHD4ZdC3o+ulag1tZWTZo0\nSRs2bNAXX3wR3O7z+XTttddKkl5//fXg7Wj78MMPg90ZgwYNUlZWlrZt2xaTc7X18MMP65Zbbjnr\nY4MHD9a///3vkI4zYcIEXX/99crOztZf/vIXSZLT6dTNN9+sV155RVdffXVUatu8ebNGjRoVvJ+b\nm6sNGzaEtX3jxo1h14KeLyneBSD+PvzwQxUVFWnnzp164403VFpaKkk6fvy4zj//fEknuxvmz58f\n1nH37t2rJUuWdPj4lVdeqVtuuUU33nij3njjDUmSMUZ+v19ZWVkR/SyhnvMU00HPYm5urrZt2xZS\nHSdOnFBycrJ+/OMf6+mnn9btt98uSTp27Jj69esXtdo+++wzpaamBu+npqZqz549SktLC2s7Eg9B\nDlVWVmrGjBmaNm2aVqxYodLSUn355Zfq27dvcJ+mpiY5HI7g/dbWVn3ve9/Tli1bJEkzZ87UvHnz\n2gXfJZdcogULFnR6/uTkZI0ZM0aS9Pe//10FBQUaP378Wfetrq7WY489poMHD+rdd9+Vy+XSTTfd\npNmzZ4d1zlPa/kxtDRw4UNXV1SEdY/v27SooKNCYMWP08MMPa/v27crPzz/j2F2traGhQRdccEHw\nft++fXX06FE5HI6wtiPx0LUCHT16VOeff76Ki4u1du1a/fe//1VlZaUmTJgQ3Ke1tbXdc9566y19\n+9vflnSy5fjWW29F3Io+paGhQX/4wx+0fPnysz5eV1en2bNn649//KM2btyooqIiLV++PBjikeio\nRd6vXz81NzeHdIz33ntP48aNU58+fXTffffp+eef10cffaSRI0dGXNfZahswYEC7bcePH1daWlrY\n25F4aJH3ckeOHFH//v0lnQyK66+/XosXL9Y3v/lN3X///cH9kpLav1XWrFmj6667TpK0Y8cOjR07\n9oxjh9OVYIyRx+PRiy++qAsvvFCffvpp8A/FKb/+9a91//33B1uZX375ZbD2SM4pddwiP3LkSMih\nd+LEieDtWbNmKSsrS6NGjdIDDzwQ1doyMzP17rvvBu8fPnxY+fn5Sk1NDWn7oUOHlJ+fH9LPBMvE\n61NWxFdjY6PZuXOn+e1vf9tuJMO2bdtMSkqKmTdvXrv977jjDtPY2Bi8X1BQYN5//31jjDG//OUv\nze9+9zvz2muvRVzPokWLzLvvvmv8fr955513jM/nM8YYU11dbVpbW40xxsyZM8fs2rXLGHNyRM0j\njzwS8flOWbZs2VlHrTz//PNm/fr1wftt62irubnZeL3edtvuuecec8MNN0S9tqNHj5oxY8YE748b\nN84EAoGwtyPxnFdeXl4e7z8m6H4+n08TJ07UuHHjNGXKlOD2IUOG6IMPPlB+fn671lt9fb2OHTum\niy++WAcPHtSCBQs0cOBANTY26siRI/r888918cUX65JLLgm7li1btmjatGl64YUX9Oyzz2rp0qV6\n4oknlJKSomuuuUYjRoxQVlaWsrKytHr1ah04cEA7d+7U/Pnz1adP5L2Dixcv1vLly/Xee+/pyJEj\nys/PD364+8ILL2j27NnB/4m0reOUrVu36oEHHtC+ffs0YcIEpaSkSDrZF378+HFNnDgxqrUNGDBA\nAwYM0N/+9jf5fD5NmTJFV111lfr27RvWdiSgzpK+qqrKjB8/PviVkpJiFi1aZA4fPmwmTZpkRowY\nYdxut6mvr++OPzyIotra2pD3ra+vNz/96U+NMca89NJLZv78+bEqq50vv/zSbN68uVvOdcrx48fN\nQw89FPc6gFB12pwZOXKkduzYoR07dmjbtm3q37+/SktL5fF45Ha7VV1draKiInk8nu74u4Mocjqd\nIe+bmpqqQYMG6dChQ6qsrNStt94aw8r+79VXX41oHHZXvPzyy7rnnnviXgcQqrCm6K9du1ZPPPGE\n/vnPfyonJ0ebNm2S0+lUbW2tXC6XqqqqYlkr4swYoxdffFF33313vEuJmf3792v79u0dThQCeqKw\ngvyuu+5SQUGB7rvvPg0cOFD19fWSTv6Cp6WlBe8DALpPyEHe3NysoUOHateuXRo8eHC7IJektLQ0\n1dXVxaxQAMDZhTyO/I033tBll12mwYMHS1KwSyU9PV1+v18XXXTRGc/JysrSxx9/HL1qAaAXyMzM\nDHmtHymMmZ0rVqzQ9OnTg/eLi4vl9XolSV6vVyUlJWc85+OPP5Yxhq8ofP3iF7+Iew2J9MXryevZ\nk7/CbQCHFOTHjh3T+vXr241UmDt3rtatW6fs7Gxt2LBBc+fODevEAIDoCKlr5Rvf+IYOHTrUblta\nWprWr18fk6IAAKFj0SxLuFyueJeQUHg9o4vXM75ieqk3h8OhGB4eABJSuNlJixwALEeQA4DlCHIA\nsBxBDgCWI8gBwHIEOQBYjiAHAMsR5ABgOYIcACxHkAOA5QhyALAcQQ4AliPIAcByBDnQA6SkpMnh\ncCglJS3epcBCLGML9AAOh0OSkcTvDFjGFgB6HYIcACxHkAOA5QhyALAcQQ4AliPIAcByIQV5Q0OD\nbrvtNl166aUaNWqU3nnnHdXV1cntdis7O1uTJ09WQ0NDrGsFAJxFSEH+wAMP6MYbb9Tu3bv13nvv\nKScnRx6PR263W9XV1SoqKpLH44l1rQCAs+h0QtCRI0eUl5envXv3ttuek5OjTZs2yel0qra2Vi6X\nS1VVVe0PzoQgICRMCEJbUZ8QVFNTo8GDB+vOO+9Ufn6+7r77bh07dkyBQEBOp1OS5HQ6FQgEIq8a\nABCxpM52aGlp0fbt27V48WJdfvnlevDBB8/oRnE4HF+3KM5UXl4evO1yueRyubpUMAAkGp/PJ5/P\nF/HzO+1aqa2t1VVXXaWamhpJ0pYtW7RgwQLt3btXGzduVHp6uvx+vwoLC+laASJE1wrainrXSnp6\nuoYPH67q6mpJ0vr16zV69GhNmTJFXq9XkuT1elVSUhJhyQCArghp9cN//etfmjVrlpqbm5WZmall\ny5aptbVVU6dO1b59+5SRkaGVK1cqNTW1/cFpkQMhoUWOtsLNTpaxBXoAghxtsYwtAPQyBDkAWI4g\nBwDLEeQAYDmCHAAsR5ADgOUIcgCwHEEOAJYjyIE4SElJk8PhUEpKWrxLQQJgZicQB6fP5GRmJ9pi\nZicA9DIEOQBYjiAHAMsR5ABgOYIcACxHkAOA5QhyALAcQQ4AliPIAcByBDkAWI4gBwDLEeRAD8Si\nWggHi2YBcdDZolksotW7hZudSaHslJGRoZSUFJ133nlKTk5WZWWl6urqdPvtt+vTTz9VRkaGVq5c\nqdTU1IgLBwBEJqSuFYfDIZ/Ppx07dqiyslKS5PF45Ha7VV1draKiInk8npgWCgA4u5D7yE9v5q9a\ntUplZWWSpLKyMlVUVES3MgBASEJukU+aNEkFBQVasmSJJCkQCMjpdEqSnE6nAoFA7KoEAHQopD7y\nN998U0OGDNHBgwfldruVk5PT7nGHw/H1hzNnKi8vD952uVxyuVwRFwsAicjn88nn80X8/LBHrTz+\n+OO68MILtWTJEvl8PqWnp8vv96uwsFBVVVXtD86oFeCsGLWCc4n6pd6amprU2NgoSTp27JjWrl2r\nsWPHqri4WF6vV5Lk9XpVUlISYckAgK7otEVeU1Oj0tJSSVJLS4t+8IMfaN68eaqrq9PUqVO1b9++\nDocf0iIHzo4WOc4l3OxkQhAQBwQ5ziXqXSsAgJ6NIAcAyxHkAGA5ghwALEeQA4DlCHIgrpI6nBUN\nhIogB+KqRSeHGQKRI8gBwHIEORADXKoN3YmZnUAMdDYzs+3jp39nZieY2QkAvQxBDgCWI8gBwHIE\nOQBYjiAHAMsR5ABgOYIcACxHkAOA5QhyALAcQQ4AliPIAcByBDnQDVhEC7HEollADJy+6NW57rNo\nFk4Xk0WzWltblZeXpylTpkiS6urq5Ha7lZ2drcmTJ6uhoSGyagEAXRZSkC9atEijRo0KXpLK4/HI\n7XarurpaRUVF8ng8MS0SANCxToP8s88+0+rVqzVr1qxgU3/VqlUqKyuTJJWVlamioiK2VQIAOtRp\nkD/00EN6+umn1afP/3cNBAJyOp2SJKfTqUAgELsKAQDnlHSuB19//XVddNFFysvLk8/nO+s+Dofj\nnFcBLy8vD952uVxyuVyR1AkACcvn83WYsaE456iV+fPn66WXXlJSUpK++OILff7557r11lu1detW\n+Xw+paeny+/3q7CwUFVVVWcenFEr6KUYtYKuiOqolaeeekr79+9XTU2NXn75ZV177bV66aWXVFxc\nLK/XK0nyer0qKSnpWtUAgIiFNSHoVBfK3LlztW7dOmVnZ2vDhg2aO3duTIoD7Jd0zq7HUJ/vcPRl\nQhE6xIQgIAbC6TqJ5HEktphMCAIA9FwEOQBYjiAHAMsR5ABgOYIcACxHkAM9SmfDFZMYhogznHOK\nPoDu1qL/Dzfs+PHGxq6MTUeioUUOAJYjyIFu1dWZnsCZCHKgW53qOgGihyAHAMsR5ABgOYIcACxH\nkAOA5QhyALAcQQ4AliPIAcByBDkAWI4gB8KQkpLGolXocbhmJxCGttfSPNd7+1zX3IzWd363EhfX\n7ASAXoYgB7rgVFeLw9GXLhfEDV0rQBhO71o5WxdKR9vpWkGootq18sUXX2jChAkaP368Ro0apXnz\n5kmS6urq5Ha7lZ2drcmTJ6uhoaFrVQMAItZpi7ypqUn9+/dXS0uLrrnmGj3zzDNatWqVBg0apEcf\nfVQLFy5UfX29PB7PmQenRY4EQ4sc3SHqH3b2799fktTc3KzW1lYNHDhQq1atUllZmSSprKxMFRUV\nEZYLAOiqToP8xIkTGj9+vJxOpwoLCzV69GgFAgE5nU5JktPpVCAQiHmhAICz6/Tiy3369NHOnTt1\n5MgRXXfdddq4cWO7x09+Yt/xpavKy8uDt10ul1wuV8TFAj0Hl2xD9Ph8Pvl8voifH9aolSeeeEL9\n+vXTiy++KJ/Pp/T0dPn9fhUWFqqqqurMg9NHjgQTSt83feToqqj2kR86dCg4IuX48eNat26d8vLy\nVFxcLK/XK0nyer0qKSnpQskAgK44Z9eK3+9XWVmZTpw4oRMnTmjGjBkqKipSXl6epk6dqqVLlyoj\nI0MrV67srnqBHq67ulxOnmfAgIH6/PO6bjgfejImBAFh6I4uE7pYwForANDLEOQAYDmCHAAsR5AD\ngOUIcgCwHEEOAJYjyAHAcgQ5AFiOIAeslsQl5tD56ocAerIWSUaNjazE2JvRIgcAyxHkAGA5ghwA\nLEeQA4DlCHIggaSkpDGKpRdiPXIgDD1xPfKOLjHH7569WI8cAHoZghwALEeQA4DlCHIAsBxBDgCW\nI8iBhJD09YgV9EYEOZAQTi6ehd6p0yDfv3+/CgsLNXr0aI0ZM0bPPfecJKmurk5ut1vZ2dmaPHmy\nGhoaYl4sAOBMnU4Iqq2tVW1trcaPH6+jR4/qsssuU0VFhZYtW6ZBgwbp0Ucf1cKFC1VfXy+Px9P+\n4EwIQoLpyROCzjZBCHaK+oSg9PR0jR8/XpJ04YUX6tJLL9WBAwe0atUqlZWVSZLKyspUUVERYckA\ngK4Iq4/8k08+0Y4dOzRhwgQFAgE5nU5JktPpVCAQiEmBAIBzC/kKQUePHtX3v/99LVq0SAMGDGj3\nmMPh6PAT8/Ly8uBtl8sll8sVUaEAkKh8Pp98Pl/Ezw9p0ayvvvpKN998s2644QY9+OCDkqScnBz5\nfD6lp6fL7/ersLBQVVVV7Q9OHzkSDH3k6A5R7yM3xmjmzJkaNWpUMMQlqbi4WF6vV5Lk9XpVUlIS\nQbkAgK7qtEW+ZcsWffe739W4ceOC3ScLFizQFVdcoalTp2rfvn3KyMjQypUrlZqa2v7gtMhhuZSU\nNDU21ktKlvTV11t7RoubFnniCjc7WY8cOAebulII8sTBeuQA0MsQ5ABgOYIcACxHkAOA5QhyALAc\nQQ4AliPIAcByBDkAWI4gBwDLEeQAYDmCHAAsR5ADbaSkpMnhcCglJS3epXRR0tfXCeibID8PzoVF\ns4A22i6SZYyxetEsFtGyF4tmAUAvQ5ADgOUIcgCwHEEOAJYjyIFeJHFG5aCtpHgXAKD7nLz+qFFj\noyPepSCKaJEDgOUIcgCwHEEOAJYjyAHAcp0G+V133SWn06mxY8cGt9XV1cntdis7O1uTJ09WQ0ND\nTIsEAHSs0yC/8847tWbNmnbbPB6P3G63qqurVVRUJI/HE7MCge5walhe4kpK8J+vdwtp0axPPvlE\nU6ZM0fvvvy9JysnJ0aZNm+R0OlVbWyuXy6WqqqozD86iWbDE2RbHSrRFs1hEyx7dsmhWIBCQ0+mU\nJDmdTgUCgUgOAwCIgi5PCDq55nHH/2UrLy8P3na5XHK5XF09JdBlKSlpX0+OSZb0VbzLQS/n8/nk\n8/kifn7EXSs+n0/p6eny+/0qLCykawVWCaXLhK4VxEu3dK0UFxfL6/VKkrxer0pKSiI5DAAgCjoN\n8unTp+vqq6/WRx99pOHDh2vZsmWaO3eu1q1bp+zsbG3YsEFz587tjlqBiIW/WFTvGOXBIlqJgUu9\noVdI5Eu4daVr5fTXBT0Dl3oDgF6GIAcAyxHkAGA5ghwALEeQA4DlCHIAsBxBDgCWI8gBwHIEORJK\n5zMVe8eMzc6d/XVgpqedmNmJhNLRTEVmcjLT0ybM7ASAXoYgBwDLEeQAYDmCHAAsR5ADgOUIcgCw\nHEEOAJYjyJGgkpjYEpbwJkoxcahnSYp3AUBstEgyamxkFmdoTr5eJycIda6xsV68vj0HQQ7rtLa2\nqr6+XpKUlpamPn34jyV6N34DYJ3HHivXkCHfVnr6cP3mN7/pZG/WVolMqF1TdGH1BLTIYZ2jR5vU\n0vJLJSUF1NTU1Mne4XUZ4JRQu6bowuoJutQiX7NmjXJycjRixAgtXLgwWjUBAMIQcZC3trbqRz/6\nkdasWaNdu3ZpxYoV2r17dzRrQxs+ny/eJQDooSIO8srKSmVlZSkjI0PJycmaNm2aXnvttWjWhjYI\ncsTHyT5wh6Nvu+/oWSIO8gMHDmj48OHB+8OGDdOBAweiUhSAnuLUZwxfnfYdPUnEQc5fZcTLeef1\n0QUXLFVS0l8YegioC6NWhg4dqv379wfv79+/X8OGDWu3T2ZmJoEfRY8//ni8S+hx5syZozlz5py2\n1cH3OHzndz16MjMzw9o/4ku9tbS0aOTIkfrHP/6hb33rW7riiiu0YsUKXXrppZEcDgAQoYhb5ElJ\nSVq8eLGuu+46tba2aubMmYQ4AMRBTC++DACIvah/UvTKK69o9OjROu+887R9+/Z2jy1YsEAjRoxQ\nTk6O1q5dG+1TJ7zy8nINGzZMeXl5ysvL05o1a+JdkpWYyBZdGRkZGjdunPLy8nTFFVfEuxyr3HXX\nXXI6nRo7dmxwW11dndxut7KzszV58mQ1NDR0fiATZbt37zYfffSRcblcZtu2bcHtH374ocnNzTXN\nzc2mpqbGZGZmmtbW1mifPqGVl5ebZ599Nt5lWK2lpcVkZmaampoa09zcbHJzc82uXbviXZbVMjIy\nzOHDh+NdhpU2b95stm/fbsaMGRPcNmfOHLNw4UJjjDEej8f85Cc/6fQ4UW+R5+TkKDs7+4ztr732\nmqZPn67k5GRlZGQoKytLlZWV0T59wjP0hHUJE9lig/dlZCZOnKiBAwe227Zq1SqVlZVJksrKylRR\nUdHpcbptEO5//vOfdsMTmUAUmeeff165ubmaOXNmaP/lQjtMZIs+h8OhSZMmqaCgQEuWLIl3OdYL\nBAJyOp2SJKfTqUAg0OlzIhq14na7VVtbe8b2p556SlOmTAn5OIw7PVNHr+2TTz6pe++9Vz//+c8l\nST/72c/0yCOPaOnSpd1dotV4z0Xfm2++qSFDhujgwYNyu93KycnRxIkT411WQji5LELn79mIgnzd\nunVhP+f0CUSfffaZhg4dGsnpE1qor+2sWbPC+qOJk0KZyIbwDBkyRJI0ePBglZaWqrKykiDvAqfT\nqdraWqWnp8vv9+uiiy7q9Dkx7Vpp229WXFysl19+Wc3NzaqpqdGePXv4hDtMfr8/ePvVV19t90k3\nQlNQUKA9e/bok08+UXNzs/785z+ruLg43mVZq6mpSY2NjZKkY8eOae3atbwvu6i4uFher1eS5PV6\nVVJS0vmTov0p7F//+lczbNgwc8EFFxin02muv/764GNPPvmkyczMNCNHjjRr1qyJ9qkT3owZM8zY\nsWPNuHHjzC233GJqa2vjXZKVVq9ebbKzs01mZqZ56qmn4l2O1fbu3Wtyc3NNbm6uGT16NK9nmKZN\nm2aGDBlikpOTzbBhw8zvf/97c/jwYVNUVGRGjBhh3G63qa+v7/Q4TAgCAMuxdBwAWI4gBwDLEeQA\nYDmCHAAsR5ADgOUIcgCwHEEOAJYjyAHAcv8DUrLE4leGVckAAAAASUVORK5CYII=\n" |
|
308 | "png": "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\n" | |
309 | }, |
|
309 | }, | |
310 | { |
|
310 | { | |
311 | "metadata": {}, |
|
311 | "metadata": {}, | |
312 | "output_type": "display_data", |
|
312 | "output_type": "display_data", | |
313 | "png": "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\n/xa6Y+R78p3rD0fthDTck5KSVFdX53ldV1en5ORkr2nS0tKi7kfgm2/e8nq9fXtXP2Sd2/ydrvfb\n+kod4WjrybIW/d8jVMvry//WcLQFvz39y4ngv3PRlkNpaWkBTR/SOzGdPn1aw4cP17vvvquhQ4dq\n4sSJWrlypUaMGBGqVQAA/BDSnntMTIyWLVumW265Re3t7ZozZw7BDgAREPZ7qAIAel/YzlB94403\nNHLkSF100UXavn2713slJSUaNmyYMjMztX79+nCVZIzi4mIlJydr3LhxGjdunCoqKiJdUtTh5LvQ\nSk1N1ZgxYzRu3DhNnDgx0uVEnfvvv192u12jR4/2tDU3N8vpdCojI0O5ublqaWnpfiFWmOzcudP6\n8ssvLYfDYW3bts3TvmPHDis7O9tqa2uzamtrrbS0NKu9vT1cZRmhuLjY+t3vfhfpMqLW6dOnrbS0\nNKu2ttZqa2uzsrOzraqqqkiXFdVSU1OtQ4cORbqMqPX+++9b27dvt0aNGuVpe/LJJ62lS5dalmVZ\npaWl1s9//vNulxG2nntmZqYyMjI6tZeXl6uwsFCxsbFKTU1Venq6Kisrw1WWMSxG14Jm2sl3fQWf\nyeBNnjxZgwYN8mpbu3atioqKJElFRUUqKyvrdhkRv3DY/v37vQ6XNOHEp0h44YUXlJ2drTlz5lz4\nzzV4MfHku0iz2Wy6+eabNWHCBL344ouRLscITU1NstvtkiS73a6mpqZupw/p0TJOp1ONjY2d2pcs\nWaJp06b5mMO3aDv+NBy62raLFy/Www8/rF//+teSpF/96ld64okn9PLLL4e7xKjF5y30PvjgA111\n1VU6cOCAnE6nMjMzNXny5EiXZQx/LlMS0nDfsGFDwPOcf+JTfX29kpKSQlmWEfzdtnPnzg3ohxT+\nnXyHwFx11VWSpMGDB2v69OmqrKwk3HvIbrersbFRiYmJamho0JAhvi+FclZEhmXOHYvLy8vTqlWr\n1NbWptraWu3evZu96wFqaGjwPH/zzTe99rDjwiZMmKDdu3drz549amtr0+rVq5WXlxfpsqLW8ePH\n1draKkk6duyY1q9fz2cyBPLy8uRyuSRJLpdL+fn53c/Qe/t7vf3973+3kpOTrUsuucSy2+3W1KlT\nPe8tXrzYSktLs4YPH25VVFSEqyRjzJo1yxo9erQ1ZswY684777QaGxsjXVLUWbdunZWRkWGlpaVZ\nS5YsiXQ5Ua2mpsbKzs62srOzrZEjR7I9gzBz5kzrqquusmJjY63k5GTrlVdesQ4dOmTl5ORYw4YN\ns5xOp3X48OFul8FJTABgoIgfLQMACD3CHQAMRLgDgIEIdwAwEOEOAAYi3AHAQIQ7ABiIcAcAA/1/\nt6/k+ndBNwkAAAAASUVORK5CYII=\n" |
|
313 | "png": "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\nTkSuQmCC\n" | |
314 | } |
|
314 | } | |
315 | ], |
|
315 | ], | |
316 |
"prompt_number": |
|
316 | "prompt_number": 8 | |
317 | }, |
|
317 | }, | |
318 | { |
|
318 | { | |
319 | "cell_type": "markdown", |
|
319 | "cell_type": "markdown", | |
320 | "metadata": {}, |
|
320 | "metadata": {}, | |
321 | "source": [ |
|
321 | "source": [ | |
322 | "Note that like `print`, you can call any of the `display` functions multiple times in a cell." |
|
322 | "Note that like `print`, you can call any of the `display` functions multiple times in a cell." | |
323 | ] |
|
323 | ] | |
324 | }, |
|
324 | }, | |
325 | { |
|
325 | { | |
326 | "cell_type": "heading", |
|
326 | "cell_type": "heading", | |
327 | "level": 2, |
|
327 | "level": 2, | |
328 | "metadata": {}, |
|
328 | "metadata": {}, | |
329 | "source": [ |
|
329 | "source": [ | |
330 | "Adding IPython display support to existing objects" |
|
330 | "Adding IPython display support to existing objects" | |
331 | ] |
|
331 | ] | |
332 | }, |
|
332 | }, | |
333 | { |
|
333 | { | |
334 | "cell_type": "markdown", |
|
334 | "cell_type": "markdown", | |
335 | "metadata": {}, |
|
335 | "metadata": {}, | |
336 | "source": [ |
|
336 | "source": [ | |
337 | "When you are directly writing your own classes, you can adapt them for display in IPython by following the above approach. But in practice, you often need to work with existing classes that you can't easily modify. We now illustrate how to add rich output capabilities to existing objects. We will use the NumPy polynomials and change their default representation to be a formatted LaTeX expression." |
|
337 | "When you are directly writing your own classes, you can adapt them for display in IPython by following the above approach. But in practice, you often need to work with existing classes that you can't easily modify. We now illustrate how to add rich output capabilities to existing objects. We will use the NumPy polynomials and change their default representation to be a formatted LaTeX expression." | |
338 | ] |
|
338 | ] | |
339 | }, |
|
339 | }, | |
340 | { |
|
340 | { | |
341 | "cell_type": "markdown", |
|
341 | "cell_type": "markdown", | |
342 | "metadata": {}, |
|
342 | "metadata": {}, | |
343 | "source": [ |
|
343 | "source": [ | |
344 | "First, consider how a NumPy polynomial object renders by default:" |
|
344 | "First, consider how a NumPy polynomial object renders by default:" | |
345 | ] |
|
345 | ] | |
346 | }, |
|
346 | }, | |
347 | { |
|
347 | { | |
348 | "cell_type": "code", |
|
348 | "cell_type": "code", | |
349 | "collapsed": false, |
|
349 | "collapsed": false, | |
350 | "input": [ |
|
350 | "input": [ | |
351 | "p = np.polynomial.Polynomial([1,2,3], [-10, 10])\n", |
|
351 | "p = np.polynomial.Polynomial([1,2,3], [-10, 10])\n", | |
352 | "p" |
|
352 | "p" | |
353 | ], |
|
353 | ], | |
354 | "language": "python", |
|
354 | "language": "python", | |
355 | "metadata": {}, |
|
355 | "metadata": {}, | |
356 | "outputs": [ |
|
356 | "outputs": [ | |
357 | { |
|
357 | { | |
358 | "metadata": {}, |
|
358 | "metadata": {}, | |
359 | "output_type": "pyout", |
|
359 | "output_type": "pyout", | |
360 |
"prompt_number": |
|
360 | "prompt_number": 9, | |
361 | "text": [ |
|
361 | "text": [ | |
362 | "Polynomial([ 1., 2., 3.], [-10., 10.], [-1., 1.])" |
|
362 | "Polynomial([ 1., 2., 3.], [-10., 10.], [-1., 1.])" | |
363 | ] |
|
363 | ] | |
364 | } |
|
364 | } | |
365 | ], |
|
365 | ], | |
366 |
"prompt_number": |
|
366 | "prompt_number": 9 | |
367 | }, |
|
367 | }, | |
368 | { |
|
368 | { | |
369 | "cell_type": "markdown", |
|
369 | "cell_type": "markdown", | |
370 | "metadata": {}, |
|
370 | "metadata": {}, | |
371 | "source": [ |
|
371 | "source": [ | |
372 | "Next, define a function that pretty-prints a polynomial as a LaTeX string:" |
|
372 | "Next, define a function that pretty-prints a polynomial as a LaTeX string:" | |
373 | ] |
|
373 | ] | |
374 | }, |
|
374 | }, | |
375 | { |
|
375 | { | |
376 | "cell_type": "code", |
|
376 | "cell_type": "code", | |
377 | "collapsed": false, |
|
377 | "collapsed": false, | |
378 | "input": [ |
|
378 | "input": [ | |
379 | "def poly_to_latex(p):\n", |
|
379 | "def poly_to_latex(p):\n", | |
380 | " terms = ['%.2g' % p.coef[0]]\n", |
|
380 | " terms = ['%.2g' % p.coef[0]]\n", | |
381 | " if len(p) > 1:\n", |
|
381 | " if len(p) > 1:\n", | |
382 | " term = 'x'\n", |
|
382 | " term = 'x'\n", | |
383 | " c = p.coef[1]\n", |
|
383 | " c = p.coef[1]\n", | |
384 | " if c!=1:\n", |
|
384 | " if c!=1:\n", | |
385 | " term = ('%.2g ' % c) + term\n", |
|
385 | " term = ('%.2g ' % c) + term\n", | |
386 | " terms.append(term)\n", |
|
386 | " terms.append(term)\n", | |
387 | " if len(p) > 2:\n", |
|
387 | " if len(p) > 2:\n", | |
388 | " for i in range(2, len(p)):\n", |
|
388 | " for i in range(2, len(p)):\n", | |
389 | " term = 'x^%d' % i\n", |
|
389 | " term = 'x^%d' % i\n", | |
390 | " c = p.coef[i]\n", |
|
390 | " c = p.coef[i]\n", | |
391 | " if c!=1:\n", |
|
391 | " if c!=1:\n", | |
392 | " term = ('%.2g ' % c) + term\n", |
|
392 | " term = ('%.2g ' % c) + term\n", | |
393 | " terms.append(term)\n", |
|
393 | " terms.append(term)\n", | |
394 | " px = '$P(x)=%s$' % '+'.join(terms)\n", |
|
394 | " px = '$P(x)=%s$' % '+'.join(terms)\n", | |
395 | " dom = r', $x \\in [%.2g,\\ %.2g]$' % tuple(p.domain)\n", |
|
395 | " dom = r', $x \\in [%.2g,\\ %.2g]$' % tuple(p.domain)\n", | |
396 | " return px+dom" |
|
396 | " return px+dom" | |
397 | ], |
|
397 | ], | |
398 | "language": "python", |
|
398 | "language": "python", | |
399 | "metadata": {}, |
|
399 | "metadata": {}, | |
400 | "outputs": [], |
|
400 | "outputs": [], | |
401 |
"prompt_number": |
|
401 | "prompt_number": 10 | |
402 | }, |
|
402 | }, | |
403 | { |
|
403 | { | |
404 | "cell_type": "markdown", |
|
404 | "cell_type": "markdown", | |
405 | "metadata": {}, |
|
405 | "metadata": {}, | |
406 | "source": [ |
|
406 | "source": [ | |
407 | "This produces, on our polynomial ``p``, the following:" |
|
407 | "This produces, on our polynomial ``p``, the following:" | |
408 | ] |
|
408 | ] | |
409 | }, |
|
409 | }, | |
410 | { |
|
410 | { | |
411 | "cell_type": "code", |
|
411 | "cell_type": "code", | |
412 | "collapsed": false, |
|
412 | "collapsed": false, | |
413 | "input": [ |
|
413 | "input": [ | |
414 | "poly_to_latex(p)" |
|
414 | "poly_to_latex(p)" | |
415 | ], |
|
415 | ], | |
416 | "language": "python", |
|
416 | "language": "python", | |
417 | "metadata": {}, |
|
417 | "metadata": {}, | |
418 | "outputs": [ |
|
418 | "outputs": [ | |
419 | { |
|
419 | { | |
420 | "metadata": {}, |
|
420 | "metadata": {}, | |
421 | "output_type": "pyout", |
|
421 | "output_type": "pyout", | |
422 |
"prompt_number": |
|
422 | "prompt_number": 11, | |
423 | "text": [ |
|
423 | "text": [ | |
424 | "'$P(x)=1+2 x+3 x^2$, $x \\\\in [-10,\\\\ 10]$'" |
|
424 | "'$P(x)=1+2 x+3 x^2$, $x \\\\in [-10,\\\\ 10]$'" | |
425 | ] |
|
425 | ] | |
426 | } |
|
426 | } | |
427 | ], |
|
427 | ], | |
428 |
"prompt_number": |
|
428 | "prompt_number": 11 | |
429 | }, |
|
429 | }, | |
430 | { |
|
430 | { | |
431 | "cell_type": "markdown", |
|
431 | "cell_type": "markdown", | |
432 | "metadata": {}, |
|
432 | "metadata": {}, | |
433 | "source": [ |
|
433 | "source": [ | |
434 | "You can render this string using the `Latex` class:" |
|
434 | "You can render this string using the `Latex` class:" | |
435 | ] |
|
435 | ] | |
436 | }, |
|
436 | }, | |
437 | { |
|
437 | { | |
438 | "cell_type": "code", |
|
438 | "cell_type": "code", | |
439 | "collapsed": false, |
|
439 | "collapsed": false, | |
440 | "input": [ |
|
440 | "input": [ | |
441 | "from IPython.display import Latex\n", |
|
441 | "from IPython.display import Latex\n", | |
442 | "Latex(poly_to_latex(p))" |
|
442 | "Latex(poly_to_latex(p))" | |
443 | ], |
|
443 | ], | |
444 | "language": "python", |
|
444 | "language": "python", | |
445 | "metadata": {}, |
|
445 | "metadata": {}, | |
446 | "outputs": [ |
|
446 | "outputs": [ | |
447 | { |
|
447 | { | |
448 | "latex": [ |
|
448 | "latex": [ | |
449 | "$P(x)=1+2 x+3 x^2$, $x \\in [-10,\\ 10]$" |
|
449 | "$P(x)=1+2 x+3 x^2$, $x \\in [-10,\\ 10]$" | |
450 | ], |
|
450 | ], | |
451 | "metadata": {}, |
|
451 | "metadata": {}, | |
452 | "output_type": "pyout", |
|
452 | "output_type": "pyout", | |
453 |
"prompt_number": |
|
453 | "prompt_number": 12, | |
454 | "text": [ |
|
454 | "text": [ | |
455 | "<IPython.core.display.Latex object>" |
|
455 | "<IPython.core.display.Latex object>" | |
456 | ] |
|
456 | ] | |
457 | } |
|
457 | } | |
458 | ], |
|
458 | ], | |
459 |
"prompt_number": |
|
459 | "prompt_number": 12 | |
460 | }, |
|
460 | }, | |
461 | { |
|
461 | { | |
462 | "cell_type": "markdown", |
|
462 | "cell_type": "markdown", | |
463 | "metadata": {}, |
|
463 | "metadata": {}, | |
464 | "source": [ |
|
464 | "source": [ | |
465 | "However, you can configure IPython to do this automatically by registering the `Polynomial` class and the `plot_to_latex` function with an IPython display formatter. Let's look at the default formatters provided by IPython:" |
|
465 | "However, you can configure IPython to do this automatically by registering the `Polynomial` class and the `plot_to_latex` function with an IPython display formatter. Let's look at the default formatters provided by IPython:" | |
466 | ] |
|
466 | ] | |
467 | }, |
|
467 | }, | |
468 | { |
|
468 | { | |
469 | "cell_type": "code", |
|
469 | "cell_type": "code", | |
470 | "collapsed": false, |
|
470 | "collapsed": false, | |
471 | "input": [ |
|
471 | "input": [ | |
472 | "ip = get_ipython()\n", |
|
472 | "ip = get_ipython()\n", | |
473 | "for mime, formatter in ip.display_formatter.formatters.items():\n", |
|
473 | "for mime, formatter in ip.display_formatter.formatters.items():\n", | |
474 | " print '%24s : %s' % (mime, formatter.__class__.__name__)" |
|
474 | " print '%24s : %s' % (mime, formatter.__class__.__name__)" | |
475 | ], |
|
475 | ], | |
476 | "language": "python", |
|
476 | "language": "python", | |
477 | "metadata": {}, |
|
477 | "metadata": {}, | |
478 | "outputs": [ |
|
478 | "outputs": [ | |
479 | { |
|
479 | { | |
480 | "output_type": "stream", |
|
480 | "output_type": "stream", | |
481 | "stream": "stdout", |
|
481 | "stream": "stdout", | |
482 | "text": [ |
|
482 | "text": [ | |
483 | " text/plain : PlainTextFormatter\n", |
|
483 | " text/plain : PlainTextFormatter\n", | |
484 | " image/jpeg : JPEGFormatter\n", |
|
484 | " image/jpeg : JPEGFormatter\n", | |
485 | " text/html : HTMLFormatter\n", |
|
485 | " text/html : HTMLFormatter\n", | |
486 | " image/svg+xml : SVGFormatter\n", |
|
486 | " image/svg+xml : SVGFormatter\n", | |
487 | " image/png : PNGFormatter\n", |
|
487 | " image/png : PNGFormatter\n", | |
488 | " application/javascript : JavascriptFormatter\n", |
|
488 | " application/javascript : JavascriptFormatter\n", | |
489 | " text/markdown : MarkdownFormatter\n", |
|
489 | " text/markdown : MarkdownFormatter\n", | |
490 | " text/latex : LatexFormatter\n", |
|
490 | " text/latex : LatexFormatter\n", | |
491 | " application/json : JSONFormatter\n", |
|
491 | " application/json : JSONFormatter\n", | |
492 | " application/pdf : PDFFormatter\n" |
|
492 | " application/pdf : PDFFormatter\n" | |
493 | ] |
|
493 | ] | |
494 | } |
|
494 | } | |
495 | ], |
|
495 | ], | |
496 |
"prompt_number": |
|
496 | "prompt_number": 13 | |
497 | }, |
|
497 | }, | |
498 | { |
|
498 | { | |
499 | "cell_type": "markdown", |
|
499 | "cell_type": "markdown", | |
500 | "metadata": {}, |
|
500 | "metadata": {}, | |
501 | "source": [ |
|
501 | "source": [ | |
502 | "The `formatters` attribute is a dictionary keyed by MIME types. To define a custom LaTeX display function, you want a handle on the `text/latex` formatter:" |
|
502 | "The `formatters` attribute is a dictionary keyed by MIME types. To define a custom LaTeX display function, you want a handle on the `text/latex` formatter:" | |
503 | ] |
|
503 | ] | |
504 | }, |
|
504 | }, | |
505 | { |
|
505 | { | |
506 | "cell_type": "code", |
|
506 | "cell_type": "code", | |
507 | "collapsed": false, |
|
507 | "collapsed": false, | |
508 | "input": [ |
|
508 | "input": [ | |
509 | "ip = get_ipython()\n", |
|
509 | "ip = get_ipython()\n", | |
510 | "latex_f = ip.display_formatter.formatters['text/latex']" |
|
510 | "latex_f = ip.display_formatter.formatters['text/latex']" | |
511 | ], |
|
511 | ], | |
512 | "language": "python", |
|
512 | "language": "python", | |
513 | "metadata": {}, |
|
513 | "metadata": {}, | |
514 | "outputs": [], |
|
514 | "outputs": [], | |
515 |
"prompt_number": |
|
515 | "prompt_number": 14 | |
516 | }, |
|
516 | }, | |
517 | { |
|
517 | { | |
518 | "cell_type": "markdown", |
|
518 | "cell_type": "markdown", | |
519 | "metadata": {}, |
|
519 | "metadata": {}, | |
520 | "source": [ |
|
520 | "source": [ | |
521 | "The formatter object has a couple of methods for registering custom display functions for existing types." |
|
521 | "The formatter object has a couple of methods for registering custom display functions for existing types." | |
522 | ] |
|
522 | ] | |
523 | }, |
|
523 | }, | |
524 | { |
|
524 | { | |
525 | "cell_type": "code", |
|
525 | "cell_type": "code", | |
526 | "collapsed": false, |
|
526 | "collapsed": false, | |
527 | "input": [ |
|
527 | "input": [ | |
528 | "help(latex_f.for_type)" |
|
528 | "help(latex_f.for_type)" | |
529 | ], |
|
529 | ], | |
530 | "language": "python", |
|
530 | "language": "python", | |
531 | "metadata": {}, |
|
531 | "metadata": {}, | |
532 | "outputs": [ |
|
532 | "outputs": [ | |
533 | { |
|
533 | { | |
534 | "output_type": "stream", |
|
534 | "output_type": "stream", | |
535 | "stream": "stdout", |
|
535 | "stream": "stdout", | |
536 | "text": [ |
|
536 | "text": [ | |
537 | "Help on method for_type in module IPython.core.formatters:\n", |
|
537 | "Help on method for_type in module IPython.core.formatters:\n", | |
538 | "\n", |
|
538 | "\n", | |
539 | "for_type(self, typ, func=None) method of IPython.core.formatters.LatexFormatter instance\n", |
|
539 | "for_type(self, typ, func=None) method of IPython.core.formatters.LatexFormatter instance\n", | |
540 | " Add a format function for a given type.\n", |
|
540 | " Add a format function for a given type.\n", | |
541 | " \n", |
|
541 | " \n", | |
542 | " Parameters\n", |
|
542 | " Parameters\n", | |
543 | " -----------\n", |
|
543 | " -----------\n", | |
544 | " typ : type or '__module__.__name__' string for a type\n", |
|
544 | " typ : type or '__module__.__name__' string for a type\n", | |
545 | " The class of the object that will be formatted using `func`.\n", |
|
545 | " The class of the object that will be formatted using `func`.\n", | |
546 | " func : callable\n", |
|
546 | " func : callable\n", | |
547 | " A callable for computing the format data.\n", |
|
547 | " A callable for computing the format data.\n", | |
548 | " `func` will be called with the object to be formatted,\n", |
|
548 | " `func` will be called with the object to be formatted,\n", | |
549 | " and will return the raw data in this formatter's format.\n", |
|
549 | " and will return the raw data in this formatter's format.\n", | |
550 | " Subclasses may use a different call signature for the\n", |
|
550 | " Subclasses may use a different call signature for the\n", | |
551 | " `func` argument.\n", |
|
551 | " `func` argument.\n", | |
552 | " \n", |
|
552 | " \n", | |
553 | " If `func` is None or not specified, there will be no change,\n", |
|
553 | " If `func` is None or not specified, there will be no change,\n", | |
554 | " only returning the current value.\n", |
|
554 | " only returning the current value.\n", | |
555 | " \n", |
|
555 | " \n", | |
556 | " Returns\n", |
|
556 | " Returns\n", | |
557 | " -------\n", |
|
557 | " -------\n", | |
558 | " oldfunc : callable\n", |
|
558 | " oldfunc : callable\n", | |
559 | " The currently registered callable.\n", |
|
559 | " The currently registered callable.\n", | |
560 | " If you are registering a new formatter,\n", |
|
560 | " If you are registering a new formatter,\n", | |
561 | " this will be the previous value (to enable restoring later).\n", |
|
561 | " this will be the previous value (to enable restoring later).\n", | |
562 | "\n" |
|
562 | "\n" | |
563 | ] |
|
563 | ] | |
564 | } |
|
564 | } | |
565 | ], |
|
565 | ], | |
566 |
"prompt_number": |
|
566 | "prompt_number": 15 | |
567 | }, |
|
567 | }, | |
568 | { |
|
568 | { | |
569 | "cell_type": "code", |
|
569 | "cell_type": "code", | |
570 | "collapsed": false, |
|
570 | "collapsed": false, | |
571 | "input": [ |
|
571 | "input": [ | |
572 | "help(latex_f.for_type_by_name)" |
|
572 | "help(latex_f.for_type_by_name)" | |
573 | ], |
|
573 | ], | |
574 | "language": "python", |
|
574 | "language": "python", | |
575 | "metadata": {}, |
|
575 | "metadata": {}, | |
576 | "outputs": [ |
|
576 | "outputs": [ | |
577 | { |
|
577 | { | |
578 | "output_type": "stream", |
|
578 | "output_type": "stream", | |
579 | "stream": "stdout", |
|
579 | "stream": "stdout", | |
580 | "text": [ |
|
580 | "text": [ | |
581 | "Help on method for_type_by_name in module IPython.core.formatters:\n", |
|
581 | "Help on method for_type_by_name in module IPython.core.formatters:\n", | |
582 | "\n", |
|
582 | "\n", | |
583 | "for_type_by_name(self, type_module, type_name, func=None) method of IPython.core.formatters.LatexFormatter instance\n", |
|
583 | "for_type_by_name(self, type_module, type_name, func=None) method of IPython.core.formatters.LatexFormatter instance\n", | |
584 | " Add a format function for a type specified by the full dotted\n", |
|
584 | " Add a format function for a type specified by the full dotted\n", | |
585 | " module and name of the type, rather than the type of the object.\n", |
|
585 | " module and name of the type, rather than the type of the object.\n", | |
586 | " \n", |
|
586 | " \n", | |
587 | " Parameters\n", |
|
587 | " Parameters\n", | |
588 | " ----------\n", |
|
588 | " ----------\n", | |
589 | " type_module : str\n", |
|
589 | " type_module : str\n", | |
590 | " The full dotted name of the module the type is defined in, like\n", |
|
590 | " The full dotted name of the module the type is defined in, like\n", | |
591 | " ``numpy``.\n", |
|
591 | " ``numpy``.\n", | |
592 | " type_name : str\n", |
|
592 | " type_name : str\n", | |
593 | " The name of the type (the class name), like ``dtype``\n", |
|
593 | " The name of the type (the class name), like ``dtype``\n", | |
594 | " func : callable\n", |
|
594 | " func : callable\n", | |
595 | " A callable for computing the format data.\n", |
|
595 | " A callable for computing the format data.\n", | |
596 | " `func` will be called with the object to be formatted,\n", |
|
596 | " `func` will be called with the object to be formatted,\n", | |
597 | " and will return the raw data in this formatter's format.\n", |
|
597 | " and will return the raw data in this formatter's format.\n", | |
598 | " Subclasses may use a different call signature for the\n", |
|
598 | " Subclasses may use a different call signature for the\n", | |
599 | " `func` argument.\n", |
|
599 | " `func` argument.\n", | |
600 | " \n", |
|
600 | " \n", | |
601 | " If `func` is None or unspecified, there will be no change,\n", |
|
601 | " If `func` is None or unspecified, there will be no change,\n", | |
602 | " only returning the current value.\n", |
|
602 | " only returning the current value.\n", | |
603 | " \n", |
|
603 | " \n", | |
604 | " Returns\n", |
|
604 | " Returns\n", | |
605 | " -------\n", |
|
605 | " -------\n", | |
606 | " oldfunc : callable\n", |
|
606 | " oldfunc : callable\n", | |
607 | " The currently registered callable.\n", |
|
607 | " The currently registered callable.\n", | |
608 | " If you are registering a new formatter,\n", |
|
608 | " If you are registering a new formatter,\n", | |
609 | " this will be the previous value (to enable restoring later).\n", |
|
609 | " this will be the previous value (to enable restoring later).\n", | |
610 | "\n" |
|
610 | "\n" | |
611 | ] |
|
611 | ] | |
612 | } |
|
612 | } | |
613 | ], |
|
613 | ], | |
614 |
"prompt_number": |
|
614 | "prompt_number": 16 | |
615 | }, |
|
615 | }, | |
616 | { |
|
616 | { | |
617 | "cell_type": "markdown", |
|
617 | "cell_type": "markdown", | |
618 | "metadata": {}, |
|
618 | "metadata": {}, | |
619 | "source": [ |
|
619 | "source": [ | |
620 | "In this case, we will use `for_type_by_name` to register `poly_to_latex` as the display function for the `Polynomial` type:" |
|
620 | "In this case, we will use `for_type_by_name` to register `poly_to_latex` as the display function for the `Polynomial` type:" | |
621 | ] |
|
621 | ] | |
622 | }, |
|
622 | }, | |
623 | { |
|
623 | { | |
624 | "cell_type": "code", |
|
624 | "cell_type": "code", | |
625 | "collapsed": false, |
|
625 | "collapsed": false, | |
626 | "input": [ |
|
626 | "input": [ | |
627 |
"latex_f |
|
627 | "latex_f.for_type_by_name('numpy.polynomial.polynomial',\n", | |
628 | " 'Polynomial', poly_to_latex)" |
|
628 | " 'Polynomial', poly_to_latex)" | |
629 | ], |
|
629 | ], | |
630 | "language": "python", |
|
630 | "language": "python", | |
631 | "metadata": {}, |
|
631 | "metadata": {}, | |
632 | "outputs": [], |
|
632 | "outputs": [], | |
633 |
"prompt_number": |
|
633 | "prompt_number": 18 | |
634 | }, |
|
634 | }, | |
635 | { |
|
635 | { | |
636 | "cell_type": "markdown", |
|
636 | "cell_type": "markdown", | |
637 | "metadata": {}, |
|
637 | "metadata": {}, | |
638 | "source": [ |
|
638 | "source": [ | |
639 | "Once the custom display function has been registered, all NumPy `Polynomial` instances will be represented by their LaTeX form instead:" |
|
639 | "Once the custom display function has been registered, all NumPy `Polynomial` instances will be represented by their LaTeX form instead:" | |
640 | ] |
|
640 | ] | |
641 | }, |
|
641 | }, | |
642 | { |
|
642 | { | |
643 | "cell_type": "code", |
|
643 | "cell_type": "code", | |
644 | "collapsed": false, |
|
644 | "collapsed": false, | |
645 | "input": [ |
|
645 | "input": [ | |
646 | "p" |
|
646 | "p" | |
647 | ], |
|
647 | ], | |
648 | "language": "python", |
|
648 | "language": "python", | |
649 | "metadata": {}, |
|
649 | "metadata": {}, | |
650 | "outputs": [ |
|
650 | "outputs": [ | |
651 | { |
|
651 | { | |
652 | "latex": [ |
|
652 | "latex": [ | |
653 | "$P(x)=1+2 x+3 x^2$, $x \\in [-10,\\ 10]$" |
|
653 | "$P(x)=1+2 x+3 x^2$, $x \\in [-10,\\ 10]$" | |
654 | ], |
|
654 | ], | |
655 | "metadata": {}, |
|
655 | "metadata": {}, | |
656 | "output_type": "pyout", |
|
656 | "output_type": "pyout", | |
657 |
"prompt_number": |
|
657 | "prompt_number": 19, | |
658 | "text": [ |
|
658 | "text": [ | |
659 | "Polynomial([ 1., 2., 3.], [-10., 10.], [-1., 1.])" |
|
659 | "Polynomial([ 1., 2., 3.], [-10., 10.], [-1., 1.])" | |
660 | ] |
|
660 | ] | |
661 | } |
|
661 | } | |
662 | ], |
|
662 | ], | |
663 |
"prompt_number": |
|
663 | "prompt_number": 19 | |
664 | }, |
|
664 | }, | |
665 | { |
|
665 | { | |
666 | "cell_type": "code", |
|
666 | "cell_type": "code", | |
667 | "collapsed": false, |
|
667 | "collapsed": false, | |
668 | "input": [ |
|
668 | "input": [ | |
669 | "p2 = np.polynomial.Polynomial([-20, 71, -15, 1])\n", |
|
669 | "p2 = np.polynomial.Polynomial([-20, 71, -15, 1])\n", | |
670 | "p2" |
|
670 | "p2" | |
671 | ], |
|
671 | ], | |
672 | "language": "python", |
|
672 | "language": "python", | |
673 | "metadata": {}, |
|
673 | "metadata": {}, | |
674 | "outputs": [ |
|
674 | "outputs": [ | |
675 | { |
|
675 | { | |
676 | "latex": [ |
|
676 | "latex": [ | |
677 | "$P(x)=-20+71 x+-15 x^2+x^3$, $x \\in [-1,\\ 1]$" |
|
677 | "$P(x)=-20+71 x+-15 x^2+x^3$, $x \\in [-1,\\ 1]$" | |
678 | ], |
|
678 | ], | |
679 | "metadata": {}, |
|
679 | "metadata": {}, | |
680 | "output_type": "pyout", |
|
680 | "output_type": "pyout", | |
681 |
"prompt_number": |
|
681 | "prompt_number": 20, | |
682 | "text": [ |
|
682 | "text": [ | |
683 | "Polynomial([-20., 71., -15., 1.], [-1., 1.], [-1., 1.])" |
|
683 | "Polynomial([-20., 71., -15., 1.], [-1., 1.], [-1., 1.])" | |
684 | ] |
|
684 | ] | |
685 | } |
|
685 | } | |
686 | ], |
|
686 | ], | |
687 |
"prompt_number": |
|
687 | "prompt_number": 20 | |
688 | }, |
|
688 | }, | |
689 | { |
|
689 | { | |
690 | "cell_type": "heading", |
|
690 | "cell_type": "heading", | |
691 | "level": 2, |
|
691 | "level": 2, | |
692 | "metadata": {}, |
|
692 | "metadata": {}, | |
693 | "source": [ |
|
693 | "source": [ | |
694 | "More complex display with `_ipython_display_`" |
|
694 | "More complex display with `_ipython_display_`" | |
695 | ] |
|
695 | ] | |
696 | }, |
|
696 | }, | |
697 | { |
|
697 | { | |
698 | "cell_type": "markdown", |
|
698 | "cell_type": "markdown", | |
699 | "metadata": {}, |
|
699 | "metadata": {}, | |
700 | "source": [ |
|
700 | "source": [ | |
701 | "Rich output special methods and functions can only display one object or MIME type at a time. Sometimes this is not enough if you want to display multiple objects or MIME types at once. An example of this would be to use an HTML representation to put some HTML elements in the DOM and then use a JavaScript representation to add events to those elements.\n", |
|
701 | "Rich output special methods and functions can only display one object or MIME type at a time. Sometimes this is not enough if you want to display multiple objects or MIME types at once. An example of this would be to use an HTML representation to put some HTML elements in the DOM and then use a JavaScript representation to add events to those elements.\n", | |
702 | "\n", |
|
702 | "\n", | |
703 | "**IPython 2.0** recognizes another display method, `_ipython_display_`, which allows your objects to take complete control of displaying themselves. If this method is defined, IPython will call it, and make no effort to display the object using the above described `_repr_*_` methods for custom display functions. It's a way for you to say \"Back off, IPython, I can display this myself.\" Most importantly, your `_ipython_display_` method can make multiple calls to the top-level `display` functions to accomplish its goals.\n", |
|
703 | "**IPython 2.0** recognizes another display method, `_ipython_display_`, which allows your objects to take complete control of displaying themselves. If this method is defined, IPython will call it, and make no effort to display the object using the above described `_repr_*_` methods for custom display functions. It's a way for you to say \"Back off, IPython, I can display this myself.\" Most importantly, your `_ipython_display_` method can make multiple calls to the top-level `display` functions to accomplish its goals.\n", | |
704 | "\n", |
|
704 | "\n", | |
705 | "Here is an object that uses `display_html` and `display_javascript` to make a plot using the [Flot](http://www.flotcharts.org/) JavaScript plotting library:" |
|
705 | "Here is an object that uses `display_html` and `display_javascript` to make a plot using the [Flot](http://www.flotcharts.org/) JavaScript plotting library:" | |
706 | ] |
|
706 | ] | |
707 | }, |
|
707 | }, | |
708 | { |
|
708 | { | |
709 | "cell_type": "code", |
|
709 | "cell_type": "code", | |
710 | "collapsed": false, |
|
710 | "collapsed": false, | |
711 | "input": [ |
|
711 | "input": [ | |
712 | "import json\n", |
|
712 | "import json\n", | |
713 | "import uuid\n", |
|
713 | "import uuid\n", | |
714 | "from IPython.display import display_javascript, display_html, display\n", |
|
714 | "from IPython.display import display_javascript, display_html, display\n", | |
715 | "\n", |
|
715 | "\n", | |
716 | "class FlotPlot(object):\n", |
|
716 | "class FlotPlot(object):\n", | |
717 | " def __init__(self, x, y):\n", |
|
717 | " def __init__(self, x, y):\n", | |
718 | " self.x = x\n", |
|
718 | " self.x = x\n", | |
719 | " self.y = y\n", |
|
719 | " self.y = y\n", | |
720 | " self.uuid = str(uuid.uuid4())\n", |
|
720 | " self.uuid = str(uuid.uuid4())\n", | |
721 | " \n", |
|
721 | " \n", | |
722 | " def _ipython_display_(self):\n", |
|
722 | " def _ipython_display_(self):\n", | |
723 | " json_data = json.dumps(zip(self.x, self.y))\n", |
|
723 | " json_data = json.dumps(zip(self.x, self.y))\n", | |
724 | " display_html('<div id=\"{}\" style=\"height: 300px; width:80%;\"></div>'.format(self.uuid),\n", |
|
724 | " display_html('<div id=\"{}\" style=\"height: 300px; width:80%;\"></div>'.format(self.uuid),\n", | |
725 | " raw=True\n", |
|
725 | " raw=True\n", | |
726 | " )\n", |
|
726 | " )\n", | |
727 | " display_javascript(\"\"\"\n", |
|
727 | " display_javascript(\"\"\"\n", | |
728 | " require([\"//cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.min.js\"], function() {\n", |
|
728 | " require([\"//cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.min.js\"], function() {\n", | |
729 | " var line = JSON.parse(\"%s\");\n", |
|
729 | " var line = JSON.parse(\"%s\");\n", | |
730 | " console.log(line);\n", |
|
730 | " console.log(line);\n", | |
731 | " $.plot(\"#%s\", [line]);\n", |
|
731 | " $.plot(\"#%s\", [line]);\n", | |
732 | " });\n", |
|
732 | " });\n", | |
733 | " \"\"\" % (json_data, self.uuid), raw=True)\n" |
|
733 | " \"\"\" % (json_data, self.uuid), raw=True)\n" | |
734 | ], |
|
734 | ], | |
735 | "language": "python", |
|
735 | "language": "python", | |
736 | "metadata": {}, |
|
736 | "metadata": {}, | |
737 | "outputs": [], |
|
737 | "outputs": [], | |
738 |
"prompt_number": |
|
738 | "prompt_number": 21 | |
739 | }, |
|
739 | }, | |
740 | { |
|
740 | { | |
741 | "cell_type": "code", |
|
741 | "cell_type": "code", | |
742 | "collapsed": false, |
|
742 | "collapsed": false, | |
743 | "input": [ |
|
743 | "input": [ | |
744 | "import numpy as np\n", |
|
744 | "import numpy as np\n", | |
745 | "x = np.linspace(0,10)\n", |
|
745 | "x = np.linspace(0,10)\n", | |
746 | "y = np.sin(x)\n", |
|
746 | "y = np.sin(x)\n", | |
747 | "FlotPlot(x, np.sin(x))" |
|
747 | "FlotPlot(x, np.sin(x))" | |
748 | ], |
|
748 | ], | |
749 | "language": "python", |
|
749 | "language": "python", | |
750 | "metadata": {}, |
|
750 | "metadata": {}, | |
751 | "outputs": [ |
|
751 | "outputs": [ | |
752 | { |
|
752 | { | |
753 | "html": [ |
|
753 | "html": [ | |
754 |
"<div id=\" |
|
754 | "<div id=\"e75b8189-92cb-4cbb-9996-bb8ad5ff1b4e\" style=\"height: 300px; width:80%;\"></div>" | |
755 | ], |
|
755 | ], | |
756 | "metadata": {}, |
|
756 | "metadata": {}, | |
757 | "output_type": "display_data" |
|
757 | "output_type": "display_data" | |
758 | }, |
|
758 | }, | |
759 | { |
|
759 | { | |
760 | "javascript": [ |
|
760 | "javascript": [ | |
761 | "\n", |
|
761 | "\n", | |
762 | " require([\"//cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.min.js\"], function() {\n", |
|
762 | " require([\"//cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.min.js\"], function() {\n", | |
763 | " var line = JSON.parse(\"[[0.0, 0.0], [0.20408163265306123, 0.20266793654820095], [0.40816326530612246, 0.39692414892492234], [0.61224489795918369, 0.57470604121617908], [0.81632653061224492, 0.72863478346935029], [1.0204081632653061, 0.85232156971961837], [1.2244897959183674, 0.94063278511248671], [1.4285714285714286, 0.98990307637212394], [1.6326530612244898, 0.99808748213471832], [1.8367346938775511, 0.96484630898376322], [2.0408163265306123, 0.89155923041100371], [2.2448979591836737, 0.7812680235262639], [2.4489795918367347, 0.63855032022660208], [2.6530612244897958, 0.46932961277720098], [2.8571428571428572, 0.28062939951435684], [3.0612244897959187, 0.080281674842813497], [3.2653061224489797, -0.12339813736217871], [3.4693877551020407, -0.32195631507261868], [3.6734693877551021, -0.50715170948451438], [3.8775510204081636, -0.67129779355193209], [4.0816326530612246, -0.80758169096833643], [4.2857142857142856, -0.91034694431078278], [4.4897959183673475, -0.97532828606704558], [4.6938775510204085, -0.99982866838408957], [4.8979591836734695, -0.98283120392563061], [5.1020408163265305, -0.92504137173820289], [5.3061224489795915, -0.82885773637304272], [5.5102040816326534, -0.69827239556539955], [5.7142857142857144, -0.53870528838615628], [5.9183673469387754, -0.35677924089893803], [6.1224489795918373, -0.16004508604325057], [6.3265306122448983, 0.043331733368683463], [6.5306122448979593, 0.24491007101197931], [6.7346938775510203, 0.43632342647181932], [6.9387755102040813, 0.6096271964908323], [7.1428571428571432, 0.75762841539272019], [7.3469387755102042, 0.87418429881973347], [7.5510204081632653, 0.95445719973875187], [7.7551020408163271, 0.99511539477766364], [7.9591836734693882, 0.99447136726361685], [8.1632653061224492, 0.95255184753146038], [8.3673469387755102, 0.87109670348232071], [8.5714285714285712, 0.75348672743963763], [8.7755102040816322, 0.60460331650615429], [8.979591836734695, 0.43062587038273736], [9.183673469387756, 0.23877531564403087], [9.387755102040817, 0.037014401485062368], [9.591836734693878, -0.16628279384875641], [9.795918367346939, -0.36267842882654883], [10.0, -0.54402111088936989]]\");\n", |
|
763 | " var line = JSON.parse(\"[[0.0, 0.0], [0.20408163265306123, 0.20266793654820095], [0.40816326530612246, 0.39692414892492234], [0.61224489795918369, 0.57470604121617908], [0.81632653061224492, 0.72863478346935029], [1.0204081632653061, 0.85232156971961837], [1.2244897959183674, 0.94063278511248671], [1.4285714285714286, 0.98990307637212394], [1.6326530612244898, 0.99808748213471832], [1.8367346938775511, 0.96484630898376322], [2.0408163265306123, 0.89155923041100371], [2.2448979591836737, 0.7812680235262639], [2.4489795918367347, 0.63855032022660208], [2.6530612244897958, 0.46932961277720098], [2.8571428571428572, 0.28062939951435684], [3.0612244897959187, 0.080281674842813497], [3.2653061224489797, -0.12339813736217871], [3.4693877551020407, -0.32195631507261868], [3.6734693877551021, -0.50715170948451438], [3.8775510204081636, -0.67129779355193209], [4.0816326530612246, -0.80758169096833643], [4.2857142857142856, -0.91034694431078278], [4.4897959183673475, -0.97532828606704558], [4.6938775510204085, -0.99982866838408957], [4.8979591836734695, -0.98283120392563061], [5.1020408163265305, -0.92504137173820289], [5.3061224489795915, -0.82885773637304272], [5.5102040816326534, -0.69827239556539955], [5.7142857142857144, -0.53870528838615628], [5.9183673469387754, -0.35677924089893803], [6.1224489795918373, -0.16004508604325057], [6.3265306122448983, 0.043331733368683463], [6.5306122448979593, 0.24491007101197931], [6.7346938775510203, 0.43632342647181932], [6.9387755102040813, 0.6096271964908323], [7.1428571428571432, 0.75762841539272019], [7.3469387755102042, 0.87418429881973347], [7.5510204081632653, 0.95445719973875187], [7.7551020408163271, 0.99511539477766364], [7.9591836734693882, 0.99447136726361685], [8.1632653061224492, 0.95255184753146038], [8.3673469387755102, 0.87109670348232071], [8.5714285714285712, 0.75348672743963763], [8.7755102040816322, 0.60460331650615429], [8.979591836734695, 0.43062587038273736], [9.183673469387756, 0.23877531564403087], [9.387755102040817, 0.037014401485062368], [9.591836734693878, -0.16628279384875641], [9.795918367346939, -0.36267842882654883], [10.0, -0.54402111088936989]]\");\n", | |
764 | " console.log(line);\n", |
|
764 | " console.log(line);\n", | |
765 |
" $.plot(\"# |
|
765 | " $.plot(\"#e75b8189-92cb-4cbb-9996-bb8ad5ff1b4e\", [line]);\n", | |
766 | " });\n", |
|
766 | " });\n", | |
767 | " " |
|
767 | " " | |
768 | ], |
|
768 | ], | |
769 | "metadata": {}, |
|
769 | "metadata": {}, | |
770 | "output_type": "display_data" |
|
770 | "output_type": "display_data" | |
771 | } |
|
771 | } | |
772 | ], |
|
772 | ], | |
773 |
"prompt_number": |
|
773 | "prompt_number": 22 | |
774 | }, |
|
774 | }, | |
775 | { |
|
775 | { | |
776 | "cell_type": "code", |
|
776 | "cell_type": "code", | |
777 | "collapsed": false, |
|
777 | "collapsed": false, | |
778 | "input": [], |
|
778 | "input": [], | |
779 | "language": "python", |
|
779 | "language": "python", | |
780 | "metadata": {}, |
|
780 | "metadata": {}, | |
781 | "outputs": [] |
|
781 | "outputs": [] | |
782 | } |
|
782 | } | |
783 | ], |
|
783 | ], | |
784 | "metadata": {} |
|
784 | "metadata": {} | |
785 | } |
|
785 | } | |
786 | ] |
|
786 | ] | |
787 | } No newline at end of file |
|
787 | } |
@@ -1,172 +1,172 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 | "name": "", |
|
3 | "name": "", | |
4 | "signature": "sha256:f561491f848b5e0a18b0e57b033eea2a2de866c707f2be5d565ff091e5735bab" |
|
4 | "signature": "sha256:ee769d05a7e195e4b8546ef9a866ef03e59bff2f0fcba499d168c06b516aa79a" | |
5 | }, |
|
5 | }, | |
6 | "nbformat": 3, |
|
6 | "nbformat": 3, | |
7 | "nbformat_minor": 0, |
|
7 | "nbformat_minor": 0, | |
8 | "worksheets": [ |
|
8 | "worksheets": [ | |
9 | { |
|
9 | { | |
10 | "cells": [ |
|
10 | "cells": [ | |
11 | { |
|
11 | { | |
12 | "cell_type": "markdown", |
|
12 | "cell_type": "markdown", | |
13 | "metadata": {}, |
|
13 | "metadata": {}, | |
14 | "source": [ |
|
14 | "source": [ | |
15 | "<img src=\"../images/ipython_logo.png\">" |
|
15 | "<img src=\"../images/ipython_logo.png\">" | |
16 | ] |
|
16 | ] | |
17 | }, |
|
17 | }, | |
18 | { |
|
18 | { | |
19 | "cell_type": "markdown", |
|
19 | "cell_type": "markdown", | |
20 | "metadata": {}, |
|
20 | "metadata": {}, | |
21 | "source": [ |
|
21 | "source": [ | |
22 | "Back to the main [Index](../Index.ipynb)" |
|
22 | "Back to the main [Index](../Index.ipynb)" | |
23 | ] |
|
23 | ] | |
24 | }, |
|
24 | }, | |
25 | { |
|
25 | { | |
26 | "cell_type": "heading", |
|
26 | "cell_type": "heading", | |
27 | "level": 1, |
|
27 | "level": 1, | |
28 | "metadata": {}, |
|
28 | "metadata": {}, | |
29 | "source": [ |
|
29 | "source": [ | |
30 | "IPython Kernel" |
|
30 | "IPython Kernel" | |
31 | ] |
|
31 | ] | |
32 | }, |
|
32 | }, | |
33 | { |
|
33 | { | |
34 | "cell_type": "markdown", |
|
34 | "cell_type": "markdown", | |
35 | "metadata": {}, |
|
35 | "metadata": {}, | |
36 | "source": [ |
|
36 | "source": [ | |
37 | "IPython provides extensions to the Python programming language that make working interactively convenient and efficient. These extensions are implemented in the IPython Kernel and are available in all of the IPython Frontends (Notebook, Terminal, Console and Qt Console) when running this kernel." |
|
37 | "IPython provides extensions to the Python programming language that make working interactively convenient and efficient. These extensions are implemented in the IPython Kernel and are available in all of the IPython Frontends (Notebook, Terminal, Console and Qt Console) when running this kernel." | |
38 | ] |
|
38 | ] | |
39 | }, |
|
39 | }, | |
40 | { |
|
40 | { | |
41 | "cell_type": "heading", |
|
41 | "cell_type": "heading", | |
42 | "level": 2, |
|
42 | "level": 2, | |
43 | "metadata": {}, |
|
43 | "metadata": {}, | |
44 | "source": [ |
|
44 | "source": [ | |
45 | "Tutorials" |
|
45 | "Tutorials" | |
46 | ] |
|
46 | ] | |
47 | }, |
|
47 | }, | |
48 | { |
|
48 | { | |
49 | "cell_type": "markdown", |
|
49 | "cell_type": "markdown", | |
50 | "metadata": {}, |
|
50 | "metadata": {}, | |
51 | "source": [ |
|
51 | "source": [ | |
52 | "* [Cell Magics](Cell Magics.ipynb)\n", |
|
52 | "* [Cell Magics](Cell Magics.ipynb)\n", | |
53 | "* [Script Magics](Script Magics.ipynb)\n", |
|
53 | "* [Script Magics](Script Magics.ipynb)\n", | |
54 |
"* [ |
|
54 | "* [Rich Output](Rich Output.ipynb)\n", | |
55 | "* [Custom Display Logic](Custom Display Logic.ipynb)\n", |
|
55 | "* [Custom Display Logic](Custom Display Logic.ipynb)\n", | |
56 | "* [Plotting in the Notebook](Plotting in the Notebook.ipynb)\n", |
|
56 | "* [Plotting in the Notebook](Plotting in the Notebook.ipynb)\n", | |
57 | "* [Capturing Output](Capturing Output.ipynb)" |
|
57 | "* [Capturing Output](Capturing Output.ipynb)" | |
58 | ] |
|
58 | ] | |
59 | }, |
|
59 | }, | |
60 | { |
|
60 | { | |
61 | "cell_type": "heading", |
|
61 | "cell_type": "heading", | |
62 | "level": 2, |
|
62 | "level": 2, | |
63 | "metadata": {}, |
|
63 | "metadata": {}, | |
64 | "source": [ |
|
64 | "source": [ | |
65 | "Examples" |
|
65 | "Examples" | |
66 | ] |
|
66 | ] | |
67 | }, |
|
67 | }, | |
68 | { |
|
68 | { | |
69 | "cell_type": "markdown", |
|
69 | "cell_type": "markdown", | |
70 | "metadata": {}, |
|
70 | "metadata": {}, | |
71 | "source": [ |
|
71 | "source": [ | |
72 | "* [Background Jobs](Background Jobs.ipynb)\n", |
|
72 | "* [Background Jobs](Background Jobs.ipynb)\n", | |
73 | "* [Trapezoid Rule](Trapezoid Rule.ipynb)\n", |
|
73 | "* [Trapezoid Rule](Trapezoid Rule.ipynb)\n", | |
74 | "* [SymPy](SymPy.ipynb)\n", |
|
74 | "* [SymPy](SymPy.ipynb)\n", | |
75 | "* [Raw Input in the Notebook](Raw Input in the Notebook.ipynb)" |
|
75 | "* [Raw Input in the Notebook](Raw Input in the Notebook.ipynb)" | |
76 | ] |
|
76 | ] | |
77 | }, |
|
77 | }, | |
78 | { |
|
78 | { | |
79 | "cell_type": "heading", |
|
79 | "cell_type": "heading", | |
80 | "level": 2, |
|
80 | "level": 2, | |
81 | "metadata": {}, |
|
81 | "metadata": {}, | |
82 | "source": [ |
|
82 | "source": [ | |
83 | "Non-notebook examples" |
|
83 | "Non-notebook examples" | |
84 | ] |
|
84 | ] | |
85 | }, |
|
85 | }, | |
86 | { |
|
86 | { | |
87 | "cell_type": "markdown", |
|
87 | "cell_type": "markdown", | |
88 | "metadata": {}, |
|
88 | "metadata": {}, | |
89 | "source": [ |
|
89 | "source": [ | |
90 | "This directory also contains examples that are regular Python (`.py`) files." |
|
90 | "This directory also contains examples that are regular Python (`.py`) files." | |
91 | ] |
|
91 | ] | |
92 | }, |
|
92 | }, | |
93 | { |
|
93 | { | |
94 | "cell_type": "code", |
|
94 | "cell_type": "code", | |
95 | "collapsed": false, |
|
95 | "collapsed": false, | |
96 | "input": [ |
|
96 | "input": [ | |
97 | "%run ../utils/list_pyfiles.ipy" |
|
97 | "%run ../utils/list_pyfiles.ipy" | |
98 | ], |
|
98 | ], | |
99 | "language": "python", |
|
99 | "language": "python", | |
100 | "metadata": {}, |
|
100 | "metadata": {}, | |
101 | "outputs": [ |
|
101 | "outputs": [ | |
102 | { |
|
102 | { | |
103 | "html": [ |
|
103 | "html": [ | |
104 | "<a href='example-demo.py' target='_blank'>example-demo.py</a><br>" |
|
104 | "<a href='example-demo.py' target='_blank'>example-demo.py</a><br>" | |
105 | ], |
|
105 | ], | |
106 | "metadata": {}, |
|
106 | "metadata": {}, | |
107 | "output_type": "display_data", |
|
107 | "output_type": "display_data", | |
108 | "text": [ |
|
108 | "text": [ | |
109 | "/Users/bgranger/Documents/Computing/IPython/code/ipython/examples/IPython Kernel/example-demo.py" |
|
109 | "/Users/bgranger/Documents/Computing/IPython/code/ipython/examples/IPython Kernel/example-demo.py" | |
110 | ] |
|
110 | ] | |
111 | }, |
|
111 | }, | |
112 | { |
|
112 | { | |
113 | "html": [ |
|
113 | "html": [ | |
114 | "<a href='ipython-get-history.py' target='_blank'>ipython-get-history.py</a><br>" |
|
114 | "<a href='ipython-get-history.py' target='_blank'>ipython-get-history.py</a><br>" | |
115 | ], |
|
115 | ], | |
116 | "metadata": {}, |
|
116 | "metadata": {}, | |
117 | "output_type": "display_data", |
|
117 | "output_type": "display_data", | |
118 | "text": [ |
|
118 | "text": [ | |
119 | "/Users/bgranger/Documents/Computing/IPython/code/ipython/examples/IPython Kernel/ipython-get-history.py" |
|
119 | "/Users/bgranger/Documents/Computing/IPython/code/ipython/examples/IPython Kernel/ipython-get-history.py" | |
120 | ] |
|
120 | ] | |
121 | } |
|
121 | } | |
122 | ], |
|
122 | ], | |
123 | "prompt_number": 1 |
|
123 | "prompt_number": 1 | |
124 | }, |
|
124 | }, | |
125 | { |
|
125 | { | |
126 | "cell_type": "markdown", |
|
126 | "cell_type": "markdown", | |
127 | "metadata": {}, |
|
127 | "metadata": {}, | |
128 | "source": [ |
|
128 | "source": [ | |
129 | "There are also a set of examples that show how to integrate IPython with different GUI event loops:" |
|
129 | "There are also a set of examples that show how to integrate IPython with different GUI event loops:" | |
130 | ] |
|
130 | ] | |
131 | }, |
|
131 | }, | |
132 | { |
|
132 | { | |
133 | "cell_type": "code", |
|
133 | "cell_type": "code", | |
134 | "collapsed": false, |
|
134 | "collapsed": false, | |
135 | "input": [ |
|
135 | "input": [ | |
136 | "%run ../utils/list_subdirs.ipy" |
|
136 | "%run ../utils/list_subdirs.ipy" | |
137 | ], |
|
137 | ], | |
138 | "language": "python", |
|
138 | "language": "python", | |
139 | "metadata": {}, |
|
139 | "metadata": {}, | |
140 | "outputs": [ |
|
140 | "outputs": [ | |
141 | { |
|
141 | { | |
142 | "html": [ |
|
142 | "html": [ | |
143 | "gui/<br>\n", |
|
143 | "gui/<br>\n", | |
144 | " <a href='gui/gui-glut.py' target='_blank'>gui-glut.py</a><br>\n", |
|
144 | " <a href='gui/gui-glut.py' target='_blank'>gui-glut.py</a><br>\n", | |
145 | " <a href='gui/gui-gtk.py' target='_blank'>gui-gtk.py</a><br>\n", |
|
145 | " <a href='gui/gui-gtk.py' target='_blank'>gui-gtk.py</a><br>\n", | |
146 | " <a href='gui/gui-gtk3.py' target='_blank'>gui-gtk3.py</a><br>\n", |
|
146 | " <a href='gui/gui-gtk3.py' target='_blank'>gui-gtk3.py</a><br>\n", | |
147 | " <a href='gui/gui-pyglet.py' target='_blank'>gui-pyglet.py</a><br>\n", |
|
147 | " <a href='gui/gui-pyglet.py' target='_blank'>gui-pyglet.py</a><br>\n", | |
148 | " <a href='gui/gui-qt.py' target='_blank'>gui-qt.py</a><br>\n", |
|
148 | " <a href='gui/gui-qt.py' target='_blank'>gui-qt.py</a><br>\n", | |
149 | " <a href='gui/gui-tk.py' target='_blank'>gui-tk.py</a><br>\n", |
|
149 | " <a href='gui/gui-tk.py' target='_blank'>gui-tk.py</a><br>\n", | |
150 | " <a href='gui/gui-wx.py' target='_blank'>gui-wx.py</a><br>" |
|
150 | " <a href='gui/gui-wx.py' target='_blank'>gui-wx.py</a><br>" | |
151 | ], |
|
151 | ], | |
152 | "metadata": {}, |
|
152 | "metadata": {}, | |
153 | "output_type": "display_data", |
|
153 | "output_type": "display_data", | |
154 | "text": [ |
|
154 | "text": [ | |
155 | "gui/\n", |
|
155 | "gui/\n", | |
156 | " gui-glut.py\n", |
|
156 | " gui-glut.py\n", | |
157 | " gui-gtk.py\n", |
|
157 | " gui-gtk.py\n", | |
158 | " gui-gtk3.py\n", |
|
158 | " gui-gtk3.py\n", | |
159 | " gui-pyglet.py\n", |
|
159 | " gui-pyglet.py\n", | |
160 | " gui-qt.py\n", |
|
160 | " gui-qt.py\n", | |
161 | " gui-tk.py\n", |
|
161 | " gui-tk.py\n", | |
162 | " gui-wx.py" |
|
162 | " gui-wx.py" | |
163 | ] |
|
163 | ] | |
164 | } |
|
164 | } | |
165 | ], |
|
165 | ], | |
166 | "prompt_number": 2 |
|
166 | "prompt_number": 2 | |
167 | } |
|
167 | } | |
168 | ], |
|
168 | ], | |
169 | "metadata": {} |
|
169 | "metadata": {} | |
170 | } |
|
170 | } | |
171 | ] |
|
171 | ] | |
172 | } No newline at end of file |
|
172 | } |
General Comments 0
You need to be logged in to leave comments.
Login now