{ "metadata": { "name": "9932_02_03" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Chapter 2, example 3\n", "====================\n", "\n", "Here we illustrate various interactive computing features of IPython by loading the social data set with the `NetworkX` module." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import networkx as nx" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tab completion is highly useful in an interactive session to explore an object's attributes and methods. Here, we look for ways to open our files from the Facebook data." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nx.read" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "cd fbdata" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(bookmark:fbdata) -> chapter2\\data\\facebook\n", "chapter2\\data\\facebook\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `read_edgelist` method looks adapted here as the `.edges` files contain list of person identifiers. This method returns a graph." ] }, { "cell_type": "code", "collapsed": false, "input": [ "g = nx.read_edgelist('0.edges')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's display the number of nodes and edges in the graph." ] }, { "cell_type": "code", "collapsed": false, "input": [ "len(g.nodes()), len(g.edges())" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 5, "text": [ "(333, 2519)" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's try to compute the radius of the graph." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nx.radius(g)" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "NetworkXError", "evalue": "Graph not connected: infinite path length", "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNetworkXError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mnx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mradius\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32mC:\\Python27\\lib\\site-packages\\networkx\\algorithms\\distance_measures.pyc\u001b[0m in \u001b[0;36mradius\u001b[1;34m(G, e)\u001b[0m\n\u001b[0;32m 140\u001b[0m \"\"\"\n\u001b[0;32m 141\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0me\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 142\u001b[1;33m \u001b[0me\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0meccentricity\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mG\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 143\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 144\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32mC:\\Python27\\lib\\site-packages\\networkx\\algorithms\\distance_measures.pyc\u001b[0m in \u001b[0;36meccentricity\u001b[1;34m(G, v, sp)\u001b[0m\n\u001b[0;32m 60\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mL\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 61\u001b[0m \u001b[0mmsg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"Graph not connected: infinite path length\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 62\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mnetworkx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mNetworkXError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 63\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 64\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mv\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmax\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlength\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mNetworkXError\u001b[0m: Graph not connected: infinite path length" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The error comes from the fact that the graph is not connected, so that the radius is infinite. We can try to obtain a connected component instead. Tab completion can help us finding the right function for that." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nx.connected" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "sg = nx.connected_component_subgraphs(g)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "[len(s) for s in sg]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 9, "text": [ "[324, 3, 2, 2, 2]" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We take the largest connected component." ] }, { "cell_type": "code", "collapsed": false, "input": [ "sg = sg[0]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can compute the radius and diameter of the graph." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nx.radius(sg), nx.diameter(sg)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 11, "text": [ "(6, 11)" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Appendind `?` to any object in IPython gives information about it." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nx.eccentricity?" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `%pdef`, `%pdoc` and `%psource` magic commands give different pieces of information about objects: the definition, the docstring, and the source code." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pdef nx.eccentricity" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " \u001b[0mnx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0meccentricity\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mG\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mv\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msp\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "%pdoc nx.eccentricity" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "%psource nx.eccentricity" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the `%timeit` magic command to evaluate the time an instruction takes." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%timeit nx.center(sg)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1 loops, best of 3: 723 ms per loop\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "nx.center(sg)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 17, "text": [ "[u'51', u'190', u'83', u'307', u'175', u'237', u'277', u'124']" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we write our own, unoptimized function that computes a graph's center. Here is the code contained in `center.py`:\n", "\n", " import networkx as nx\n", " g = nx.read_edgelist('0.edges')\n", " sg = nx.connected_component_subgraphs(g)[0]\n", " center = [node for node in sg.nodes() if nx.eccentricity(sg, node) == nx.radius(sg)]\n", " print(center)\n", "\n", "We can benchmark and profile it to find hotspots that should be optimized." ] }, { "cell_type": "code", "collapsed": false, "input": [ "cd ../.." ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "chapter2\n" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "run -t center.py" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[u'51', u'190', u'83', u'307', u'175', u'237', u'277', u'124']\n", "\n", "IPython CPU timings (estimated):\n", " User : 267.02 s.\n", " System : 0.00 s.\n", "Wall time: 267.02 s.\n" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "run -p center.py" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[u'51', u'190', u'83', u'307', u'175', u'237', u'277', u'124']\n", "\n" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We repeatedly call the exact same functions which explain why this function is so slow. Let's optimize it by caching the outputs of these functions. Here is the code contained in the file `center2.py`:\n", "\n", " import networkx as nx\n", " g = nx.read_edgelist('0.edges')\n", " sg = nx.connected_component_subgraphs(g)[0]\n", " # we compute the eccentricity once, for all nodes\n", " ecc = nx.eccentricity(sg)\n", " # we compute the radius once\n", " r = nx.radius(sg)\n", " center = [node for node in sg.nodes() if ecc[node] == r]\n", " print(center)\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "run -t center2.py" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[u'51', u'190', u'83', u'307', u'175', u'237', u'277', u'124']\n", "\n", "IPython CPU timings (estimated):\n", " User : 1.77 s.\n", " System : 0.00 s.\n", "Wall time: 1.77 s.\n" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "NetworkX allows to plot graphs with the help of Matplotlib. We use several options to make the graph nicer. You can find the [full documentation here](http://networkx.github.com/documentation/latest/reference/generated/networkx.drawing.nx_pylab.draw_networkx.html#networkx.drawing.nx_pylab.draw_networkx)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nx.draw_networkx(sg, node_size=15, edge_color='y', with_labels=False, alpha=.4, linewidths=0)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\nREHm/wGOfbpmfPNhCwAAAABJRU5ErkJggg==\n" } ], "prompt_number": 23 } ], "metadata": {} } ] }