{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Numpy and Matplotlib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reference documents\n",
"\n",
"1. Tentative Numpy Tutorial\n",
"2. NumPy Reference\n",
"3. NumPy for MATLAB Users\n",
"4. NumPy for R (and S-Plus) Users\n",
"5. NumPy and Matplotlib (Practical Computing for Biologists)\n",
"6. Matplotlib: Plotting"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What is Numpy?\n",
"\n",
"While the Python language is an excellent tool for general-purpose programming, it was not designed specifically for mathematical and scientific computing. Numpy allows for:\n",
"\n",
"* Efficient array computing in Python\n",
"* Efficient indexing/slicing of arrays\n",
"* Mathematical functions that operate on an entire array\n",
"\n",
"The critical thing to know is that Python **for** loops are very slow! One should try to use array-operations as much as possible."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, let's import the **numpy** module. There are multiple ways we can do this. In the following examples, zeros
is a **numpy** routine which we will see later, and depending on how we import numpy we call it in different ways:\n",
"\n",
"* 'import numpy'
imports the entire numpy module --> 'numpy.zeros()'
\n",
"* 'import numpy as np'
imports the entire numpy module and renames it --> 'np.zeros()'
\n",
"* 'from numpy import *'
imports the entire numpy module (more or less) --> 'zeros()'
\n",
"* 'from numpy import zeros'
imports *only* the zeros()
routine\n",
"\n",
"After all that preamble, let's get started:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###Creating numpy arrays"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can create an array from scratch, similar to how you might create a list / tuple / whatever:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1 2 3]\n"
]
}
],
"source": [
"a = np.array((1,2,3)) # or np.array((1,2,3))\n",
"print a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also convert a list or tuple of elements into an array:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.2, 0.4, 0.6]\n",
"[ 0.2 0.4 0.6]\n"
]
}
],
"source": [
"myList = [0.2, 0.4, 0.6]\n",
"myArray = np.array(myList)\n",
"print myList\n",
"print myArray"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"print type(myArray)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"float64\n"
]
}
],
"source": [
"print myArray.dtype"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Arrays can be created with non-numbers as well, but all the elements of an array have to have the same type. i.e., arrays are *homogeneous*. Once an array has been created, its dtype is fixed and it can only store elements of the same type. However, the dtype can explicitly be changed (we'll see this later)."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ True False True]\n"
]
}
],
"source": [
"# an array of booleans\n",
"\n",
"print np.array([True, False, True])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['a' 'b' 'c']\n"
]
}
],
"source": [
"# an array of characters/strings\n",
"\n",
"print np.array(['a', 'b', 'c'])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['2' '3' 'c']\n"
]
}
],
"source": [
"print np.array([2, 3, 'c'])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 2. 3. 0.4]\n"
]
}
],
"source": [
"print np.array([2, 3, 0.4])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "ValueError",
"evalue": "invalid literal for long() with base 10: 'C'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mprint\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'C'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mValueError\u001b[0m: invalid literal for long() with base 10: 'C'"
]
}
],
"source": [
"print np.array([2, 3, 'C'], dtype=int)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access elements of an array in the same way you access elements of a list:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.2 0.4 0.6]\n"
]
}
],
"source": [
"print myArray"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.4\n"
]
}
],
"source": [
"print myArray[-2]"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.4\n",
"[ 0.4]\n"
]
}
],
"source": [
"print myArray[1]\n",
"print myArray[1:2]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Multidimensional arrays work like you might expect:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[3 8 0 1]\n",
" [4 0 0 9]\n",
" [2 2 7 1]\n",
" [5 1 0 8]]\n",
"(4, 4)\n"
]
}
],
"source": [
"newArray = np.array([ [3, 8, 0, 1],\n",
" [4, 0, 0, 9],\n",
" [2, 2, 7, 1],\n",
" [5, 1, 0, 8]] )\n",
"print newArray\n",
"print newArray.shape"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1 9 1 8]\n"
]
}
],
"source": [
"print newArray[:,-1]"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"9\n"
]
}
],
"source": [
"print newArray[1,3]"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[5 1]\n"
]
}
],
"source": [
"print newArray[3,0:2]"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3 4 2 5]\n"
]
}
],
"source": [
"print newArray[:,0] # print out an individual column"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you know the size of the array you want, you can create an array of ones or zeros or an empty array:"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 1. 1. 1.]\n",
"(3,)\n"
]
}
],
"source": [
"b = np.ones(3)\n",
"print b\n",
"print b.shape"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 0 0]]\n",
"\n",
"int64\n"
]
}
],
"source": [
"c = np.zeros((1,3), int)\n",
"print c\n",
"print type(c)\n",
"print c.dtype"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3, 5, 6]\n",
"(3, 5, 6)\n"
]
}
],
"source": [
"print [3, 5, 6]\n",
"print (3, 5, 6)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "TypeError",
"evalue": "'tuple' object does not support item assignment",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m6\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mb\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mTypeError\u001b[0m: 'tuple' object does not support item assignment"
]
}
],
"source": [
"a = [3,5,6]\n",
"b = (3,5,6)\n",
"b[0] = 1\n",
"print b"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.+0.j 0.+0.j 0.+0.j]\n",
"complex128\n"
]
}
],
"source": [
"d = np.zeros(3, complex)\n",
"print d\n",
"print d.dtype"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 3.14 3.14 3.14 0. ]\n"
]
}
],
"source": [
"# slightly faster, but be careful to fill it with actual values!\n",
"\n",
"f = np.empty(4)\n",
"f.fill(3.14)\n",
"f[-1] = 0\n",
"print f"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create an identity array:"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1 0 0 0 0]\n",
" [0 1 0 0 0]\n",
" [0 0 1 0 0]\n",
" [0 0 0 1 0]\n",
" [0 0 0 0 1]]\n"
]
}
],
"source": [
"print np.eye(5, dtype=int) # default data type is 'float'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Number generation\n",
"\n",
"Here are a few ways to generate uniformly spaced numbers over an interval (including both endpoints), similar to range()
:"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-5. -4.5 -4. -3.5 -3. -2.5 -2. -1.5 -1. -0.5 0. 0.5 1. 1.5 2.\n",
" 2.5 3. 3.5 4. 4.5]\n"
]
}
],
"source": [
"print np.arange(-5, 5, 0.5) # excludes upper endpoint"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-3. -2.7 -2.4 -2.1 -1.8 -1.5 -1.2 -0.9 -0.6 -0.3 0. 0.3 0.6 0.9 1.2\n",
" 1.5 1.8 2.1 2.4 2.7 3. ]\n"
]
}
],
"source": [
"print np.linspace(-3, 3, 21) # includes both endpoints"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 10. 100. 1000. 10000.]\n"
]
}
],
"source": [
"print np.logspace(1, 4, 4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some examples of random number generation using numpy"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.92068137 0.72312715 0.27224283 0.25495314 0.86758637 0.09651996\n",
" 0.58958672 0.69966758 0.69903476 0.49420249]\n",
"[[ 0.57298993 0.55321172]\n",
" [ 0.50420865 0.08798024]]\n"
]
}
],
"source": [
"print np.random.rand(10)\n",
"print np.random.rand(2,2)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ nan]\n"
]
}
],
"source": [
"print np.()"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[57 53 3 32 56]\n"
]
}
],
"source": [
"print np.random.randint(2,100,5)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 11.10114537 10.88844565 12.22318922 11.10845409]\n",
" [ 10.66948063 10.44214431 7.6900988 5.2654093 ]]\n"
]
}
],
"source": [
"print np.random.normal(10, 3, (2,4))"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-1.10944935 -0.19801826 -0.32755373 -1.46807797 -0.97970284]\n"
]
}
],
"source": [
"print np.random.randn(5) # samples 5 times from the standard normal distribution"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 2.22645411 4.34850779 3.648477 4.16902654 2.53367402]\n"
]
}
],
"source": [
"print np.random.normal(3, 1, 5) # samples 5 times from a Gaussian with mean 3 and std dev 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Working with and manipulating arrays"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[3 8 0 1]\n",
" [4 0 0 9]\n",
" [2 2 7 1]\n",
" [5 1 0 8]]\n"
]
}
],
"source": [
"print newArray"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "ValueError",
"evalue": "total size of new array must be unchanged",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mprint\u001b[0m \u001b[0mnewArray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m7\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mValueError\u001b[0m: total size of new array must be unchanged"
]
}
],
"source": [
"print newArray.reshape(2,7)"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[3 8]\n",
" [0 1]\n",
" [4 0]\n",
" [0 9]\n",
" [2 2]\n",
" [7 1]\n",
" [5 1]\n",
" [0 8]]\n"
]
}
],
"source": [
"print newArray.reshape(-1,2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"None of these manipulations have modified the original newArray:"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[3 8 0 1]\n",
" [4 0 0 9]\n",
" [2 2 7 1]\n",
" [5 1 0 8]]\n"
]
}
],
"source": [
"print newArray"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[3 8 0 1 4 0 0 9]\n",
" [2 2 7 1 5 1 0 8]]\n",
"[[3 8 0 1]\n",
" [4 0 0 9]\n",
" [2 2 7 1]\n",
" [5 1 0 8]]\n"
]
}
],
"source": [
"reshapedArray = newArray.reshape(2,8)\n",
"print reshapedArray\n",
"print newArray"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Above we saw how to index arrays with single numbers and slices, just like Python lists. But arrays allow for a more sophisticated kind of indexing which is very powerful: you can index an array with another array, and in particular with an array of boolean values. This is particluarly useful to extract information from an array that matches a certain condition."
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"redshifts = np.array((0.2, 1.56, 6.3, 0.003, 0.9, 4.54, 1.1))"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 2.00000000e-01 1.56000000e+00 6.30000000e+00 3.00000000e-03\n",
" 9.00000000e-01 4.54000000e+00 1.10000000e+00]\n"
]
}
],
"source": [
"print redshifts"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ True False False True True False False]\n",
"[ 0.2 0.003 0.9 ]\n"
]
}
],
"source": [
"close = redshifts < 1\n",
"print close\n",
"print redshifts[close]"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2\n",
"[ 6.3 4.54]\n"
]
}
],
"source": [
"far = np.where(redshifts > 2)\n",
"print far[0][0]\n",
"print redshifts[far]"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(array([1, 6]),)\n",
"[ 1.56 1.1 ]\n"
]
}
],
"source": [
"middle = np.where( (redshifts >= 1) & (redshifts <= 2) )\n",
"print middle\n",
"print redshifts[middle]"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[False True False False False False True]\n"
]
}
],
"source": [
"print (redshifts >= 1) & (redshifts <= 2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Mathematical operations on arrays\n",
"\n",
"Math with arrays is straightforward and easy. For instance, let's say we want to multiply every number in a group by 3. If we try to do that with a list:"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3, 6, 7, 2, 3, 6, 7, 2]\n"
]
}
],
"source": [
"myList = [3, 6, 7, 2]\n",
"print 2*myList"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 6 12 14 4]\n"
]
}
],
"source": [
"myArray = np.array([3, 6, 7, 2])\n",
"print 2*myArray"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In general, mathematical operations on arrays are done **element-by-element**:"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0 1 2 3]\n",
"[10 11 12 13]\n"
]
}
],
"source": [
"arr1 = np.arange(4)\n",
"arr2 = np.arange(10,14)\n",
"print arr1\n",
"print arr2"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[10 12 14 16]\n",
"[-10 -10 -10 -10]\n",
"[ 0 11 24 39]\n",
"[0 0 0 0]\n"
]
}
],
"source": [
"print arr1 + arr2\n",
"print arr1 - arr2\n",
"print arr1 * arr2\n",
"print arr1 / arr2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice in particular that multiplication is element-wise and is NOT a dot product or regular matrix multiplication."
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 3.5 4.5 5.5 6.5]\n"
]
}
],
"source": [
"print 3.5 + arr1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the last example, numpy understood the command to be \"add 3.5 to every element in arr1.\" That is, it converts the scalar 3.5 into an array of the appropriate size. Since the new array is filled with floats, and arr1 is filled with ints, the summed array is an array of floats.\n",
"\n",
"### Broadcasting with numpy\n",
"\n",
"The broadcasting rules allow numpy to:\n",
"\n",
"* *create* new dimensions of length 1 (since this doesn't change the size of the array)\n",
"* 'stretch' a dimension of length 1 that needs to be matched to a dimension of a different size.\n",
"\n",
"So in the above example, the scalar 1.5 is effectively:\n",
"\n",
"* first 'promoted' to a 1-dimensional array of length 1\n",
"* then, this array is 'stretched' to length 4 to match the dimension of `arr1`.\n",
"\n",
"After these two operations are complete, the addition can proceed as now both operands are one-dimensional arrays of length 4.\n",
"\n",
"This broadcasting behavior is in practice enormously powerful, especially because when numpy broadcasts to create new dimensions or to 'stretch' existing ones, it doesn't actually replicate the data. In the example above the operation is carried *as if* the 1.5 was a 1-d array with 1.5 in all of its entries, but no actual array was ever created. This can save lots of memory in cases when the arrays in question are large and can have significant performance implications."
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[10 11 12 13]\n"
]
}
],
"source": [
"arr1 += 10\n",
"print arr1"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0 0 0 0]\n"
]
}
],
"source": [
"arr1.fill(0)\n",
"print arr1"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[10 11 12 13]\n",
"11.5 11.5\n",
"46 46\n",
"10 10\n"
]
}
],
"source": [
"print arr2\n",
"print np.mean(arr2), arr2.mean()\n",
"print np.sum(arr2), arr2.sum()\n",
"print np.min(arr2), arr2.min()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Numpy I/O with arrays\n",
"\n",
"Numpy makes it easy to write arrays to files and read them. It can write both text and binary files. In a text file, the number $\\pi$ could be written as \"3.141592653589793\", for example: a string of digits that a human can read, with in this case 15 decimal digits. In contrast, that same number written to a binary file would be encoded as 8 characters (bytes) that are not readable by a human but which contain the exact same data that the variable `pi` had in the computer's memory.\n",
"\n",
"* Text mode: occupies more space, precision can be lost (if not all digits are written to disk), but is readable and editable by hand with a text editor. Can *only* be used for one- and two-dimensional arrays.\n",
"\n",
"* Binary mode: compact and exact representation of the data in memory, can't be read or edited by hand. Arrays of any size and dimensionality can be saved and read without loss of information.\n",
"\n",
"In the following examples, we'll only be talking about reading and writing arrays in text mode."
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0.39558761 0.40688139 0.17304988 0.8445151 0.57160838]\n",
" [ 0.95838636 0.57521364 0.58982494 0.95418991 0.01794814]\n",
" [ 0.60268159 0.65890725 0.89238717 0.75554629 0.74659523]\n",
" [ 0.3253617 0.9003241 0.83747841 0.61111402 0.7536519 ]\n",
" [ 0.42639395 0.54634399 0.05459465 0.96242149 0.42202277]\n",
" [ 0.28657583 0.93159786 0.27406637 0.2621851 0.25151161]]\n"
]
}
],
"source": [
"arr3 = np.random.rand(6,5)\n",
"print arr3"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"np.savetxt('arrayFile.txt', arr3, fmt='%.2e', header='')"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"arr4 = np.loadtxt('arrayFile.txt')"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0.396 0.407 0.173 0.845 0.572 ]\n",
" [ 0.958 0.575 0.59 0.954 0.0179]\n",
" [ 0.603 0.659 0.892 0.756 0.747 ]\n",
" [ 0.325 0.9 0.837 0.611 0.754 ]\n",
" [ 0.426 0.546 0.0546 0.962 0.422 ]\n",
" [ 0.287 0.932 0.274 0.262 0.252 ]]\n"
]
}
],
"source": [
"print arr4"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"## what if we want to skip the first and last rows? Or we just want columns 2 and 3?\n",
"arr5 = np.genfromtxt('arrayFile.txt', skip_header=1, skip_footer=1, usecols=(2,3))"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0.59 0.954 ]\n",
" [ 0.892 0.756 ]\n",
" [ 0.837 0.611 ]\n",
" [ 0.0546 0.962 ]]\n"
]
}
],
"source": [
"print arr5"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What is Matplotlib?\n",
"\n",
"The [matplotlib](http://matplotlib.org) library is a powerful tool capable that can quickly produce simple plots for data visualization as well as complex publication-quality figures with fine layout control. Here, we will only provide a minimal introduction, but Google is your friend when it comes to creating the perfect plots. The pyplot tutorial (http://matplotlib.org/users/pyplot_tutorial.html) is a great place to get started, and the matplotlib gallery (http://matplotlib.org/gallery.html) has tons of information as well.\n",
"\n",
"Just as we typically use the shorthand `np` for Numpy, we will use `plt` for the `matplotlib.pyplot` module where the plotting functions reside."
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To plot a collection of x- and y-values:"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 103,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
"AAALEgAACxIB0t1+/AAAHwRJREFUeJzt3Xm8XfO9//HXW1JVaihtUVxjRIwNvakaKlWuBA1+rSEo\n",
"VUPQNIbS0uu2QW+vltaUixqLaMxaxBQkhmpVzJWEGHJvKKo11Sx8fn+s5faIM+x99vBda+338/Hw\n",
"yNnn7L3XW3LyOZ9813dQRGBmZtW1QOoAZmbWWi70ZmYV50JvZlZxLvRmZhXnQm9mVnEu9GZmFddw\n",
"oZd0rqTnJT3cy3NOkTRb0oOShjZ6TTMzq10zOvrzgBE9fVHS1sBqETEI2A84vQnXNDOzGjVc6CPi\n",
"DuClXp4yCjg/f+7dwBKSlm70umZmVpt2jNEvB8zt8vhpYPk2XNfMzGjfzVjN99j7LpiZtcnANlzj\n",
"GWCFLo+Xzz/3IZJc/M3M+iEi5m+mP6Qdhf5qYCxwsaQNgZcj4vnunthX2CKTND4ixvf/9QwBjgE2\n",
"AU4DbgemR/B6ja9fEtgF+BbZD9OJwK8jmNH3axvLnprzp+X8adXSJDdjeuUk4C5gsKS5kr4taYyk\n",
"MQARcR3wpKTHgV8BBzZ6zSqRWEXifOA2YDqwWgTHRnBbrUUeIIIXIzgtgmHAV4H3gVskzpBYrDXp\n",
"zawMGu7oI2J0Dc8Z2+h1qkZiaWA8sCMwARgUwSvNeO8IZgJHSBwH/AJ4WGKfCKY04/3NrFy8MrZ5\n",
"ptX6RIkNgXuBN4E1IhjfrCLfVQQvR7A3MAY4R+LMHrr7ac2+dptNSx2gQdNSB2jQtNQBGjQtdYBW\n",
"U1EOHpEUZR6jr5XEt4HjgL0juKaN110MOJ5scdt+EdzYrmubWevUUjtd6NtE4mPAicCWwHYRzEqU\n",
"Y0vgbOBM4KcRnupqVma11M52zLrpeBKfBS4D/gEMa8UwTa0imJIPHU0BFpM4wsXerNo8Rt9iEkOB\n",
"e4A7gFEpi/wHIngW2AzYHDhN8veBWZV56KaFJNYCbgHGRXBp6jzzy8ftryHbomKvCN5NHMnM6lRL\n",
"7XQn1yISKwM3AIcWscgDRPAqMBJYCrhMYqHEkcysBVzoW0BiGbIx8OMi+E3qPL2J4A1gO+Bd4FqJ\n",
"RRJHMrMmc6FvMoklgBuB8yP479R5ahHBO8Bo4FngIo/Zm1WL/0I3kcTCwLXAVOAniePUJYJ5wN7A\n",
"ksCxieOYWRO50DeJxILA5cATZOPyxbjLXYe8s/86MFpi19R5zKw5POumCSQE/BpYAvh63h2XlsQ6\n",
"wK3ANhH8KXUeM+uZZ920z77AUGCXshd5gAgeJhvGuVJiudR5zKwx7ugbJLEecDOwSQSPps7TTBJH\n",
"kA3lbJbPzjGzgvFeNy0msSjZLpRHR3BR6jzNlg9JXUi2VcboMt53MKs6F/oWyovgRcBrEeyXOk+r\n",
"5IuopgFXRHB84jhmNh9vatZa+wJrA19MHaSVInhLYidgusSNETyUOpOZ1ccdfT9UeVy+JxJ7AoeS\n",
"7b75duo8ZpbxrJsWyMflLwUO7pQin7sAeJLs+EMzKxF39HWSmAi8GcG+qbO0W76v/oPANyL4feo8\n",
"ZuYx+qaTGEU2Jr9e6iwpRPBXif2B8yU+H8FrqTOZWd/c0dco37v9EWCPCKamzpOSxHnAWxEckDqL\n",
"Wafz9MomkpgALBTBPqmzpCaxONkQzgERXJ86j1knc6FvEokvAVcAa0XwUuo8RSDxFWAisG4Ef0+d\n",
"x6xTedZNE+S7Up5NNsvGRT6XD19dCpyUOouZ9c4dfR8kfgR8AdjOWwB8WH4a1Uxg9whuT53HrBN5\n",
"6KZBEkOA24H1I5ibOk8R5atmjyL7PSr9zp1mZeOhmwbkx+mdSbZhmYt8zy4DXgAOTB3EzLrnjr4H\n",
"EmOAPYFNI3gvdZ4i6/Ivn7UjeD51HrNO4qGbfspXgD4CDI/gkdR5ykDieOAzEXwrdRazTuJC308S\n",
"p5MtCDokdZayyPcAmgnsFMFdqfOYdQoX+n7lYC1gKjDY0ynrIzEa+D7wBQ93mbWHb8b2zwnAT1zk\n",
"++Vi4BVgTOogZvZP7ug/lIERwMlkNxXfTZmlrCTWBm4lW0X8Quo8ZlXnoZu6rs9Asv1bjozg6lQ5\n",
"qkDiROCTnbiVs1m7udDXdX32B3YCvuoVsI3JNz2bTTZraUbqPGZV5kJf87VZHHgUGBHBAykyVI3E\n",
"98jWIGyfOotZlbnQ13xtjiObA753iutXkcRCwGPALp5uadY6LvQ1XZeVgXvIttv9S7uvX2USewF7\n",
"AZt5OMysNTy9sjbHASe7yLfEBcBSwNapg5h1so7u6CWGAVcCq0fwRjuv3SkktgOOBYZ6EZVZ87mj\n",
"79sxZIujXORb52rgH8CuqYOYdaqO7eglNiY7Cm9wBO+067qdSGJTsmGcNSJ4O3UesypxR9+7Y4Fj\n",
"XeRbL4I7yHYD3T91FrNO1JEdfX6w9ZnAEJ+K1B4S6wA3A4MieDV1HrOqcEffDQmRdfNHu8i3TwQP\n",
"AzcC30udxazTdFxHL7EVcCKwjmeBtJfESsC9ZLOc/p44jlkltKWjlzRC0ixJsyX9oJuvD5f0iqT7\n",
"8/+OavSa/dWlmx/vIt9+EcwBrgAOThzFrKM01NFLGkC2R8wWwDNkK0xHR8TMLs8ZDhwaEaP6eK+W\n",
"d/QSXwN+Qjan+/1WXsu612Ul8iDv+W/WuHZ09MOAxyNiTkS8S3bwxHbdZWnwOg2TWIBs3vyPXOTT\n",
"ieApsrn141JnMesUjRb65YC5XR4/nX+uqwA2kvSgpOskrdngNftrB2AeeK/5AvgpMDbfNdTMWmxg\n",
"g6+vZdznPmCFiHhD0kjgt8Dq3T1R0vguD6dFxLQG8+XvywDgaOBwb66VXgSPS1wPjAX+M3UeszLJ\n",
"h8OH1/WaBsfoNwTGR8SI/PGRwPsR8bNeXvMUsEFEvDjf51s2Ri+xE3AIsJELfTFIDAbuAFaN4B+p\n",
"85iVVTvG6KcDgyStJGlBYGfmGxqRtLQk5R8PI/vh8uJH36o18pk2PyTb08ZFviAieJRsAdWBqbOY\n",
"VV1DQzcRMU/SWLKFMAOAcyJipqQx+dd/BXwDOEDSPOANYJcGM9drJNnN4OvafF3r238Ct0pMiOD1\n",
"1GHMqqrSC6bybv5O4JQILmnme1tzSFwK/CmCE1JnMSujjj9hSuLLwDlkuyZ6gVQBSawL3ASs4u2i\n",
"zernvW6ysfnjXOSLK4KHgLuA/VJnMauqynb0EhuQTeVc1VsRF5vEUOBasj+rt1LnMSuTTu/ojwR+\n",
"4SJffBHcDzwIfDN1FrMqqmRHLzEEuA1Y2bM5ykFiM7IzAtb0UJtZ7Tq5o/8B2UwbF/nyuB14me73\n",
"SjKzBlSuo5dYkWzbhdW8O2K5SPw/sh/SG3pxm1ltOrWjPww4y0W+lH4HfArYNHUQsyqpVEcvsTQw\n",
"k+ws2Oebk8zaSWJfYPsItkmdxawMOrGjHwdc7CJfahcC6+eHiZtZE1Smo5dYBJgDfCmCx5sWzNpO\n",
"4kiyf5XtkTqLWdHVUjsb3Y++SPYCbneRr4TTgScl/iWC/00dxqzsKtHR5weLzAZ2i+APzU1mKUic\n",
"AAyI4JDUWcyKrJPG6HcAnnORr5STgD0llkwdxKzsSl/o862IDwNvc1slETxNNt3ygNRZzMqu9EM3\n",
"EhsD5wODvXS+WiTWBG4l28rizdR5zIqoU4ZuDgN+6SJfPRHMAO4Bdk+dxazMSt3RSwwCfg+s5EMr\n",
"qklic2ACsJa3RTD7qE7o6A8BfuUiX2lTgXeArVIHMSur0nb0Ep8BHiM7JtArYStMYk9g1wgXe7P5\n",
"Vb2jPwC4wkW+I1wMrCuxduogZmVUyo5eYiGy7Q42z2/YWcVJHEV2L2af1FnMiqTKHf03geku8h3l\n",
"DODrEp9NHcSsbEpX6PMFUgcDJ6bOYu0Twd+AS/ECKrO6la7QA1sA75EtpLHOchJwQD50Z2Y1KmOh\n",
"Pxg42XOqO08EM8mOidw1dRazMinVzViJwcAdwIpeEt+ZJLYEfgms6x/2ZtW8GTuObIGUi3znujn/\n",
"dYukKcxKpDQdvcSngCeAtSP4S/uSWdFIfBv4RgRbp85illrVOvq9gcku8gb8huxc2SGpg5iVQSkK\n",
"vcRA4LvAyamzWHoRvEU2r35c6ixmZVCKQg9sD8yNYHrqIFYYZwA750N6ZtaLshT6g8nmUJsBEMFz\n",
"wLXgLRHM+lL4m7ESXwCuAFaNYF77k1lR5d8blwOr+XvDOlVVbsYeBJzqv8g2v3wo7xlgVOosZkVW\n",
"6I5e4nPAI8AqEbyUJpkVmcROwHci2Cx1FrMUqtDRHwD8xkXeenEVsIrE51MHMSuqwnb0+cZV/wNs\n",
"FsGsdMms6CSOBAZF8O3UWczarewd/c7A/S7yVoMzgR3y4yXNbD6FLPT5nvMHAaekzmLFF8HfyWbf\n",
"jEmdxayIClnogY2ARYEbUgex0jiFbK/6BVMHMSuaohb6cWRTKt9PHcTKIYKHgUeBr6fOYlY0hbsZ\n",
"K7E88BDZQdCvps5l5SGxHXBkBBumzmLWLmW9GXsAcKGLvPXDtcBnJb6YOohZkRSqo4dYmGxK5cYR\n",
"zE6dycpH4lBggwh2S53FrB3K2NHvAtzjIm8NOBfYWmLZ1EHMiqJohX4cnlJpDYjgZWASnmpp9n8a\n",
"LvSSRkiaJWm2pB/08JxT8q8/KGloL2/3CWBKo5ms400Axkh8PHUQsyJoqNBLGkD2l2oEsCYwWtKQ\n",
"+Z6zNbBaRAwC9gNO7+UtPaXSGhbBDODPwI6ps5gVQaMd/TDg8YiYExHvAhcD2833nFHA+QARcTew\n",
"hKSle3i/CxrMY/aBU4CD8lXWZh2t0UK/HDC3y+On88/19Zzlu3uzCP7RYB6zD1wHLAmeamnNJbGE\n",
"xEapc9RjYIOvr3Vu5vxdVbevkzS+y8NpETGtH5nMiOA9iQlkh8r/MXUeq5RvAxsAd6W4uKThwPB6\n",
"XtNooX8GWKHL4xXIOvbenrN8/rmPiIjxDeYx6+o84D8kPhfBX1KHsfKTGACMBUanypA3wNM+eCzp\n",
"x329ptGhm+nAIEkrSVqQbGvhq+d7ztXAHnmgDYGXI+L5Bq9r1qd8quXFeKqlNc82wAsR3J06SD0a\n",
"KvQRMY/sp9uNwAzgkoiYKWmMpDH5c64DnpT0OPAr4MAGM5vVw1MtrZlKudanUFsg9LWM16w/JG4C\n",
"LohgYuosVl4SawE3AytG8E7qPB8o4xYIZq3gqZbWDN8FzihSka+VO3qrvPwG2mPAbhGegWP1k/gU\n",
"8CQwJILnUufpyh29GdlUS7Kx+oNSZ7HS2hu4tmhFvlbu6K0jSCwOPAWsE9H99F6z7uT/InwC2DGC\n",
"e1LnmZ87erNcBK8AvyE72MasHl8Dni1ika+VO3rrGBKDgdvJZk28lTqPlYPErcBZEUxKnaU77ujN\n",
"uojgUeBeEq5qtHKRWBtYA7gidZZGuNBbp/FUS6vHd4HTyzilsisXeus0NwELAV9OHcSKTWJJYCfg\n",
"zNRZGuVCbx0lP9jmFLKl7Ga92Qe4JoLS783lm7HWcSQ+CfwPsEEEcxLHsQKS+BjZlMrtI7gvdZ7e\n",
"+GasWTcieA34NfCdxFGsuHYA5hS9yNfKHb11JImVgXvIplq+njqPFYvEXcAJEVyZOktf3NGb9SCC\n",
"p4A7gW+mzmLFIjEMWBb4XeoszeJCb53sZGCcp1rafA4CTs33SKoEF3rrZNOAecCWiXNYQUgsB4wE\n",
"zkmdpZlc6K1jRRDkC6hSZ7HCOBCYmO+NVBm+GWsdTeITwBxgswhmJY5jCUksTPa9sHEEsxPHqZlv\n",
"xpr1IYI3gTOAg1NnseR2A+4uU5GvlTt663gSSwOzgEER/C11Hmu//Ib8n4FxEdySOk893NGb1SBf\n",
"4n4VMCZ1FktmC+B94NbUQVrBHb0ZILEOcCOwcgRvp85j7SUxGbgyonyzbdzRm9UogoeBR4CdU2ex\n",
"9soPpPlXshPIKsmF3uyfTgQO8QKqjjMOODO/MV9JLvRm/3QD2V71wxPnsDaR+DSwKzAhdZZWcqE3\n",
"y+V71Z8EHJI6i7XNAWRj88+lDtJKvhlr1kWXRTObRPBY4jjWQhILkf1ZfzWCRxLH6TffjDWrUwRv\n",
"kB0d520Rqm934N4yF/lauaM3m4/EsmQzcFaL4MXUeaz5JBYg+zP+TkS55867ozfrhwieBa4B9kud\n",
"xVpmJPAmMDV1kHZwR2/WDYn1gOuAVbyAqnokpgJnRZR/7rw7erN+iuBBsr1Pdk2dxZpLYgNgVeCy\n",
"1FnaxYXerGc/B76fj+dadXwPODmCd1MHaRd/A5v17FbgdWDb1EGsOST+BdgKOCt1lnZyoTfrQX4C\n",
"1c+BH6TOYk1zEHBuBK+mDtJOvhlr1guJAcBjwB4R/D51Hus/iSWAJ4H1IpibOk+z+GasWYMieA84\n",
"AXf1VbAvcF2Vinyt3NGb9SE/V/YpYPMIZqTOY/WT+DhZN79NBA+kztNM7ujNmiDfvnYCcHjqLNZv\n",
"ewIPVK3I18odvVkNJJYEHgfWjeDp1HmsdhIDgUep6H0Wd/RmTZLveXM+3uysjHYCnq5ika+VO3qz\n",
"GuVzsO8HVo3g5dR5rG/5YrcHgcMjuCF1nlZwR2/WRBH8LzAZ2D91FqvZtsC7ZAe/dyx39GZ1kFgH\n",
"uIlss7PKnjFaBfnZv38Ejo/g8tR5WsUdvVmTRfAwcDewT+os1qevAIsDV6UOkpo7erM65bsf/o7s\n",
"YJK3Uuex7klMAS6K4Neps7SSO3qzFojgXuABYK/UWax7EsOA1YGLUmcpgn539JKWBC4BViQ7YHen\n",
"iPjITARJc4BXgfeAdyNiWA/v547eSkPii2T7ma8WwTup89iHSVwF3BrBqamztFqrO/ojgCkRsTpw\n",
"S/64OwEMj4ihPRV5s7KJ4G5gBtmKSysQibWALwHnpM5SFI0U+lFkC0jIf92+l+e6U7cqOgb4ocTH\n",
"UgexDzmC7GCRN1IHKYpGCv3SEfF8/vHzwNI9PC+AmyVNl7RvA9czK5QI7gKeAHZPncUyEmsAI4DT\n",
"UmcpkoG9fVHSFGCZbr70710fRERI6mmwf+OIeFbSZ4ApkmZFxB09XG98l4fTImJab/nMCuAY4FyJ\n",
"CyOYlzqM8WPgxAheSR2kVSQNB4bX9ZoGbsbOIht7f07SssDUiFijj9f8GHgtIn7Rzdd8M9ZKSWIa\n",
"cE4EF6bO0skk1ia7X7hqBK+lztMurb4ZezX/vBG1J/DbbgIsLGnR/ONFgH8DHm7gmmZFdAxwVH4a\n",
"laVzNNkq2I4p8rVqpNAfB2wp6TFg8/wxkj4naXL+nGWAOyQ9QLaa8NqIuKmRwGYFNBX4K9kuiZaA\n",
"xFCymTYem++GV8aaNYHElsDJwDr58YPWRhLXAFMiOCV1lnbzyliz9rkZeAnYNXWQTpMvXvs8cGbq\n",
"LEXljt6sSSQ2BS4A1ojg7dR5OoXEjcBVEZyROksK7ujN2iiCO4BH8H71bSOxCdmeNuemzlJk7ujN\n",
"mijfr/5mYFAEr6bOU3USU4ELIzq30LujN2uzfL/6G4Hvpc5SdRKbA8uTDZdZL9zRmzWZxErAvcCa\n",
"ETzfx9OtH/LTo+4ETo9gYuo8KbmjN0sggjnAhcBRiaNU2Q7AosCk1EHKwB29WQtIfAaYCQyL4MnU\n",
"eapE4uPkN70juDl1ntTc0ZslEsELwCnAsamzVNBYYJaLfO3c0Zu1iMQngdnAyAgeSJ2nCiQ+DcwC\n",
"No1gZuo8RVBL7XShN2shibHANhGMTJ2lCiROBRTB2NRZisKF3iwxiQXJxurHeKihMfmhIncAQyL4\n",
"W+o8ReExerPE8oPDDwVOzYu+9d/xwHEu8vVzoTdrvauBp4CDUgcpK4ktgDWBCamzlJGHbszaQGIQ\n",
"8AdgvQieSZ2nTPIDXe4DjongitR5isZDN2YFEcFs4Fdkww9Wn72AV4ArUwcpK3f0Zm0isQgwA9gz\n",
"gmmJ45SCxOJkN7NHRTA9dZ4ickdvViARvE52Y3aCxMdS5ymJ/wImu8g3xoXerL2uBP4CngfeF4mN\n",
"ge2A76fOUnYeujFrM4nBZDsvrhvBs6nzFFG+n839wI8iuDx1niLz0I1ZAUXwKHAO8PPUWQrsSLLt\n",
"IzzLpgnc0ZslkO+DMxPYPYLbUucpEok1gduAoRE8nTpP0bmjNyuoCF4DDgTOk1g0dZ6ikFgAOAv4\n",
"sYt887jQmyUSwTXAVOAXqbMUyJj81zOSpqgYD92YJSSxGPAgMDaCyanzpCSxPNkN2M0imJE6T1l4\n",
"6Mas4CJ4FfgWcGa+13pHys+AnQD8t4t887nQmyWW34ydBJyeF7xOtDuwOtkCKWsyF3qzYjiKbHfG\n",
"XVMHaTeJIcAvgZ0jeDt1niryGL1ZQUisD9wArN8pM04kFgbuBk6K4JzUecrIJ0yZlYzEUcBmwFYR\n",
"vJ86T6tJnA18HNgjgmIUo5LxzViz8jkOWIwOOKRE4pvAJsABLvKt5Y7erGAkVgbuItvO+KbUeVoh\n",
"H5e/HfhqBA+lzlNm7ujNSiiCp4CdgYn5BmiVko/LXwoc6SLfHu7ozQpKYh/gcGDDCF5KnadZ8nH5\n",
"hYBvesimcbXUzoHtCmNm9YngbIm1gUskto5gXupMjZLYn2xc/gsu8u3joRuzYjsMCOCE1EEaJbET\n",
"8CNg23xTN2sTF3qzAsu7+J2BkRL7ps7TXxJbAacCIyN4PHWeTuOhG7OCi+Blia8Bd0rMLtvB4hJf\n",
"AiYC20fwYOo8ncgdvVkJRPAYMBq4VOKrqfPUSmId4LdkC6J+nzpPp3KhNyuJCG4BdgQm5R1+oUms\n",
"Qralw8ERXJ86TydzoTcrkXyny22As6TiboAmsSwwBfhJBJNS5+l0LvRmJRPBPcAWwM8l9kudZ34S\n",
"GwB/BM6M4PTUecw3Y81KKYI/SwwHpkgsFlGM6ZcSuwEnAftHcEXqPJZxoTcrqQgel9gUuFnis8BR\n",
"EbyTIovEQOBnwHbAVyL4c4oc1j0P3ZiVWL5v/ZeBtYA/SXy+3RkklgKuB9YBhrnIF48LvVnJRfBX\n",
"YFvgROAmiaMlFmzHtfPx+HvIDvXeOoIX23Fdq0+/C72kHSU9Iuk9Sev38rwRkmZJmi3pB/29npn1\n",
"LIKI4HxgKLA+cE9+YlVLSAyWmARMBv49gu9XYS+eqmqko38Y2IFsT+luSRpAdrL7CLLzMEdLGtLA\n",
"NQtL0vDUGfqrzNnB+buK4BlgFHA8cIPEzyRWbNb7S6wocS5wJ1kNWA30bLPeP4Wyf//Uot+FPiJm\n",
"RcRjfTxtGPB4RMyJiHeBi8lu1lTR8NQBGjA8dYAGDU8doEHDm/lmeXc/EVgPWAS4V+JWiT0lPtmf\n",
"95RYQWICcB/wF2BQBD/NNycb3qzsiQxPHaDVWj1Gvxwwt8vjp/PPmVmLRfBsBGPJ/s6dBnwDmCvx\n",
"a4mtJFaXWEr6cB2QGCgxVOJAiYkSTwAPAe8AQyI4KoKX2/4/ZP3W6/RKSVOAZbr50g8j4poa3t/7\n",
"TZslFsHbwOXA5RJLA7sBRwHLAksBi0q8DPwd+AcwmKxB+wMwFfgpMKsTDiuvqoZPmJI0FfheRNzX\n",
"zdc2BMZHxIj88ZHA+xHxs26e6x8KZmb90K4Tpnq6yHRgkKSVyMb1dibbge8jfIygmVlrNDK9cgdJ\n",
"c4ENgcmSrs8//zlJkwEiYh4wFrgRmAFcEhEzG49tZma1Kszh4GZm1hrJV8aWeUGVpHMlPS/p4dRZ\n",
"+kPSCpKm5gvf/ixpXOpM9ZC0kKS7JT0gaYak/0qdqV6SBki6X1ItkxsKR9IcSQ/l/w9/Sp2nHpKW\n",
"kHS5pJn598+GqTPVStLg/Pf8g/9e6e3vb9KOPl9Q9SjZlqvPkC2lHl2W4R1JmwKvARdExDqp89RL\n",
"0jLAMhHxgKRPAvcC25fl9x9A0sIR8YakgWSLeA6LiDtT56qVpEOBDYBFI2JU6jz1kvQUsEFElG7r\n",
"A0nnA7dFxLn5988iEfFK6lz1krQAWf0cFhFzu3tO6o6+1AuqIuIO4KXUOforIp6LiAfyj18DZgKf\n",
"S5uqPhHxRv7hgsAAKM9eK5KWB7YGzqbnCQ1lULrskhYHNo2IcyG7n1jGIp/bAniipyIP6Qu9F1QV\n",
"RD4zaihwd9ok9ZG0gKQHgOeBqRExI3WmOpwIHA6lnp8ewM2SpkvaN3WYOqwMvCDpPEn3STpL0sKp\n",
"Q/XTLsBventC6kLvO8EFkA/bXA4clHf2pRER70fE54HlgS+XZd8SSdsCf42I+ylhR9zFxhExFBgJ\n",
"fCcfziyDgWSbv50WEesDrwNHpI1UP0kLAl8DLuvteakL/TPACl0er0DW1VubSPoYcAUwMSJ+mzpP\n",
"f+X/7J4MfCF1lhptBIzKx7gnAZtLuiBxprpFxLP5ry8AV5ENx5bB08DTEXFP/vhyaN1uny00Erg3\n",
"//3vUepC/38LqvKfTDsDVyfO1DEkCTgHmBERJ6XOUy9Jn5a0RP7xJ4AtyfZFL7yI+GFErBARK5P9\n",
"0/vWiNgjda56SFpY0qL5x4sA/0a2o2XhRcRzwFxJq+ef2gJ4JGGk/hoNfR++nvQowYiYJ+mDBVUD\n",
"gHNKNuNjErAZsFS+eOxHEXFe4lj12BjYHXhI0gcF8siIuCFhpnosC5yfzzpYALgwIm5JnKm/yjiM\n",
"uTRwVdYvMBC4KCJuShupLt8FLsqbzCeAvRLnqUv+w3ULoM97I14wZWZWcamHbszMrMVc6M3MKs6F\n",
"3sys4lzozcwqzoXezKziXOjNzCrOhd7MrOJc6M3MKu7/A3bjrQsYF86+AAAAAElFTkSuQmCC\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(0, 2*np.pi, 50)\n",
"y = np.sin(x)\n",
"plt.plot(x, y)"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 104,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"+Jy2AAAAAElFTkSuQmCC\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"### If you don't give it x values:\n",
"plt.plot(np.random.rand(100))"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"AElFTkSuQmCC\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"### Multiple data sets on the same plot\n",
"# the semicolon at the end suppresses the display of some usually unnecessary information\n",
"\n",
"plt.plot(x, np.sin(x), label=r'$\\sin(x)$')\n",
"plt.plot(x, np.cos(x), label='cos(x)')\n",
"plt.xlabel('x values', size=24)\n",
"plt.ylabel('y values')\n",
"plt.title('two functions')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice how matplotlib automatically assigned different colors to the two data sets. We can finetune what these look like:"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"p7QyAAAAAElFTkSuQmCC\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, np.sin(x), linewidth=3, color='red', linestyle='--')"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"UK+0iAEAAAAASUVORK5CYII=\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, np.sin(x), 'o--', markersize=5, color='k')"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"AElFTkSuQmCC\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"### logarithmic plots\n",
"x = np.linspace(-5, 5)\n",
"y = np.exp(-x**2)\n",
"plt.semilogy(x,y, lw=2, color='0.1')"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0.01, 10.0)"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"IcNfkir0/0OzjdgE1/UeAAAAAElFTkSuQmCC\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.loglog(x,y)\n",
"plt.xlim(1e-1, 1e1)\n",
"plt.ylim(1e-2, 1e1)"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# A more complicated example\n",
"\n",
"mu, sigma = 5.9, 0.2\n",
"measurements = mu + sigma * np.random.randn(10000)\n",
"\n",
"# the histogram of the data\n",
"plt.hist(measurements, 50, normed=False, facecolor='g', alpha=0.75, label='hist')\n",
"\n",
"plt.xlabel('Height (feet)')\n",
"plt.ylabel('Number of people')\n",
"plt.title('Height distribution')\n",
"# This will put a text fragment at the position given:\n",
"plt.text(5.1, 600, r'$\\mu=100$, $\\sigma=15$', fontsize=14)\n",
"plt.axis([5,6.7,0,750])\n",
"plt.grid(True)\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"### Error bars and subplots\n",
"\n",
"# generate some fake data, with errors in y\n",
"x = np.arange(0.2, 4, 0.5)\n",
"y = np.exp(-x)\n",
"errors = 0.1 + 0.1*np.sqrt(x)\n",
"\n",
"\n",
"fig = plt.figure()\n",
"\n",
"noErrs = fig.add_subplot(121)\n",
"plt.plot(x, y)\n",
"plt.xticks((0,1,2,3,4))\n",
"noErrs.set_title('No errors')\n",
"noErrs.set_ylim(-0.3,1)\n",
"\n",
"withErrs = fig.add_subplot(122)\n",
"withErrs.errorbar(x, y, yerr=errors)\n",
"withErrs.set_title('With errors')\n",
"plt.ylim(-0.3,1)\n",
"plt.xticks(np.arange(0,4.5,0.5))\n",
"\n",
"fig.suptitle('fake data', size=16, weight='bold')"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"YII=\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# normal distribution center at x=0 and y=5\n",
"x = np.random.randn(100000)\n",
"y = np.random.randn(100000)+5\n",
"\n",
"# let's make this plot bigger\n",
"plt.figure(figsize=(12,8))\n",
"plt.hist2d(x, y, bins=40)\n",
"plt.colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### A final note\n",
"\n",
"Since we often need to use numpy + matplotlib (+ SciPy + others) at the same time, we can import all of these modules at once using a single command. Instead of:\n",
"\n",
" import numpy as np\n",
" import matplotlib.pyplot as plt\n",
" %matplotlib inline\n",
" \n",
"etc., just use:\n",
"\n",
" %pylab inline"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Breakout session"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We want to reproduce the Global Land-Ocean Temperature index plot below (available at this GISS website). Download the data this link and recreate the plot **as closely as you can** (don't worry about the two green points or matching the font). We've broken up this problem into steps to get you started. Feel free to follow them as you wish, or be a lone wolf and solve this on your own.\n",
"\n",
"
\n",
"\n",
"\n",
"1. Save the data as a text file, and then read the data into a numpy array. You'll have to deal with the extra lines at the top and bottom of the file, as well as the missing values (the asterixes) that appear. There are multiple ways to solve these problems; do what works for you. If you get stuck, remember that we talked about slicing arrays at the beginning of this lecture.\n",
"2. Plot \"Annual Mean\" as a set of black squares connected by a thick black line. Try Googling something about \"matplotlib square markers\". Don't forget to give it a label so it can go in the legend later.\n",
"3. Plot \"5-Year Running Mean\" as a thick red line. Don't forget the label.\n",
"4. Set the x and y ranges of your plot so that they match the ones in the plot we are trying to recreate.\n",
"5. Add a grid. The default grid that shows up is fine; don't worry about making it match *exactly*.\n",
"6. Label the y axis. Don't worry about the \"degree\" symbol for now.\n",
"7. Add the title.\n",
"8. Add the legend (default settings are fine).\n",
"\n",
"BONUS TASKS:\n",
"1. Notice how, in the the plot above, there are labels at every 20 years along the x axis but grid marks at every ten (and similar for the y axis)? Figure out how to recreate this.\n",
"2. On that note, match the formatting they have for the y axis ticks.\n",
"3. Make all the font sizes match (yours are probably smaller than you'd like).\n",
"4. Add in the \"degree\" symbol for the y axis label. Hint: LaTeX or unicode.\n",
"5. Move the legend to the right place. Remove the box (the \"frame\") that surrounds the legend. Notice how your legend has a line with *two* markers for \"Annual mean\" and their legend has a line with only one marker? Match that.\n",
"6. Move the title up a little bit so the spacing better matches the plot above."
]
},
{
"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.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}