{ "metadata": { "name": "", "signature": "sha256:9b77454f11c1fa4f4b4e77bf20065d5501170b549311687e3d1bc1a0faf8e1df" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Getting close to your data with Python and JavaScript" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import display, Image, HTML\n", "from talktools import website, nbviewer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Brian E. Granger (@ellisonbg)\n", "\n", "### Physics Professor, Cal Poly\n", "\n", "\n", "\n", "### Core developer, IPython Project\n", "\n", "" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The IPython Project" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "IPython is an open source, interactive computing environment for Python and other languages." ] }, { "cell_type": "code", "collapsed": false, "input": [ "website('http://ipython.org')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Started in 2001 by Fernando Perez, who continues to lead the project from UC Berkeley\n", "* Open source, BSD license" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Funding" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Over the past 13 years, much of IPython has been \"funded\" by volunteer developer time.\n", "* Past funding: NASA, DOD, NIH, Enthought Corporation\n", "* Current funding:\n", "\n", "\n", "\n", "\n", "\n", "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Development team" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* IPython is developed by a talented team of $\\approx15$ core developers and a larger community of $\\approx100$ contributors.\n", "* Through the above funding sources, there are currently 6 full time people working on IPython at UC Berkeley and Cal Poly." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import ipythonproject" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "ipythonproject.core_devs()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "

Fernando Perez

Brian Granger

Min Ragan-Kelley

Thomas Kluyver

Matthias Bussonnier

Jonathan Frederic

Paul Ivanov

Evan Patterson

Damian Avila

Brad Froehle

Zach Sailer

Robert Kern

Jorgen Stenarson

Jonathan March

Kyle Kelley

" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that the **output** of the above Python code is an HTML table with embedded images. IPython generalizes the notion of output to include rich formats: HTML, PNG, JPEG, PDF, JavaScript, LaTeX, etc. This means that any Python object can declare rich representations that will be rendered and saved in the notebook." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The IPython Notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The IPython Notebook is a web-based interactive computing environment that spans the full range of data related activities:\n", "\n", "1. Individual exploration, analysis and visualization\n", "2. Debugging, testing\n", "3. Production runs\n", "4. Parallel computing\n", "5. Collaboration\n", "6. Publication\n", "7. Presentation\n", "8. Teaching/Learning\n", "\n", "How does IPython target these different activities?" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Interactive exploration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The central focus of IPython is the writing and running of code. We try to make this as pleasant as possible:\n", "\n", "* Multiline editing\n", "* Tab completion\n", "* Integrated help\n", "* Syntax highlighting\n", "* System shell access\n", "\n", "Let's download some stock data into a Pandas `DataFrame` and then visualize the time series using Vincent/Vega/d3." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import vincent\n", "import pandas as pd\n", "vincent.initialize_notebook()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas.io.data as web\n", "\n", "all_data = {}\n", "for ticker in ['AAPL', 'GOOG', 'IBM', 'YHOO', 'MSFT']:\n", " all_data[ticker] = web.get_data_yahoo(ticker, '1/1/2010', '1/1/2013')\n", "price = pd.DataFrame({tic: data['Adj Close'] for tic, data in all_data.items()})" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the Notebook `DataFrame` objects are represented as formatted HTML tables:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "price[0:10]" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AAPLGOOGIBMMSFTYHOO
Date
2010-01-04 205.70 626.75 122.62 27.88 17.10
2010-01-05 206.05 623.99 121.14 27.89 17.23
2010-01-06 202.77 608.26 120.35 27.72 17.17
2010-01-07 202.40 594.10 119.94 27.43 16.70
2010-01-08 203.75 602.02 121.14 27.62 16.70
2010-01-11 201.95 601.11 119.87 27.27 16.74
2010-01-12 199.65 590.48 120.83 27.09 16.68
2010-01-13 202.47 587.09 120.57 27.34 16.90
2010-01-14 201.29 589.85 122.49 27.89 17.12
2010-01-15 197.93 580.00 122.00 27.80 16.82
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ " AAPL GOOG IBM MSFT YHOO\n", "Date \n", "2010-01-04 205.70 626.75 122.62 27.88 17.10\n", "2010-01-05 206.05 623.99 121.14 27.89 17.23\n", "2010-01-06 202.77 608.26 120.35 27.72 17.17\n", "2010-01-07 202.40 594.10 119.94 27.43 16.70\n", "2010-01-08 203.75 602.02 121.14 27.62 16.70\n", "2010-01-11 201.95 601.11 119.87 27.27 16.74\n", "2010-01-12 199.65 590.48 120.83 27.09 16.68\n", "2010-01-13 202.47 587.09 120.57 27.34 16.90\n", "2010-01-14 201.29 589.85 122.49 27.89 17.12\n", "2010-01-15 197.93 580.00 122.00 27.80 16.82" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "line = vincent.Line(price[['GOOG', 'AAPL', 'IBM', 'YHOO', 'MSFT']], width=600, height=300)\n", "line.axis_titles(x='Date', y='Price')\n", "line.legend(title='Ticker')\n", "display(line)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Multiple backend languages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Data science is a multi-language activity. R. Python. Julia. Scala. Etc. The IPython architecture is language agnostic.\n", "\n", "Let's fit a linear model in R and visualize the results:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "X = np.array([0,1,2,3,4])\n", "Y = np.array([3,5,4,6,7])\n", "%load_ext rmagic" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `%%R` syntax tells IPython to run the rest of the cell as R code:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%R -i X,Y -o XYcoef\n", "XYlm = lm(Y~X)\n", "XYcoef = coef(XYlm)\n", "print(summary(XYlm))\n", "par(mfrow=c(2,2))\n", "plot(XYlm)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "Call:\n", "lm(formula = Y ~ X)\n", "\n", "Residuals:\n", " 1 2 3 4 5 \n", "-0.2 0.9 -1.0 0.1 0.2 \n", "\n", "Coefficients:\n", " Estimate Std. Error t value Pr(>|t|) \n", "(Intercept) 3.2000 0.6164 5.191 0.0139 *\n", "X 0.9000 0.2517 3.576 0.0374 *\n", "---\n", "Signif. codes: 0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1\n", "\n", "Residual standard error: 0.7958 on 3 degrees of freedom\n", "Multiple R-squared: 0.81,\tAdjusted R-squared: 0.7467 \n", "F-statistic: 12.79 on 1 and 3 DF, p-value: 0.03739\n", "\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nHwT+H3+Bv8VJdwumAAAAAElFTkSuQmCC\n" } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This `%%language` syntax is an IPython specific extension to the Python language. This \"magic command syntax\" allows Python code to call out to a wide range of other languages (Ruby, Bash, Julia, Fortran, Perl, Octave, Matlab, etc.)" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Native kernels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the IPython architecture, the **kernel** is a separate process that runs the user's code and returns the output back to the frontend (Notebook, Terminal, etc.). Kernels talk to frontends using a well documented message protocol (JSON over ZeroMQ and WebSockets). The default kernel that ships with IPython knows how to run Python code. However, there are now kernels in other languages:\n", "\n", "* Julia (https://github.com/JuliaLang/IJulia.jl)\n", "* Ruby (https://github.com/minrk/iruby)\n", "* Haskell (https://github.com/gibiansky/IHaskell)\n", "* Scala (https://github.com/Bridgewater/scala-notebook)\n", "* node.js (https://gist.github.com/Carreau/4279371)\n", "* Go (https://github.com/takluyver/igo)\n", "* R and Matlab are in the works\n", "\n", "By later this year, all users of the IPython Notebook will have the option to choose what type of kernel to use for each Notebook.\n", "\n", "Here is a notebook that runs code in the native Julia kernel:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "website(\"http://nbviewer.ipython.org/url/jdj.mit.edu/~stevenj/IJulia%20Preview.ipynb\")" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Notebook documents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notebook documents are just JSON files stored on your filesystem. These files store *everything* related to a computation:\n", "\n", "* Code\n", "* Output (text, HTML, plots, images, JavaScript)\n", "* Narrative text (Markdown with embedded LaTeX math)\n", "\n", "Notebook documents can be shared:\n", "\n", "* GitHub repos\n", "* Email\n", "* Dropbox\n", "* Internal shared file systems\n", "\n", "Notebook documents can be viewed by anyone on the web through http://nbviewer.ipython.org" ] }, { "cell_type": "code", "collapsed": false, "input": [ "website(\"http://nbviewer.ipython.org\")" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**This allows people to compose and share reproducible stories that involve code and data.**\n", "\n", "Earlier this year, Randall Munroe (xkcd) published a comic about regular expression golf. Peter Norvig from Google wanted to explore some of the algorithms related to this comic and shared his explorations as a notebook on nbviewer:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "website(\"http://nbviewer.ipython.org/url/norvig.com/ipython/xkcd1313.ipynb\")" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }