Skip to content

Instantly share code, notes, and snippets.

/Example.ipynb Secret

Created June 24, 2014 15:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/f8e6d8985d2ea0e4bab1 to your computer and use it in GitHub Desktop.
Save anonymous/f8e6d8985d2ea0e4bab1 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:61ed4ed931e3c8e5e570e7d5f27133e79474d10ae592ba322c919fd21c373177"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# iPython notebooks are a great way to learn and experiment with code\n",
"## The fact that they document your work so well is just a benefit!\n",
"So let's work on a little project together :)\n",
"\n",
"I have a really up-lifting topic we can look at, School Shooting Incidents in the United States"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import os\n",
"import sys\n",
"\n",
"os.listdir('.')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"text": [
"['us_population.csv', 'Example.ipynb', 'school_shootings.csv']"
]
}
],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import gale.fileIO.csvHandlers as csvh\n",
"data, headers = csvh.read_as_list('school_shootings.csv', header=True)\n",
"print data[0]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"['1850', '5']\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"df = pd.read_csv('school_shootings.csv')\n",
"print df.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" Decade Count\n",
"0 1850 5\n",
"1 1860 6\n",
"2 1870 12\n",
"3 1880 16\n",
"4 1890 11\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.plot(x='Decade', y='Count')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"<matplotlib.axes.AxesSubplot at 0x9ecfc6c>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\njoWeiKjA/T8KZ3R8abKYJQAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x9ecf8ac>"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Gross! Let's make that look nicer easily"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from mpltools import style\n",
"style.use('ggplot')\n",
"\n",
"df.plot(x='Decade', y='Count')\n",
"plt.ylabel('Number of School Shooting Incidents')"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"os.listdir('.')"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"uspop = pd.read_csv('us_population.csv')\n",
"uspop.head()"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def pull_year(date_string):\n",
" return int(date_string.split(' ')[-1])\n",
"\n",
"uspop['year'] = uspop.Date.apply(pull_year)\n",
"uspop.head()"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"uspop.plot(x='year', y='National Population')\n",
"plt.ylabel('US Population')\n",
"plt.xlabel('Year')"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## So iPython notebook is great and it documents my work, but sometimes it's easier to use bash commands than just Python\n",
"iPython already recognizes some of the basic bash commands and other shell commands can be run with a '!' before it."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ls"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\u001b[0m\u001b[00mExample.ipynb\u001b[0m \u001b[00mschool_shootings.csv\u001b[0m \u001b[00mus_population.csv\u001b[0m\r\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cd ~/Projects/Fragmented-Care/"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"/home/visitors/adampah/Projects/Fragmented-Care\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ls -la"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"total 40\r\n",
"drwxrwxr-x 6 adampah adampah 4096 May 20 11:38 \u001b[0m\u001b[01;35m.\u001b[0m/\r\n",
"drwxr-xr-x 27 adampah adampah 4096 May 29 11:21 \u001b[01;35m..\u001b[0m/\r\n",
"drwxr-xr-x 5 adampah adampah 4096 May 28 08:24 \u001b[01;35mCode\u001b[0m/\r\n",
"drwxr-xr-x 16 adampah adampah 4096 Jun 9 21:23 \u001b[01;35mData\u001b[0m/\r\n",
"-rw-r--r-- 1 adampah adampah 4096 May 19 15:36 \u001b[00m._.DS_Store\u001b[0m\r\n",
"-rw-r--r-- 1 adampah adampah 6148 May 20 08:53 \u001b[00m.DS_Store\u001b[0m\r\n",
"drwxr-xr-x 4 adampah adampah 4096 May 29 12:00 \u001b[01;35m.hg\u001b[0m/\r\n",
"-rw-r--r-- 1 adampah adampah 31 May 19 15:52 \u001b[00m.hgignore\u001b[0m\r\n",
"drwxrwxr-x 3 adampah adampah 4096 Jun 9 16:34 \u001b[01;35mResults\u001b[0m/\r\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!ping www.google.com"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"PING www.google.com (74.125.225.116) 56(84) bytes of data.\r\n",
"64 bytes from ord08s08-in-f20.1e100.net (74.125.225.116): icmp_req=1 ttl=56 time=1.61 ms\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"64 bytes from ord08s08-in-f20.1e100.net (74.125.225.116): icmp_req=2 ttl=56 time=1.57 ms\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"64 bytes from ord08s08-in-f20.1e100.net (74.125.225.116): icmp_req=3 ttl=56 time=1.57 ms\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"64 bytes from ord08s08-in-f20.1e100.net (74.125.225.116): icmp_req=4 ttl=56 time=1.62 ms\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"64 bytes from ord08s08-in-f20.1e100.net (74.125.225.116): icmp_req=5 ttl=56 time=1.63 ms\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"^C\r\n",
"--- www.google.com ping statistics ---\r\n",
"5 packets transmitted, 5 received, 0% packet loss, time 4003ms\r\n",
"rtt min/avg/max/mdev = 1.571/1.604/1.635/0.044 ms\r\n",
"\r\n"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But sometimes you may want to actually just execute a big block of bash code and we can do that too!"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%bash\n",
"cd $gale\n",
"ls -la"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"total 16\n",
"drwxrwxr-x 4 adampah adampah 4096 Jun 6 15:42 .\n",
"drwxr-xr-x 23 adampah adampah 4096 Jun 2 18:52 ..\n",
"drwxrwxr-x 14 adampah adampah 4096 Jun 3 19:43 gale\n",
"drwxrwxr-x 4 adampah adampah 4096 Jun 6 15:42 .hg\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That '%%' symbol is the invocation of a magic command (specifically a cell magic, you can do a line magic with just a single '%'). \n",
"\n",
"iPython notebook can run code from a number of other programming languages that way.\n",
"\n",
"One thing to note though, is executing bash commands in a cell magic doesn't change the state of the actual notebook."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ls -la"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"total 40\r\n",
"drwxrwxr-x 6 adampah adampah 4096 May 20 11:38 \u001b[0m\u001b[01;35m.\u001b[0m/\r\n",
"drwxr-xr-x 27 adampah adampah 4096 May 29 11:21 \u001b[01;35m..\u001b[0m/\r\n",
"drwxr-xr-x 5 adampah adampah 4096 May 28 08:24 \u001b[01;35mCode\u001b[0m/\r\n",
"drwxr-xr-x 16 adampah adampah 4096 Jun 9 21:23 \u001b[01;35mData\u001b[0m/\r\n",
"-rw-r--r-- 1 adampah adampah 4096 May 19 15:36 \u001b[00m._.DS_Store\u001b[0m\r\n",
"-rw-r--r-- 1 adampah adampah 6148 May 20 08:53 \u001b[00m.DS_Store\u001b[0m\r\n",
"drwxr-xr-x 4 adampah adampah 4096 May 29 12:00 \u001b[01;35m.hg\u001b[0m/\r\n",
"-rw-r--r-- 1 adampah adampah 31 May 19 15:52 \u001b[00m.hgignore\u001b[0m\r\n",
"drwxrwxr-x 3 adampah adampah 4096 Jun 9 16:34 \u001b[01;35mResults\u001b[0m/\r\n"
]
}
],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Even better we can actually transfer the results from a bash command to python!"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"files = !ls\n",
"for individual_file in files:\n",
" print individual_file"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Code\n",
"Data\n",
"Results\n"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Even better iPython can handle this with more languages than just bash too! At the current time it works with:\n",
"\n",
"- Ruby\n",
"- Javascript\n",
"- HTML\n",
"- LaTeX\n",
"- Perl\n",
"- R\n",
"- Julia\n",
"\n",
" and more are always coming. Running them is also simple"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%ruby\n",
"puts \"Oh snap. This is Ruby Code!\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Oh snap. This is Ruby Code!\n"
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%javascript\n",
"console.log(\"Double damn! It's javascript!\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"javascript": [
"console.log(\"Double damn! It's javascript!\")"
],
"metadata": {},
"output_type": "display_data",
"text": [
"<IPython.core.display.Javascript at 0x9de3fec>"
]
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## But wait, more!\n",
"Magics aren't just used for running other languages, there are also other built-in, useful magics"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit map(float, [1, 2, 3, 4, 5] * 1000)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"1000 loops, best of 3: 594 \u00b5s per loop\n"
]
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit [float(x) for x in [1, 2, 3, 4, 5] * 1000]"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment