{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "This is a text!" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello World!\n" ] } ], "source": [ "print \"Hello World!\"" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%quickref" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "help(\"numpy\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on int object:\n", "\n", "class int(object)\n", " | int(x=0) -> int or long\n", " | int(x, base=10) -> int or long\n", " | \n", " | Convert a number or string to an integer, or return 0 if no arguments\n", " | are given. If x is floating point, the conversion truncates towards zero.\n", " | If x is outside the integer range, the function returns a long instead.\n", " | \n", " | If x is not a number or if base is given, then x must be a string or\n", " | Unicode object representing an integer literal in the given base. The\n", " | literal can be preceded by '+' or '-' and be surrounded by whitespace.\n", " | The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to\n", " | interpret the base from the string as an integer literal.\n", " | >>> int('0b100', base=0)\n", " | 4\n", " | \n", " | Methods defined here:\n", " | \n", " | __abs__(...)\n", " | x.__abs__() <==> abs(x)\n", " | \n", " | __add__(...)\n", " | x.__add__(y) <==> x+y\n", " | \n", " | __and__(...)\n", " | x.__and__(y) <==> x&y\n", " | \n", " | __cmp__(...)\n", " | x.__cmp__(y) <==> cmp(x,y)\n", " | \n", " | __coerce__(...)\n", " | x.__coerce__(y) <==> coerce(x, y)\n", " | \n", " | __div__(...)\n", " | x.__div__(y) <==> x/y\n", " | \n", " | __divmod__(...)\n", " | x.__divmod__(y) <==> divmod(x, y)\n", " | \n", " | __float__(...)\n", " | x.__float__() <==> float(x)\n", " | \n", " | __floordiv__(...)\n", " | x.__floordiv__(y) <==> x//y\n", " | \n", " | __format__(...)\n", " | \n", " | __getattribute__(...)\n", " | x.__getattribute__('name') <==> x.name\n", " | \n", " | __getnewargs__(...)\n", " | \n", " | __hash__(...)\n", " | x.__hash__() <==> hash(x)\n", " | \n", " | __hex__(...)\n", " | x.__hex__() <==> hex(x)\n", " | \n", " | __index__(...)\n", " | x[y:z] <==> x[y.__index__():z.__index__()]\n", " | \n", " | __int__(...)\n", " | x.__int__() <==> int(x)\n", " | \n", " | __invert__(...)\n", " | x.__invert__() <==> ~x\n", " | \n", " | __long__(...)\n", " | x.__long__() <==> long(x)\n", " | \n", " | __lshift__(...)\n", " | x.__lshift__(y) <==> x< x%y\n", " | \n", " | __mul__(...)\n", " | x.__mul__(y) <==> x*y\n", " | \n", " | __neg__(...)\n", " | x.__neg__() <==> -x\n", " | \n", " | __nonzero__(...)\n", " | x.__nonzero__() <==> x != 0\n", " | \n", " | __oct__(...)\n", " | x.__oct__() <==> oct(x)\n", " | \n", " | __or__(...)\n", " | x.__or__(y) <==> x|y\n", " | \n", " | __pos__(...)\n", " | x.__pos__() <==> +x\n", " | \n", " | __pow__(...)\n", " | x.__pow__(y[, z]) <==> pow(x, y[, z])\n", " | \n", " | __radd__(...)\n", " | x.__radd__(y) <==> y+x\n", " | \n", " | __rand__(...)\n", " | x.__rand__(y) <==> y&x\n", " | \n", " | __rdiv__(...)\n", " | x.__rdiv__(y) <==> y/x\n", " | \n", " | __rdivmod__(...)\n", " | x.__rdivmod__(y) <==> divmod(y, x)\n", " | \n", " | __repr__(...)\n", " | x.__repr__() <==> repr(x)\n", " | \n", " | __rfloordiv__(...)\n", " | x.__rfloordiv__(y) <==> y//x\n", " | \n", " | __rlshift__(...)\n", " | x.__rlshift__(y) <==> y< y%x\n", " | \n", " | __rmul__(...)\n", " | x.__rmul__(y) <==> y*x\n", " | \n", " | __ror__(...)\n", " | x.__ror__(y) <==> y|x\n", " | \n", " | __rpow__(...)\n", " | y.__rpow__(x[, z]) <==> pow(x, y[, z])\n", " | \n", " | __rrshift__(...)\n", " | x.__rrshift__(y) <==> y>>x\n", " | \n", " | __rshift__(...)\n", " | x.__rshift__(y) <==> x>>y\n", " | \n", " | __rsub__(...)\n", " | x.__rsub__(y) <==> y-x\n", " | \n", " | __rtruediv__(...)\n", " | x.__rtruediv__(y) <==> y/x\n", " | \n", " | __rxor__(...)\n", " | x.__rxor__(y) <==> y^x\n", " | \n", " | __str__(...)\n", " | x.__str__() <==> str(x)\n", " | \n", " | __sub__(...)\n", " | x.__sub__(y) <==> x-y\n", " | \n", " | __truediv__(...)\n", " | x.__truediv__(y) <==> x/y\n", " | \n", " | __trunc__(...)\n", " | Truncating an Integral returns itself.\n", " | \n", " | __xor__(...)\n", " | x.__xor__(y) <==> x^y\n", " | \n", " | bit_length(...)\n", " | int.bit_length() -> int\n", " | \n", " | Number of bits necessary to represent self in binary.\n", " | >>> bin(37)\n", " | '0b100101'\n", " | >>> (37).bit_length()\n", " | 6\n", " | \n", " | conjugate(...)\n", " | Returns self, the complex conjugate of any int.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors defined here:\n", " | \n", " | denominator\n", " | the denominator of a rational number in lowest terms\n", " | \n", " | imag\n", " | the imaginary part of a complex number\n", " | \n", " | numerator\n", " | the numerator of a rational number in lowest terms\n", " | \n", " | real\n", " | the real part of a complex number\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data and other attributes defined here:\n", " | \n", " | __new__ = \n", " | T.__new__(S, ...) -> a new object with type S, a subtype of T\n", "\n" ] } ], "source": [ "x = 24\n", "help(x)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello World!\n" ] } ], "source": [ "%%bash \n", "echo \"Hello World!\"" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "row1col1 row1col2\n", "row2col2 row2col2\n" ] } ], "source": [ "%%bash\n", "awk '{print;}' data.txt" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "row1col1\n", "row2col2\n" ] } ], "source": [ "%%bash\n", "awk '{print $1;}' data.txt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Variables" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Python variables are dynamically typed.\n", "* No variable declarations\n", "* No type safety" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = 24\n", "x = 3.140372\n", "x = \"Hello World!\"" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello World!\n" ] }, { "data": { "text/plain": [ "str" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print x\n", "type(x)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "7" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 + 4" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-1" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 - 4" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "4 / 4" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "16" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "4 * 4" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6\n" ] } ], "source": [ "x = 3\n", "x += 3\n", "print x" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x / 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Casting is possible" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = 1\n", "y = 3\n", "res = x / y" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n" ] }, { "data": { "text/plain": [ "int" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print res\n", "type(res)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.3333333333333333" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x / float(y)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x = 1.\n", "y = float(3)\n", "res = x / y" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.333333333333\n" ] }, { "data": { "text/plain": [ "float" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print res\n", "type(res)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "13.0" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = \"13\"\n", "float(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## String functions" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "12" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text = \"Hello world!\"\n", "len(text)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Hel'" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text[0:3]" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'H'" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text[0]" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'HELLO WORLD!'" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.upper()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'hello world!'" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.lower()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.find('l')" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['Hello', 'world!']" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.split(' ')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Strings are immutable!" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "ename": "TypeError", "evalue": "'str' 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[0;32m----> 1\u001b[0;31m \u001b[0mtext\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'A'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mTypeError\u001b[0m: 'str' object does not support item assignment" ] } ], "source": [ "text[0] = 'A'" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Aello world!'" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'A' + text[1:]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Booleans" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "True" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "False" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "None\n" ] } ], "source": [ "x = None\n", "print x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data structures" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lists" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[3, 4, 5]\n" ] } ], "source": [ "x = [3, 4, 5]\n", "print x" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[0]" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[3, 4, 5, 7]\n" ] } ], "source": [ "x.append(7)\n", "print x" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[3, 4]" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[0:2]" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "7" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[-1]" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[4, 5, 7]" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[-3:]" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a = x + [3,1]" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[3, 4, 5, 7, 3, 1]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "6" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(a)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a.append(\"string\")" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[3, 4, 5, 7, 3, 1, 'string']" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 3, 3, 4, 5, 7, 'string']\n" ] } ], "source": [ "a.sort()\n", "print a" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "3\n", "3\n", "4\n", "5\n", "7\n", "string\n" ] } ], "source": [ "for i in a:\n", " print i" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = [1,2,3]\n", "a = [i*2 for i in x]" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 4, 6]\n" ] } ], "source": [ "print a" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n", "4\n", "6\n" ] } ], "source": [ "for x in a:\n", " print x" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 2 0 2\n", "1 4 1 4\n", "2 6 2 6\n" ] } ], "source": [ "for i,x in enumerate(a):\n", " print i, x, i, x" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2, 3]" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "range(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sets\n", "\n", "* unordered collection, no duplicates\n", "* support set-theoretic operations like union or intersection" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "set([1, 2]) set([1, 4])\n" ] } ], "source": [ "a = set()\n", "b = set()\n", "a.add(1)\n", "a.add(2)\n", "b.add(1)\n", "b.add(4)\n", "print a, b" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "set([1, 2])\n" ] } ], "source": [ "a.add(1)\n", "print a" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ { "ename": "TypeError", "evalue": "'set' 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[0;32m----> 1\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mTypeError\u001b[0m: 'set' object does not support item assignment" ] } ], "source": [ "a[0] = 0" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{1}" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a & b #intersection" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{1, 2, 4}" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a | b #union" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{2}" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a - b #difference" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{2, 4}" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a ^ b #symmetric difference" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 3, 5]\n" ] } ], "source": [ "a = [1,1,3,5]\n", "b = set(a)\n", "b\n", "a = list(b)\n", "print a" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "3\n", "5\n" ] } ], "source": [ "for x in b:\n", " print x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## N-Tuples\n", "\n", "* Immutable" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(1, 2)" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = (1,2)\n", "a" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(1, 2, 3)" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b = (1,2,3)\n", "b" ] }, { "cell_type": "code", "execution_count": 71, "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[0;32m----> 1\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mTypeError\u001b[0m: 'tuple' object does not support item assignment" ] } ], "source": [ "a[0] = 0" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[0]" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": false }, "outputs": [ { "ename": "IndexError", "evalue": "tuple index out of range", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mIndexError\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[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mIndexError\u001b[0m: tuple index out of range" ] } ], "source": [ "a[2]" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [], "source": [ "zip(a,b)" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[(3, 1), (1, 1), (2, 1)]" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = (3,1,2)\n", "b = (1,1,1)\n", "zip(a,b)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[(3, 1), (1, 1), (2, 1)]" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = [3,1,2]\n", "b = [1,1,1]\n", "zip(a,b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dictionaries\n", "\n", "* Key: Value" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = dict()" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{0: 'string'}\n" ] } ], "source": [ "a[0] = \"string\"\n", "print a" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "string\n" ] } ], "source": [ "print a[0]" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [ { "ename": "KeyError", "evalue": "1", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyError\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[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mKeyError\u001b[0m: 1" ] } ], "source": [ "print a[1]" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{0: 'string', 'string': 0}\n" ] } ], "source": [ "a[\"string\"] = 0\n", "print a" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0, 'string']" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.keys()" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['string', 0]" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.values()" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 string\n", "string 0\n" ] } ], "source": [ "for key, value in a.iteritems():\n", " print key,value" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 string\n", "string 0\n" ] } ], "source": [ "for key in a.keys():\n", " print key, a[key]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Further useful data structures" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Counter({'c': 3, 'a': 2, 'b': 1})" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from collections import Counter\n", "\n", "a = [\"c\", \"a\", \"b\", \"a\", \"c\", \"c\"]\n", "Counter(a)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OrderedDict([(1, 3), (2, 5), ('string', 6)])\n" ] }, { "data": { "text/plain": [ "3" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from collections import OrderedDict\n", "\n", "a = OrderedDict()\n", "a[1] = 3\n", "a[2] = 5\n", "a[\"string\"] = 6\n", "print a\n", "a[1]" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n" ] } ], "source": [ "from collections import defaultdict\n", "\n", "#initialized with a function\n", "a = defaultdict(int)\n", "a[1] += 1\n", "print a[1]\n", "a[1] += 1\n", "print a[1]" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "wow\n" ] } ], "source": [ "a = defaultdict(int)\n", "if a[1] == 0:\n", " print \"wow\"" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "defaultdict(, {1: 0})\n" ] } ], "source": [ "print a" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print a.keys()" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = dict()\n", "a[1] = 0\n", "a[1] += 1" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print a[2]" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a.keys()" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "defaultdict( at 0x10477e758>, {1: defaultdict(, {2: 3})})\n", "defaultdict(, {2: 3})\n", "3\n" ] } ], "source": [ "a = defaultdict(lambda: defaultdict(int))\n", "a[1][2] = 3\n", "\n", "print a\n", "print a[1]\n", "print a[1][2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Performance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "https://wiki.python.org/moin/TimeComplexity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Referencing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Be careful with aliasing when working with mutable objects as Python works with pointers to objects" ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[10, 4, 5]\n" ] } ], "source": [ "a = [3,4,5]\n", "b = a\n", "b[0] = 10\n", "print a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Control flow" ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import collections\n", "a = collections.defaultdict()" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from collections import defaultdict\n", "a = defaultdict()" ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from collections import *\n", "a = Counter()" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello World!\n", "wohooo\n" ] } ], "source": [ "x = True\n", "\n", "print \"Hello World!\"\n", "\n", "if x == True:\n", " print \"wohooo\"" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "wohooo\n" ] } ], "source": [ "if x:\n", " print \"wohooo\"" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "larger than 2\n" ] } ], "source": [ "x = 3\n", "\n", "if x == 2:\n", " print \"2\"\n", "elif x > 2:\n", " print \"larger than 2\"\n", "else:\n", " print \"smaller than 2\"" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n", "3\n", "4\n" ] } ], "source": [ "x = 0\n", "while x < 5:\n", " print x\n", " x += 1" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 3\n", "x >= 3" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 in [3,4,5]" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 in {3:4, 4:4}" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "5 in {3:4, 4:4}" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n", "4\n", "5\n" ] } ], "source": [ "x = 0\n", "while True:\n", " x += 1\n", " print x\n", " if x == 5:\n", " break" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n", "4\n", "5\n", "6\n" ] } ], "source": [ "x = 0\n", "while True:\n", " x += 1\n", " print x\n", " if x == 5:\n", " pass\n", " if x == 6:\n", " break" ] }, { "cell_type": "code", "execution_count": 110, "metadata": { "collapsed": false }, "outputs": [ { "ename": "IndexError", "evalue": "list index out of range", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mIndexError\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[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m1\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\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m99\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mIndexError\u001b[0m: list index out of range" ] } ], "source": [ "x = [1,2,3]\n", "x[99]" ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cought an exception\n" ] } ], "source": [ "x = [1,2,3]\n", "try:\n", " x[99]\n", " print \"all fine\"\n", "except:\n", " print \"cought an exception\"" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = [1,2,3]\n", "\n", "if 4 in a:\n", " print \"something\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# File handling" ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "row1col1 row1col2\n", "\n", "row2col2 row2col2\n", "\n" ] } ], "source": [ "f = open(\"data.txt\")\n", "for line in f:\n", " print line" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['row1col1', 'row2col2']\n", "['row1col2', 'row2col2']\n", "{'row2col2': 'row2col2', 'row1col1': 'row1col2'}\n" ] } ], "source": [ "f = open(\"data.txt\")\n", "data1 = []\n", "data2 = []\n", "dict_data = {}\n", "for line in f:\n", " columns = line.strip().split(\" \")\n", " data1.append(columns[0])\n", " data2.append(columns[1])\n", " dict_data[columns[0]] = columns[1]\n", "print data1\n", "print data2\n", "print dict_data" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": true }, "outputs": [], "source": [ "f = open(\"data.txt\", 'a')\n", "f.write(\"row3col3 row2col3\\n\")\n", "f.write(\"row4col4 row4col4\\n\")" ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "row1col1 row1col2\n", "\n", "row2col2 row2col2\n", "\n", "row3col3 row2col3\n", "\n", "row4col4 row4col4\n", "\n" ] } ], "source": [ "f = open(\"data.txt\")\n", "for line in f:\n", " print line" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pandas --> Next tutorial" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Functions" ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def name(para):\n", " para += 1\n", " return para\n", "\n", "name(1)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3628800" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def factorial(n):\n", " if n<=0:\n", " return 1\n", " return n*factorial(n-1)\n", " \n", "factorial(10)" ] }, { "cell_type": "code", "execution_count": 122, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[3, 5, 6]\n" ] } ], "source": [ "def func(a):\n", " a[0] = 3\n", " \n", "x = [4,5,6]\n", "func(x)\n", "print x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Plotting with Matplotlib" ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: pylab import has clobbered these variables: ['f', 'text']\n", "`%matplotlib` prevents importing * from pylab and numpy\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#pip install matplotlib\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 130, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAAAAAABgT/l/J2ZZNuR/ThQAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = range(10)\n", "y = range(10)\n", "\n", "fig = plt.figure()\n", "plt.plot(x,y, label=\"linear\")" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = range(10)\n", "y = range(10)\n", "fig = plt.figure(figsize(12,10))\n", "ax1 = fig.add_subplot(2,1,1)\n", "ax2 = fig.add_subplot(2,1,2)\n", "ax1.plot(x,y, label=\"linear\")\n", "y = [factorial(i) for i in x]\n", "ax2.plot(x,y,label=\"factorial\")" ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 135, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n44qrWwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = range(10)\n", "y = range(10)\n", "fig = plt.figure()\n", "ax = fig.add_subplot(111)\n", "ax.plot(x,y, label=\"linear\")\n", "y = [factorial(i) for i in x]\n", "ax.plot(x,y,label=\"factorial\")" ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ax.set_yscale('log')\n", "fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Numpy" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 137, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = np.array([1,2,3])" ] }, { "cell_type": "code", "execution_count": 138, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "[1 2 3]\n" ] } ], "source": [ "print type(a)\n", "print a" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[0]" ] }, { "cell_type": "code", "execution_count": 140, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3,)" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.shape" ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a = np.array([[1,2,3],[4,5,6]])" ] }, { "cell_type": "code", "execution_count": 142, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2 3]\n", " [4 5 6]]\n" ] } ], "source": [ "print a" ] }, { "cell_type": "code", "execution_count": 143, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "6" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[1,2]" ] }, { "cell_type": "code", "execution_count": 144, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 3])" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[0,:]" ] }, { "cell_type": "code", "execution_count": 145, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(2, 3)" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.shape" ] }, { "cell_type": "code", "execution_count": 146, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0., 0., 0.],\n", " [ 0., 0., 0.],\n", " [ 0., 0., 0.]])" ] }, "execution_count": 146, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.zeros((3,3))" ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 1., 1., 1.],\n", " [ 1., 1., 1.],\n", " [ 1., 1., 1.]])" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.ones((3,3))" ] }, { "cell_type": "code", "execution_count": 148, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[1, 2, 3],\n", " [4, 5, 6]])" ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 149, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 3, 6, 9],\n", " [12, 15, 18]])" ] }, "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a * 3" ] }, { "cell_type": "code", "execution_count": 150, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 1, 4, 9],\n", " [16, 25, 36]])" ] }, "execution_count": 150, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a * a" ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[1, 2, 3],\n", " [4, 5, 6]])" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 152, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[14, 32],\n", " [32, 77]])" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.dot(a.T)" ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0.4949619 , 0.12587845, 0.58050931],\n", " [ 0.02695513, 0.99974167, 0.17466186],\n", " [ 0.21897059, 0.6037107 , 0.23323345]])" ] }, "execution_count": 153, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = np.random.random((3,3))\n", "a" ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from numpy.linalg import eig" ] }, { "cell_type": "code", "execution_count": 155, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([-0.0689059 , 0.62300922, 1.1738337 ]),\n", " array([[ 0.70327176, -0.9507704 , -0.57164664],\n", " [ 0.09736052, 0.18372854, -0.6235509 ],\n", " [-0.70422281, -0.24955855, -0.53329579]]))" ] }, "execution_count": 155, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eig(a)" ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = np.array([1,2,3], dtype=np.float32)" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1., 2., 3.], dtype=float32)" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 158, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = np.array([1,2,3], dtype=np.int32)" ] }, { "cell_type": "code", "execution_count": 159, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 3], dtype=int32)" ] }, "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Scipy" ] }, { "cell_type": "code", "execution_count": 161, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from scipy.sparse import csr_matrix" ] }, { "cell_type": "code", "execution_count": 162, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a = csr_matrix(np.zeros((3,3)))" ] }, { "cell_type": "code", "execution_count": 163, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "print a" ] }, { "cell_type": "code", "execution_count": 164, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0., 0., 0.],\n", " [ 0., 0., 0.],\n", " [ 0., 0., 0.]])" ] }, "execution_count": 164, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.toarray()" ] }, { "cell_type": "code", "execution_count": 165, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/sparse/compressed.py:730: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil_matrix is more efficient.\n", " SparseEfficiencyWarning)\n" ] } ], "source": [ "a[1,1] = 4." ] }, { "cell_type": "code", "execution_count": 166, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " (1, 1)\t4.0\n" ] } ], "source": [ "print a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# NetworkX\n", "\n", "## Module for the creation, manipulation and study of the structure, dynamics and functions of complex networks." ] }, { "cell_type": "code", "execution_count": 167, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import networkx as nx" ] }, { "cell_type": "code", "execution_count": 168, "metadata": { "collapsed": true }, "outputs": [], "source": [ "G = nx.Graph()" ] }, { "cell_type": "code", "execution_count": 169, "metadata": { "collapsed": true }, "outputs": [], "source": [ "G.add_node(1)" ] }, { "cell_type": "code", "execution_count": 170, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1]" ] }, "execution_count": 170, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.nodes()" ] }, { "cell_type": "code", "execution_count": 171, "metadata": { "collapsed": true }, "outputs": [], "source": [ "G.add_edge(1,2)" ] }, { "cell_type": "code", "execution_count": 172, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1, 2]" ] }, "execution_count": 172, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.nodes()" ] }, { "cell_type": "code", "execution_count": 173, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[(1, 2)]" ] }, "execution_count": 173, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.edges()" ] }, { "cell_type": "code", "execution_count": 174, "metadata": { "collapsed": true }, "outputs": [], "source": [ "G.add_edge(2,3)\n", "G.add_edge(1,3)\n", "G.add_edge(3,4)" ] }, { "cell_type": "code", "execution_count": 175, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\njRs3ZtSoUXnXu96VcrmcLl26FB2JGmLlEQAASKVSyYQJE7Jp06ZcfvnliiOv073oAAAAQPG+9a1v\n5ac//WkWLlyYHXbYoeg41CDlEQAAOrlrr702V1xxRZYsWZKdd9656DjUKGceAQCgE5s/f35OOumk\n3H777TnggAOKjkMNc+YRAAA6qRUrVuSkk07KjBkzFEeqUh4BAKATeuqppzJixIhceOGFGTZsWNFx\naAeURwAA6GRefPHFjBw5Mp/5zGdy2mmnFR2HdsKZRwAA6EQ2btyYY489NgMGDMjEiRON5GCrWXkE\nAIBOolKp5Oyzz06SXHbZZYojb4lRHQAA0En813/9V+65554sWLDALEfeMuURAAA6galTp2bixIlZ\nvHixWY5sE2ceAQCgg7v99tszduzYzJ8/P4MGDSo6Du2UM48AANCBLV++PGPHjs3MmTMVR94W5REA\nADqop556KvX19fnOd76Tww8/vOg4tHPKIwAAdEAvvvhi6uvr89nPfjannnpq0XHoAJx5BACADqal\npSXHHnts3vOe9+TKK680koPtQnkEAIAOpFKppFQq5emnn84Pf/jDdO9uwALbh1cSAAB0IOedd17u\nu+++LFiwQHFku/JqAgCADuLqq69OQ0NDlixZkt69excdhw7GtlUAAOgAbrvttpx88sm544478oEP\nfKDoOHRAblsFAIB2bvny5Tn55JMza9YsxZFWozwCAEA79uSTT2bEiBG56KKLcthhhxUdhw5MeQQA\ngHZq7dq1qa+vz4QJE3LKKacUHYcOzplHAABoh1paWjJy5Mi8973vzeWXX26WI61OeQQAgHamUqlk\n/Pjx+e1vf2uWI23GqwwAANqZb37zm7n//vvNcqRNeaUBAEA7MmXKlEyaNMksR9qcbasAANBO3Hrr\nrTn11FNzxx13ZP/99y86Dp2MlUcAAGgHmpubc8opp+T73/++4kghjOoAAIAa95vf/CYjR47MxRdf\nnL/9278tOg6dlPIIAAA1bMssx8997nM5+eSTi45DJ+bMIwAA1KiWlpbU19fnfe97X773ve+Z5Uih\nlEcAAKhBlUoln/70p/Pcc8/luuuuM5KDwnkFAgBADTr33HPzwAMPmOVIzfAqBACAGnPVVVflqquu\nypIlS7LTTjsVHQeS2LYKAAA1Zd68eTnttNPMcqTmKI8AAFAjmpubc+SRR+b73/++kRzUHKM6AACg\n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\n4BwxeHD22n33HHLggZk+fXo2bNiQJGlsbMzUqVNz/fXXp1evXgUnB2gfbFsFANq9mTNm5Auf/Ww+\nWKlkwosv5tj87/aqliTXJ7msd+8s79o1n54wIZMmT87ChQszcODA4kIDtDPKIwDQrl1y4YW54Ktf\nzXWvvpqDqjz3niTHJDnt7/4u37n00jZIB9BxKI8AQLs1c8aM/POnP507X30179nKv/NEko/26pVv\nNzbmpLFjWzMeQIeiPAIA7dL69euz9x575Ia1azPkTx47LcltSV5O0i/JuCT/+geP35Okfpdd8sTK\nldlxxx3bJjBAO+fCHACgXWpqasoBmze/rjgmyb8k+VWStUluTHJpkpv+4PGDkgzavDlNTU2tHxSg\ng1AeAYB26bLzz8+El156w8cGJXnHH/y5e5I9/uQ5E156KZedf34rpQPoeGxbBQDanTVr1mSv3XfP\nCy0tbzq0ekKSKUnWJ/lukrP+5PGWJO/cYYc8uXLlG86BBOCPWXkEANqd559/Prv36PGmxTFJLkvy\nUpJbk3w1yd1/8vgOSfrtuGNWrVrVSikBOhblEQDosLokOSzJ6CTTi40C0O4pjwBAu7Pbbrtl5fr1\nadnK57ck2ekNPvbchg3Zddddt284gA5KeQQA2p0ddtghf9m/f65/g8dWJpmR343p2JTk5iSzk4z6\nk+f9KMmQQYOcdwTYSsojANBu3H///fnc5z6Xd7/73dlht91ySc+er3tOlyRXJBmQZLck/5bkmiQf\n/pPnXbbzzplwzjmtHRmgw/hz58wBAAr34osvZvr06SmXy3nmmWcybty43H///dljjz2y9x575N5X\nX/2jWY/9ktxR5XPek2RFly458cQTWy03QEdj5REAqDmVSiVLly7N+PHj8573vCc33XRTzj333Pzq\nV7/K1772tbz73e9Ojx49cvGVV+b4nj3zxFv43E8kOaFXr1x85ZXZcccdW+tfAaDDsfIIANSM1atX\nZ+rUqSmXy3nllVcyfvz4PPTQQ+nfv/8bPv+ksWPzzFNP5aNf/Wque/XVHFTl89+T3xXHf/rGN3LS\n2LHbPT9AR9alUqlUig4BAHRelUolixYtSrlczvXXX5/hw4enVCrlsMMOS9euW7dJauaMGfnCZz+b\nAzZvzoSXXspx+d/fkLfkd5fjXLbzzlnRpUsuvvJKxRFgGyiPAEAhVq5cmSlTpqShoSFdu3ZNqVTK\n6aefnn79+m3T59uwYUOamppy2fnn594VK9Lv91tSn3755Rw0aFD+/qtfzYknnmirKsA2Uh4BgDaz\nefPm3H41oDZsAAAgAElEQVT77Zk4cWJuueWWHH/88SmVShk6dGi6dOmy3b7OmjVrsmrVqiTJaaed\nlnPPPTdHHHHEdvv8AJ2RM48AQKt76qmnctVVV6WhoSF9+vRJqVTKxIkT07dv31b5en369HltfuOQ\nIUPS3NysPAK8TcojANAqNm3alJtuuinlcjkLFizI6NGjM2vWrBx00EHbdZWxmrq6uvzkJz9ps68H\n0FEpjwDAdvX4449n0qRJmTRpUv7iL/4ipVIpU6dOTe/evQvJU1dXl8svv7yQrw3QkTjzCAC8bS0t\nLbn++utTLpdz991355RTTkmpVEpdXV3R0fLyyy9n9913z9q1a9O9u9+bA2wr76AAwDb7+c9/noaG\nhkyZMiX77rtvSqVSmpqa0rNnz6KjvWannXbKgAED8sgjj2TQoEFFxwFot7ZueBIAwO+tW7cu06dP\nz7BhwzJ06NBs3Lgx8+fPz8KFC3P66afXVHHcoq6uLs3NzUXHAGjXrDwCAFvlwQcfTLlcztSpU3Pg\ngQfmrLPOyqhRo9KjR4+io1U1ePDgNDc35+STTy46CkC7ZeURAHhTr7zySq666qocfPDBOfLII9Or\nV68sXbo08+bNy5gxY9pFcUysPAJsD1YeAYDXuf/++1MulzN9+vQMHTo0X/7yl1NfX99uL5ypq6vL\nsmXLio4B0K61z+8AAMB29+KLL2b69Okpl8t55plnMm7cuCxbtizvfve7i472tu29995Zu3Ztnn/+\n+ey2225FxwFol5RHAOjEKpVK7r777pTL5cyZMyeHH354zj333Bx99NHp1q1b0fG2m65du6auri4P\nPPBADjvssKLjALRLyiMAdEKrV6/O1KlTUy6X88orr2T8+PF56KGH0r9//6KjtZotW1eVR4BtozwC\nQCdRqVSyaNGilMvlXH/99Rk+fHguuuiiHHbYYenatePfoVdXV5ef/vSnRccAaLeURwDo4FauXJkp\nU6akoaEhXbt2TalUyne+853069ev6GhtavDgwWlsbCw6BkC71aVSqVSKDgEAbF+bN2/ObbfdlnK5\nnFtuuSXHH398SqVShg4dmi5duhQdrxAvvvhi+vfvn7Vr13ao85wAbcXKIwB0IE899VQmT56cxsbG\n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\nAQAAAAC2iEcAAAAAgC3iEQAAAABgi3gEAAAAANgiHgEAAAAAtohHAAAAAIAt4hEAAAAAYIt4BAAA\nAADYIh4BAAAAALaIRwAAAACALeIRAAAAAGCLeAQAAAAA2CIeAQAAAAC2iEcAAAAAgC3iEQAAAABg\ni3gEAAAAANgiHgEAAAAAtohHAAAAAIAt4hEAAAAAYIt4BAAAAADYIh4BAAAAALaIRwAAAACALeIR\nAAAAAGCLeAQAAAAA2CIeAQAAAAC2iEcAAAAAgC3iEQAAAABgi3gEAAAAANgiHgEAAAAAtohHAAAA\nAIAt4hEAAAAAYIt4BAAAAADYIh4BAAAAALaIRwAAAACALeIRAAAAAGCLeAQAAAAA2CIeAQAAAAC2\niEcAAAAAgC3iEQAAAABgi3gEAAAAANgiHgEAAAAAtohHAAAAAIAt4hEAAAAAYIt4BAAAAADYIh4B\nAAAAALaIRwAAAACALeIRAAAAAGCLeAQAAAAA2CIeAQAAAAC2iEcAAAAAgC3iEQAAAABgi3gEAAAA\nANgiHgEAAAAAtohHAAAAAIAt4hEAAAAAYIt4BAAAAADYIh4BAAAAALb+P5mtaN2TwW9oAAAAAElF\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "nx.draw(G, with_labels=True)" ] }, { "cell_type": "code", "execution_count": 176, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA48AAALxCAYAAAD8NpMKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3V+I3/Wd7/F3xMzomJjTjBNaUnXp1da4J2M8bWlRe6Fw\nerCNa2xJ8KotjYEsqFHXtFDthcIiSjlZJN3ZxdYKmgg6tg0IVdhCN9BKT9aGo+2dW6bHpTAmdTRb\nnRmcnAuNmjiTz+/P9+/n+3hczy/5Bor9vb7fz/c5q06ePHkyAAAA4CzOqfsCAAAAaD7jEQAAgCTj\nEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAA\ngCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTj\nEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAA\ngCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTj\nEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAA\ngCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTj\nEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAA\ngCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTj\nEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAA\ngCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTj\nEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgCTjEQAAgKRz674AAGibubm5OHbsWERE\njI+Px7p162q+IgAonyePANCD+fn5OHDgQFw9ORkbJybi2s2b49rNm2PjxERcPTkZBw4ciIWFhbov\n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\nAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS\n8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgA\nAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS\n8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgA\nAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS\n8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgA\nAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS\n8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgA\nAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS\n8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAECS8QgAAEDS/wdN\ni5nVoO6m/AAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nx.draw_circular(G)" ] }, { "cell_type": "code", "execution_count": 177, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nx.draw_spectral(G)" ] }, { "cell_type": "code", "execution_count": 178, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[2, 3]" ] }, "execution_count": 178, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.neighbors(1)" ] }, { "cell_type": "code", "execution_count": 179, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{1: 2, 2: 2, 3: 3, 4: 1}" ] }, "execution_count": 179, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.degree(G)" ] }, { "cell_type": "code", "execution_count": 180, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{1: 1.0, 2: 1.0, 3: 0.3333333333333333, 4: 0.0}" ] }, "execution_count": 180, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.clustering(G)" ] }, { "cell_type": "code", "execution_count": 181, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.degree(3)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "#Scikit learn\n", "\n", "Machine learning library\n", "http://scikit-learn.org/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The diabetes dataset consists of 10 physiological variables (age, sex, weight, blood pressure) measure on 442 patients, and an indication of disease progression after one year" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sklearn import datasets, linear_model\n", "\n", "# Load the diabetes dataset\n", "diabetes = datasets.load_diabetes()\n", "\n", "\n", "# Use only one feature\n", "diabetes_X = diabetes.data[:, np.newaxis]\n", "diabetes_X_temp = diabetes_X[:, :, 2]\n", "\n", "# Split the data into training/testing sets\n", "diabetes_X_train = diabetes_X_temp[:-20]\n", "diabetes_X_test = diabetes_X_temp[-20:]\n", "\n", "# Split the targets into training/testing sets\n", "diabetes_y_train = diabetes.target[:-20]\n", "diabetes_y_test = diabetes.target[-20:]\n", "\n", "# Create linear regression object\n", "regr = linear_model.LinearRegression()\n", "\n", "# Train the model using the training sets\n", "regr.fit(diabetes_X_train, diabetes_y_train)\n", "\n", "# The coefficients\n", "print('Coefficients: \\n', regr.coef_)\n", "# The mean square error\n", "print(\"Residual sum of squares: %.2f\"\n", " % np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2))\n", "# Explained variance score: 1 is perfect prediction\n", "print('Variance score: %.2f' % regr.score(diabetes_X_test, diabetes_y_test))\n", "\n", "# Plot outputs\n", "plt.scatter(diabetes_X_test, diabetes_y_test, color='black')\n", "plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue',\n", " linewidth=3)\n", "\n", "plt.xticks(())\n", "plt.yticks(())\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "diabetes.target" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "css": [ "" ], "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 }