{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#GLACINDIA Workshop\n", "##Part 4: ~~IPython~~ Jupyter notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nikolay Koldunov\n", "\n", "\n", "koldunovn@gmail.com" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to be productive you need comfortable environment, and this is what ~~IPython~~ Jupyter notebooks provide. This is your \"lab book\", where you can run the code, visualize data and write the text." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Code execution" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I love Python!!!!\n" ] } ], "source": [ "print('I love Python!!!!')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Text (Markdown)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "IPython [website](http://ipython.org/).\n", "\n", "List:\n", "\n", "* [Python on Codeacademy](http://www.codecademy.com/tracks/python)\n", "* [Google's Python Class](https://developers.google.com/edu/python/)\n", "\n", "Code:\n", "\n", " print('hello world')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### $\\LaTeX$ equations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\\int_0^\\infty e^{-x^2} dx=\\frac{\\sqrt{\\pi}}{2}$$\n", "$$\n", "F(x,y)=0 ~~\\mbox{and}~~\n", "\\left| \\begin{array}{ccc}\n", " F''_{xx} & F''_{xy} & F'_x \\\\\n", " F''_{yx} & F''_{yy} & F'_y \\\\\n", " F'_x & F'_y & 0 \n", " \\end{array}\\right| = 0\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Plots" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import matplotlib.pylab as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = [1,2,3,4,5]\n", "plt.plot(x);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [IPython website](http://ipython.org/)\n", "* [Notebook gallery](https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Go to `start` menu\n", "- Find Anaconda 32 folder\n", "- run IPython notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Main IPyhton features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Getting help" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can use question mark in order to get help. To execute cell you have to press *Shift+Enter*" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Question mark after a function will open pager with documentation. Double question mark will show you source code of the function. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "plt.plot?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Press SHIFT+TAB after opening bracket in order to get help for the function (list of arguments, doc string)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "range(" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Magic functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The magic function system provides a series of functions which allow you to\n", "control the behavior of IPython itself, plus a lot of system-type\n", "features." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create some set of numbers using [range](http://docs.python.org/2/library/functions.html#range) command:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "range(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And find out how long does it take to run it with *%timeit* magic function:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 6.03 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 316 ns per loop\n" ] } ], "source": [ "%timeit range(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Print all interactive variables (similar to Matlab function):" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Variable Type Data/Info\n", "------------------------------\n", "plt module es/matplotlib/pylab.pyc'>\n", "x list n=5\n" ] } ], "source": [ "%whos" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }