{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# An introduction to the IPython notebook\n", "\n", "The IPython web notebook is a frontend that allows for new modes\n", "of interaction with IPython: this web-based interface allows you to execute Python and IPython\n", "commands in each input cell just like you would at the IPython terminal, but you can\n", "also save an entire session as a document in a file with the `.ipynb` extension.\n", "\n", "The document you are reading now is precisely an example of one such notebook, and we will show you\n", "here how to best use this new interface.\n", "\n", "The first thing to understand is that a notebook consists of a sequence of 'cells' that can contain \n", "either text (such as this one) or code meant for execution (such as the next one):\n", "\n", "* Text cells can be written using [Markdown syntax](http://daringfireball.net/projects/markdown/syntax) \n", "\n", "* Code cells take IPython input (i.e. Python code, `%magics`, `!system calls`, etc) like IPython at\n", "the terminal or at the Qt Console. The only difference is that in order to execute a cell, you *must*\n", "use `Shift-Enter`, as pressing `Enter` will add a new line of text to the cell. When you type \n", "`Shift-Enter`, the cell content is executed, output displayed and a new cell is created below. Try\n", "it now by putting your cursor on the next cell and typing `Shift-Enter`:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'This is the new IPython notebook'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"This is the new IPython notebook\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can re-execute the same cell over and over as many times as you want. Simply put your\n", "cursor in the cell again, edit at will, and type `Shift-Enter` to execute. \n", "\n", "IPython can execute shell commands, which shall be prefixed with `!`.\n", "For example, in the next cell, try issuing several system commands in-place with `Ctrl-Enter`, such as `pwd` and then `ls`:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "00-abc-ipython.ipynb 04-howto-folding.ipynb\r\n", "00-intro-ROOT.ipynb 05-howto-plot.ipynb\r\n", "00-intro_ipython.ipynb 06-howto-neural-nets.ipynb\r\n", "01-howto-Classifiers.ipynb Dockerfile\r\n", "02-howto-Factory.ipynb config_plotly\r\n", "03-howto-gridsearch.ipynb \u001b[1m\u001b[36mtoy_datasets\u001b[m\u001b[m\r\n" ] } ], "source": [ "!ls" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 24048\r\n", "drwxr-xr-x 15 antares LD\\Domain Users 510 12 окт 16:52 \u001b[1m\u001b[36m.\u001b[m\u001b[m\r\n", "drwxr-xr-x 21 antares LD\\Domain Users 714 28 сен 16:11 \u001b[1m\u001b[36m..\u001b[m\u001b[m\r\n", "drwxr-xr-x 5 antares LD\\Domain Users 170 12 окт 15:00 \u001b[1m\u001b[36m.ipynb_checkpoints\u001b[m\u001b[m\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 20947 4 сен 19:02 00-abc-ipython.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 101562 12 окт 14:58 00-intro-ROOT.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 366615 4 сен 19:02 00-intro_ipython.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 37009 22 авг 22:32 01-howto-Classifiers.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 1048306 22 авг 22:32 02-howto-Factory.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 30378 4 сен 19:02 03-howto-gridsearch.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 115812 22 авг 22:32 04-howto-folding.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 10529639 12 окт 16:52 05-howto-plot.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 33690 22 авг 22:32 06-howto-neural-nets.ipynb\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 146 22 авг 22:32 Dockerfile\r\n", "-rw-r--r-- 1 antares LD\\Domain Users 63 22 авг 22:32 config_plotly\r\n", "drwxr-xr-x 5 antares LD\\Domain Users 170 12 окт 14:56 \u001b[1m\u001b[36mtoy_datasets\u001b[m\u001b[m\r\n" ] } ], "source": [ "!ls -la" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In a cell, you can type anything from a single python expression to an arbitrarily long amount of code \n", "(although for reasons of readability, you are recommended to limit this to a few dozen lines):" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "f(3) = 4\n" ] } ], "source": [ "def f(x):\n", " \"\"\"My function\n", " x : parameter\"\"\"\n", " \n", " return x + 1\n", "\n", "print \"f(3) = \", f(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## User interface\n", "\n", "When you start a new notebook server with `ipython notebook`, your\n", "browser should open into the *Dashboard*, a page listing all notebooks\n", "available in the current directory as well as letting you create new\n", "notebooks. In this page, you can also drag and drop existing `.py` files\n", "over the file list to import them as notebooks (see the manual for \n", "[further details on how these files are \n", "interpreted](http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html)).\n", "\n", "Once you open an existing notebook (like this one) or create a new one,\n", "you are in the main notebook interface, which consists of a main editing\n", "area (where these cells are contained) as well as a collapsible left panel, \n", "a permanent header area at the top, and a pager that rises from the\n", "bottom when needed and can be collapsed again." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Main editing area\n", "\n", "Here, you can move with the arrow keys or using the \n", "scroll bars. The cursor enters code cells immediately, but only selects\n", "text (markdown) cells without entering in them; to enter a text cell,\n", "use `Enter`, and `Shift-Enter` to exit it again (just like to execute a \n", "code cell)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Header bar\n", "\n", "The header area at the top allows you to rename an existing \n", "notebook and open up a short help tooltip. This area also indicates\n", "with a **Busy** mark on the right whenever the kernel is busy executing code." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Header panel\n", "\n", "This panel contains a number of panes that can be\n", "collapsed vertically by clicking on their title bar, and the whole panel\n", "can also be collapsed by clicking on the vertical divider (note that you\n", "can not *drag* the divider, for now you can only click on it).\n", "\n", "The *Notebook* section contains actions that pertain to the whole notebook,\n", "such as downloading the current notebook either in its original format\n", "or as a `.py` script, and printing/exporting it to different markup languages. \n", "\n", "The *Cell* section lets you manipulate individual cells, and the names should \n", "be fairly self-explanatory.\n", "\n", "The *Kernel* section lets you signal the kernel executing your code. \n", "`Interrupt` does the equivalent of hitting `Ctrl-C` at a terminal, and\n", "`Restart` fully kills the kernel process and starts a fresh one. Obviously\n", "this means that all your previous variables are destroyed, but it also\n", "makes it easy to get a fresh kernel in which to re-execute a notebook.\n", "\n", "The *Help* section contains links to the documentation of some projects\n", "closely related to IPython as well as the minimal keybindings you need to\n", "know. But you should use `Esc-h` (or click the `QuickHelp` button at\n", "the top) and learn some of the other keybindings, as it will make your \n", "workflow much more fluid and efficient.\n", "\n", "Please pay attention that there are two modes: `Command mode` and `Edit mode` \n", "(details in the reference: press `Esc-h`). \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The pager at the bottom\n", "\n", "Whenever IPython needs to display additional \n", "information, such as when you type `somefunction?` in a cell, the notebook\n", "opens a pane at the bottom where this information is shown. You can keep\n", "this pager pane open for reference (it doesn't block input in the main area)\n", "or dismiss it by clicking on its divider bar.\n", "\n", "Try by executing the following cell:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "dict??" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tab completion and tooltips\n", "\n", "The notebook uses the same underlying machinery for tab completion that \n", "IPython uses at the terminal, but displays the information differently.\n", "Whey you complete with the `Tab` key, IPython shows a drop list with all\n", "available completions. If you type more characters while this list is open,\n", "IPython automatically eliminates from the list options that don't match the\n", "new characters; once there is only one option left you can hit `Tab` once\n", "more (or `Enter`) to complete. You can also select the completion you\n", "want with the arrow keys or the mouse, and then hit `Enter`.\n", "\n", "In addition, if you hit `Tab` inside of open parentheses, IPython will \n", "search for the docstring of the last object left of the parens and will\n", "display it on a tooltip. For example, type `list(` and you will\n", "see the docstring for the builtin `list` constructor:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Position your cursor after the ( and hit the Tab key:\n", "list()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Display of complex objects\n", "\n", "As the 'tour' notebook shows, the IPython notebook has fairly sophisticated display capabilities. In addition\n", "to the examples there, you can study the `display_protocol` notebook in this same examples folder, to \n", "learn how to customize arbitrary objects (in your own code or external libraries) to display in the notebook\n", "in any way you want, including graphical forms or mathematical expressions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting support\n", "\n", "To turn on inline plotting, you can use `%matplotlib` magic, after executing it the plots will not be shown in a new window (as done usually), but will be shown in notebook:\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "# an alternative is the following code:\n", "# %pylab inline\n", "# which does also many imports from numpy and matplotlib libraries and this is very handy, \n", "# though one shall remember that global imports are evil" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.plot([1, 2, 4, 8, 16])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Other handy features\n", "\n", "IPython allows you upload files on the server and modify any text files on the server. \n", "Revisit Dashboard to check these features. Also, from Dashboard you can start shell sessions, which is good when some configuring on a server-side is needed.\n", "\n", "\n", "However, running IPython locally is very popular option and doesn't require much experience. But the greatest benefit you can get from using IPython on your server. Note, that apart from installing IPython and giving access from network, you should [protect access](https://ipython.org/ipython-doc/3/parallel/parallel_security.html) .\n", "\n", "\n", "## IPython quick reference\n", "\n", "short summary of special commands available will be shown after executing this cell:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%quickref" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## More complete tutorial about IPython:\n", "\n", "http://nbviewer.ipython.org/github/ipython/ipython/blob/3.x/examples/Notebook/Index.ipynb" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.8" } }, "nbformat": 4, "nbformat_minor": 0 }