Skip to content
Snippets Groups Projects
Introduction-to-Pandas--solution.ipynb 139 KiB
Newer Older
Andreas Herten's avatar
Andreas Herten committed
{"cells": [{"cell_type": "markdown", "metadata": {"exercise": "task"}, "source": ["# *Introduction to* Data Analysis and Plotting with Pandas\n", "## JSC Tutorial\n", "\n", "Andreas Herten, Forschungszentrum J\u00fclich, 26 February 2019"]}, {"cell_type": "markdown", "metadata": {"exercise": "onlysolution", "slideshow": {"slide_type": "skip"}}, "source": ["**Version: Solutions**"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "fragment"}}, "source": ["## Task Outline\n", "\n", "* [Task 1](#task1)\n", "* [Task 2](#task2)\n", "* [Task 3](#task3)\n", "* [Task 4](#task4)\n", "* [Task 5](#task5)\n", "* [Task 6](#task6)\n", "* [Task 7](#task7)\n", "* [Bonus Task](#taskb)"]}, {"cell_type": "code", "execution_count": 2, "metadata": {"exercise": "task", "slideshow": {"slide_type": "fragment"}}, "outputs": [], "source": ["import pandas as pd"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "slide"}}, "source": ["## Task 1\n", "<a name=\"task1\"></a>\n", "\n", "* Create data frame with\n", "    - 10 names of dinosaurs, \n", "    - their favourite prime number, \n", "    - and their favourite color\n", "* Play around with the frame\n", "* Tell me on poll when you're done: [pollev.com/aherten538](https://pollev.com/aherten538)"]}, {"cell_type": "markdown", "metadata": {"exercise": "nopresentation", "slideshow": {"slide_type": "skip"}}, "source": ["Jupyter Notebook 101:\n", "\n", "* Execute cell: `shift+enter`\n", "* New cell in front of current cell: `a`\n", "* New cell after current cell: `b`"]}, {"cell_type": "code", "execution_count": 21, "metadata": {"exercise": "task", "slideshow": {"slide_type": "fragment"}}, "outputs": [], "source": ["happy_dinos = {\n", "    \"Dinosaur Name\": [],\n", "    \"Favourite Prime\": [],\n", "    \"Favourite Color\": []\n", "}\n", "#df_dinos = "]}, {"cell_type": "code", "execution_count": 22, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "fragment"}}, "outputs": [{"data": {"text/html": ["<div>\n", "<style scoped>\n", "    .dataframe tbody tr th:only-of-type {\n", "        vertical-align: middle;\n", "    }\n", "\n", "    .dataframe tbody tr th {\n", "        vertical-align: top;\n", "    }\n", "\n", "    .dataframe thead th {\n", "        text-align: right;\n", "    }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", "  <thead>\n", "    <tr style=\"text-align: right;\">\n", "      <th>Dinosaur Name</th>\n", "      <th>Aegyptosaurus</th>\n", "      <th>Tyrannosaurus</th>\n", "      <th>Panoplosaurus</th>\n", "      <th>Isisaurus</th>\n", "      <th>Triceratops</th>\n", "      <th>Velociraptor</th>\n", "    </tr>\n", "  </thead>\n", "  <tbody>\n", "    <tr>\n", "      <th>Favourite Prime</th>\n", "      <td>4</td>\n", "      <td>8</td>\n", "      <td>15</td>\n", "      <td>16</td>\n", "      <td>23</td>\n", "      <td>42</td>\n", "    </tr>\n", "    <tr>\n", "      <th>Favourite Color</th>\n", "      <td>blue</td>\n", "      <td>white</td>\n", "      <td>blue</td>\n", "      <td>purple</td>\n", "      <td>violet</td>\n", "      <td>gray</td>\n", "    </tr>\n", "  </tbody>\n", "</table>\n", "</div>"], "text/plain": ["Dinosaur Name   Aegyptosaurus Tyrannosaurus Panoplosaurus Isisaurus  \\\n", "Favourite Prime             4             8            15        16   \n", "Favourite Color          blue         white          blue    purple   \n", "\n", "Dinosaur Name   Triceratops Velociraptor  \n", "Favourite Prime          23           42  \n", "Favourite Color      violet         gray  "]}, "execution_count": 22, "metadata": {}, "output_type": "execute_result"}], "source": ["happy_dinos = {\n", "    \"Dinosaur Name\": [\"Aegyptosaurus\", \"Tyrannosaurus\", \"Panoplosaurus\", \"Isisaurus\", \"Triceratops\", \"Velociraptor\"],\n", "    \"Favourite Prime\": [\"4\", \"8\", \"15\", \"16\", \"23\", \"42\"],\n", "    \"Favourite Color\": [\"blue\", \"white\", \"blue\", \"purple\", \"violet\", \"gray\"]\n", "}\n", "df_dinos = pd.DataFrame(happy_dinos).set_index(\"Dinosaur Name\")\n", "df_dinos.T"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "slide"}}, "source": ["## Task 2\n", "<a name=\"task2\"></a>\n", "\n", "* Read in `nest-data.csv` to `DataFrame`; call it `df`  \n", " *Data was produced with [JUBE](http://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/JUBE/_node.html), Pandas works **very** well together with JUBE*\n", "* Get to know it and play a bit with it\n", "* Tell me when you're done: [pollev.com/aherten538](https://pollev.com/aherten538)"]}, {"cell_type": "code", "execution_count": 30, "metadata": {"exercise": "task"}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["id,Nodes,Tasks/Node,Threads/Task,Runtime Program / s,Scale,Plastic,Avg. Neuron Build Time / s,Min. Edge Build Time / s,Max. Edge Build Time / s,Min. Init. Time / s,Max. Init. Time / s,Presim. Time / s,Sim. Time / s,Virt. Memory (Sum) / kB,Local Spike Counter (Sum),Average Rate (Sum),Number of Neurons,Number of Connections,Min. Delay,Max. Delay\n", "5,1,2,4,420.42,10,true,0.29,88.12,88.18,1.14,1.20,17.26,311.52,46560664.00,825499,7.48,112500,1265738500,1.5,1.5\n", "5,1,4,4,200.84,10,true,0.15,46.03,46.34,0.70,1.01,7.87,142.97,46903088.00,802865,7.03,112500,1265738500,1.5,1.5\n"]}], "source": ["!cat nest-data.csv | head -3"]}, {"cell_type": "code", "execution_count": 31, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "fragment"}}, "outputs": [{"data": {"text/html": ["<div>\n", "<style scoped>\n", "    .dataframe tbody tr th:only-of-type {\n", "        vertical-align: middle;\n", "    }\n", "\n", "    .dataframe tbody tr th {\n", "        vertical-align: top;\n", "    }\n", "\n", "    .dataframe thead th {\n", "        text-align: right;\n", "    }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", "  <thead>\n", "    <tr style=\"text-align: right;\">\n", "      <th></th>\n", "      <th>id</th>\n", "      <th>Nodes</th>\n", "      <th>Tasks/Node</th>\n", "      <th>Threads/Task</th>\n", "      <th>Runtime Program / s</th>\n", "      <th>Scale</th>\n", "      <th>Plastic</th>\n", "      <th>Avg. Neuron Build Time / s</th>\n", "      <th>Min. Edge Build Time / s</th>\n", "      <th>Max. Edge Build Time / s</th>\n", "      <th>...</th>\n", "      <th>Max. Init. Time / s</th>\n", "      <th>Presim. Time / s</th>\n", "      <th>Sim. Time / s</th>\n", "      <th>Virt. Memory (Sum) / kB</th>\n", "      <th>Local Spike Counter (Sum)</th>\n", "      <th>Average Rate (Sum)</th>\n", "      <th>Number of Neurons</th>\n", "      <th>Number of Connections</th>\n", "      <th>Min. Delay</th>\n", "      <th>Max. Delay</th>\n", "    </tr>\n", "  </thead>\n", "  <tbody>\n", "    <tr>\n", "      <th>0</th>\n", "      <td>5</td>\n", "      <td>1</td>\n", "      <td>2</td>\n", "      <td>4</td>\n", "      <td>420.42</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.29</td>\n", "      <td>88.12</td>\n", "      <td>88.18</td>\n", "      <td>...</td>\n", "      <td>1.20</td>\n", "      <td>17.26</td>\n", "      <td>311.52</td>\n", "      <td>46560664.0</td>\n", "      <td>825499</td>\n", "      <td>7.48</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "    </tr>\n", "    <tr>\n", "      <th>1</th>\n", "      <td>5</td>\n", "      <td>1</td>\n", "      <td>4</td>\n", "      <td>4</td>\n", "      <td>200.84</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.15</td>\n", "      <td>46.03</td>\n", "      <td>46.34</td>\n", "      <td>...</td>\n", "      <td>1.01</td>\n", "      <td>7.87</td>\n", "      <td>142.97</td>\n", "      <td>46903088.0</td>\n", "      <td>802865</td>\n", "      <td>7.03</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "    </tr>\n", "    <tr>\n", "      <th>2</th>\n", "      <td>5</td>\n", "      <td>1</td>\n", "      <td>2</td>\n", "      <td>8</td>\n", "      <td>202.15</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.28</td>\n", "      <td>47.98</td>\n", "      <td>48.48</td>\n", "      <td>...</td>\n", "      <td>1.20</td>\n", "      <td>7.95</td>\n", "      <td>142.81</td>\n", "      <td>47699384.0</td>\n", "      <td>802865</td>\n", "      <td>7.03</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "    </tr>\n", "    <tr>\n", "      <th>3</th>\n", "      <td>5</td>\n", "      <td>1</td>\n", "      <td>4</td>\n", "      <td>8</td>\n", "      <td>89.57</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.15</td>\n", "      <td>20.41</td>\n", "      <td>23.21</td>\n", "      <td>...</td>\n", "      <td>3.04</td>\n", "      <td>3.19</td>\n", "      <td>60.31</td>\n", "      <td>46813040.0</td>\n", "      <td>821491</td>\n", "      <td>7.23</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "    </tr>\n", "    <tr>\n", "      <th>4</th>\n", "      <td>5</td>\n", "      <td>2</td>\n", "      <td>2</td>\n", "      <td>4</td>\n", "      <td>164.16</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.20</td>\n", "      <td>40.03</td>\n", "      <td>41.09</td>\n", "      <td>...</td>\n", "      <td>1.58</td>\n", "      <td>6.08</td>\n", "      <td>114.88</td>\n", "      <td>46937216.0</td>\n", "      <td>802865</td>\n", "      <td>7.03</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "    </tr>\n", "  </tbody>\n", "</table>\n", "<p>5 rows \u00d7 21 columns</p>\n", "</div>"], "text/plain": ["   id  Nodes  Tasks/Node  Threads/Task  Runtime Program / s  Scale  Plastic  \\\n", "0   5      1           2             4               420.42     10     True   \n", "1   5      1           4             4               200.84     10     True   \n", "2   5      1           2             8               202.15     10     True   \n", "3   5      1           4             8                89.57     10     True   \n", "4   5      2           2             4               164.16     10     True   \n", "\n", "   Avg. Neuron Build Time / s  Min. Edge Build Time / s  \\\n", "0                        0.29                     88.12   \n", "1                        0.15                     46.03   \n", "2                        0.28                     47.98   \n", "3                        0.15                     20.41   \n", "4                        0.20                     40.03   \n", "\n", "   Max. Edge Build Time / s  ...  Max. Init. Time / s  Presim. Time / s  \\\n", "0                     88.18  ...                 1.20             17.26   \n", "1                     46.34  ...                 1.01              7.87   \n", "2                     48.48  ...                 1.20              7.95   \n", "3                     23.21  ...                 3.04              3.19   \n", "4                     41.09  ...                 1.58              6.08   \n", "\n", "   Sim. Time / s  Virt. Memory (Sum) / kB  Local Spike Counter (Sum)  \\\n", "0         311.52               46560664.0                     825499   \n", "1         142.97               46903088.0                     802865   \n", "2         142.81               47699384.0                     802865   \n", "3          60.31               46813040.0                     821491   \n", "4         114.88               46937216.0                     802865   \n", "\n", "   Average Rate (Sum)  Number of Neurons  Number of Connections  Min. Delay  \\\n", "0                7.48             112500             1265738500         1.5   \n", "1                7.03             112500             1265738500         1.5   \n", "2                7.03             112500             1265738500         1.5   \n", "3                7.23             112500             1265738500         1.5   \n", "4                7.03             112500             1265738500         1.5   \n", "\n", "   Max. Delay  \n", "0         1.5  \n", "1         1.5  \n", "2         1.5  \n", "3         1.5  \n", "4         1.5  \n", "\n", "[5 rows x 21 columns]"]}, "execution_count": 31, "metadata": {}, "output_type": "execute_result"}], "source": ["df = pd.read_csv(\"nest-data.csv\")\n", "df.head()"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "subslide"}}, "source": ["## Task 3\n", "<a name=\"task3\"></a>\n", "\n", "* Add a column to the Nest data frame called `Virtual Processes` which is the total number of threads across all nodes (i.e. the product of threads per task and tasks per node and nodes)\n", "* Remember to tell me when you're done: [pollev.com/aherten538](https://pollev.com/aherten538)"]}, {"cell_type": "code", "execution_count": 54, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "fragment"}}, "outputs": [{"data": {"text/html": ["<div>\n", "<style scoped>\n", "    .dataframe tbody tr th:only-of-type {\n", "        vertical-align: middle;\n", "    }\n", "\n", "    .dataframe tbody tr th {\n", "        vertical-align: top;\n", "    }\n", "\n", "    .dataframe thead th {\n", "        text-align: right;\n", "    }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", "  <thead>\n", "    <tr style=\"text-align: right;\">\n", "      <th></th>\n", "      <th>id</th>\n", "      <th>Nodes</th>\n", "      <th>Tasks/Node</th>\n", "      <th>Threads/Task</th>\n", "      <th>Runtime Program / s</th>\n", "      <th>Scale</th>\n", "      <th>Plastic</th>\n", "      <th>Avg. Neuron Build Time / s</th>\n", "      <th>Min. Edge Build Time / s</th>\n", "      <th>Max. Edge Build Time / s</th>\n", "      <th>...</th>\n", "      <th>Presim. Time / s</th>\n", "      <th>Sim. Time / s</th>\n", "      <th>Virt. Memory (Sum) / kB</th>\n", "      <th>Local Spike Counter (Sum)</th>\n", "      <th>Average Rate (Sum)</th>\n", "      <th>Number of Neurons</th>\n", "      <th>Number of Connections</th>\n", "      <th>Min. Delay</th>\n", "      <th>Max. Delay</th>\n", "      <th>Virtual Processes</th>\n", "    </tr>\n", "  </thead>\n", "  <tbody>\n", "    <tr>\n", "      <th>0</th>\n", "      <td>5</td>\n", "      <td>1</td>\n", "      <td>2</td>\n", "      <td>4</td>\n", "      <td>420.42</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.29</td>\n", "      <td>88.12</td>\n", "      <td>88.18</td>\n", "      <td>...</td>\n", "      <td>17.26</td>\n", "      <td>311.52</td>\n", "      <td>46560664.0</td>\n", "      <td>825499</td>\n", "      <td>7.48</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "      <td>8</td>\n", "    </tr>\n", "    <tr>\n", "      <th>1</th>\n", "      <td>5</td>\n", "      <td>1</td>\n", "      <td>4</td>\n", "      <td>4</td>\n", "      <td>200.84</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.15</td>\n", "      <td>46.03</td>\n", "      <td>46.34</td>\n", "      <td>...</td>\n", "      <td>7.87</td>\n", "      <td>142.97</td>\n", "      <td>46903088.0</td>\n", "      <td>802865</td>\n", "      <td>7.03</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "      <td>16</td>\n", "    </tr>\n", "    <tr>\n", "      <th>2</th>\n", "      <td>5</td>\n", "      <td>1</td>\n", "      <td>2</td>\n", "      <td>8</td>\n", "      <td>202.15</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.28</td>\n", "      <td>47.98</td>\n", "      <td>48.48</td>\n", "      <td>...</td>\n", "      <td>7.95</td>\n", "      <td>142.81</td>\n", "      <td>47699384.0</td>\n", "      <td>802865</td>\n", "      <td>7.03</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "      <td>16</td>\n", "    </tr>\n", "    <tr>\n", "      <th>3</th>\n", "      <td>5</td>\n", "      <td>1</td>\n", "      <td>4</td>\n", "      <td>8</td>\n", "      <td>89.57</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.15</td>\n", "      <td>20.41</td>\n", "      <td>23.21</td>\n", "      <td>...</td>\n", "      <td>3.19</td>\n", "      <td>60.31</td>\n", "      <td>46813040.0</td>\n", "      <td>821491</td>\n", "      <td>7.23</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "      <td>32</td>\n", "    </tr>\n", "    <tr>\n", "      <th>4</th>\n", "      <td>5</td>\n", "      <td>2</td>\n", "      <td>2</td>\n", "      <td>4</td>\n", "      <td>164.16</td>\n", "      <td>10</td>\n", "      <td>True</td>\n", "      <td>0.20</td>\n", "      <td>40.03</td>\n", "      <td>41.09</td>\n", "      <td>...</td>\n", "      <td>6.08</td>\n", "      <td>114.88</td>\n", "      <td>46937216.0</td>\n", "      <td>802865</td>\n", "      <td>7.03</td>\n", "      <td>112500</td>\n", "      <td>1265738500</td>\n", "      <td>1.5</td>\n", "      <td>1.5</td>\n", "      <td>16</td>\n", "    </tr>\n", "  </tbody>\n", "</table>\n", "<p>5 rows \u00d7 22 columns</p>\n", "</div>"], "text/plain": ["   id  Nodes  Tasks/Node  Threads/Task  Runtime Program / s  Scale  Plastic  \\\n", "0   5      1           2             4               420.42     10     True   \n", "1   5      1           4             4               200.84     10     True   \n", "2   5      1           2             8               202.15     10     True   \n", "3   5      1           4             8                89.57     10     True   \n", "4   5      2           2             4               164.16     10     True   \n", "\n", "   Avg. Neuron Build Time / s  Min. Edge Build Time / s  \\\n", "0                        0.29                     88.12   \n", "1                        0.15                     46.03   \n", "2                        0.28                     47.98   \n", "3                        0.15                     20.41   \n", "4                        0.20                     40.03   \n", "\n", "   Max. Edge Build Time / s  ...  Presim. Time / s  Sim. Time / s  \\\n", "0                     88.18  ...             17.26         311.52   \n", "1                     46.34  ...              7.87         142.97   \n", "2                     48.48  ...              7.95         142.81   \n", "3                     23.21  ...              3.19          60.31   \n", "4                     41.09  ...              6.08         114.88   \n", "\n", "   Virt. Memory (Sum) / kB  Local Spike Counter (Sum)  Average Rate (Sum)  \\\n", "0               46560664.0                     825499                7.48   \n", "1               46903088.0                     802865                7.03   \n", "2               47699384.0                     802865                7.03   \n", "3               46813040.0                     821491                7.23   \n", "4               46937216.0                     802865                7.03   \n", "\n", "   Number of Neurons  Number of Connections  Min. Delay  Max. Delay  \\\n", "0             112500             1265738500         1.5         1.5   \n", "1             112500             1265738500         1.5         1.5   \n", "2             112500             1265738500         1.5         1.5   \n", "3             112500             1265738500         1.5         1.5   \n", "4             112500             1265738500         1.5         1.5   \n", "\n", "   Virtual Processes  \n", "0                  8  \n", "1                 16  \n", "2                 16  \n", "3                 32  \n", "4                 16  \n", "\n", "[5 rows x 22 columns]"]}, "execution_count": 54, "metadata": {}, "output_type": "execute_result"}], "source": ["df[\"Virtual Processes\"] = df[\"Nodes\"] * df[\"Tasks/Node\"] * df[\"Threads/Task\"]\n", "df.head()"]}, {"cell_type": "code", "execution_count": 55, "metadata": {"exercise": "solution"}, "outputs": [{"data": {"text/plain": ["Index(['id', 'Nodes', 'Tasks/Node', 'Threads/Task', 'Runtime Program / s',\n", "       'Scale', 'Plastic', 'Avg. Neuron Build Time / s',\n", "       'Min. Edge Build Time / s', 'Max. Edge Build Time / s',\n", "       'Min. Init. Time / s', 'Max. Init. Time / s', 'Presim. Time / s',\n", "       'Sim. Time / s', 'Virt. Memory (Sum) / kB', 'Local Spike Counter (Sum)',\n", "       'Average Rate (Sum)', 'Number of Neurons', 'Number of Connections',\n", "       'Min. Delay', 'Max. Delay', 'Virtual Processes'],\n", "      dtype='object')"]}, "execution_count": 55, "metadata": {}, "output_type": "execute_result"}], "source": ["df.columns"]}, {"cell_type": "code", "execution_count": 56, "metadata": {"exercise": "task", "slideshow": {"slide_type": "fragment"}}, "outputs": [], "source": ["import matplotlib.pyplot as plt\n", "%matplotlib inline"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "slide"}}, "source": ["## Task 4\n", "<a name=\"task4\"></a>\n", "\n", "* Sort the data frame by the virtual proccesses\n", "* Plot `\"Presim. Time / s\"` and `\"Sim. Time / s\"` of our data frame `df` as a function of the virtual processes\n", "* Use a dashed, red line for `\"Presim. Time / s\"`, a blue line for `\"Sim. Time / s\"` (see [API description](https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot))\n", "* Don't forget to label your axes and to add a legend\n", "* Submit when you're done: [pollev.com/aherten538](https://pollev.com/aherten538)"]}, {"cell_type": "code", "execution_count": 61, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "fragment"}}, "outputs": [], "source": ["df.sort_values([\"Virtual Processes\", \"Nodes\", \"Tasks/Node\", \"Threads/Task\"], inplace=True)"]}, {"cell_type": "code", "execution_count": 62, "metadata": {"exercise": "solution"}, "outputs": [{"data": {"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEKCAYAAAAB0GKPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xl8VdW5//HPQwgJCIqSaJHBgOIAgoFGxOKQioiiFfWK0ksVbr1X2+rtVaut3taK/sSrVdFarcNVXmC1WpwqdWSoQ/WqGChaBJSoKFCUQUAZJfD8/lj7kJPknOSQ5OScJN/367Vfe5+19vDs7OQ8WXtY29wdERGRurTJdAAiItI8KGGIiEhKlDBERCQlShgiIpISJQwREUmJEoaIiKRECUNERFKihCEiIilRwhARkZS0zXQADVFQUOBFRUWZDkNEpFmZO3fuGncv3N3lmnXCKCoqoqysLNNhiIg0K2b2aX2W0ykpERFJiRKGiIikRAlDRERS0qyvYYhI49u+fTvLly9n69atmQ5FGig/P5/u3buTm5vbKOtTwhCRKpYvX06nTp0oKirCzDIdjtSTu7N27VqWL19Or169GmWdOiUlIlVs3bqVLl26KFk0c2ZGly5dGrWlqIQhIjUoWbQMjX0cW2XCWLAAfvlLWLs205GIiDQfrTJhLFkCN94In32W6UhEJJGcnByKi4s5/PDDGT16NJs3b27wOu+9914eeuihBq/n4osvpri4mL59+9K+fXuKi4spLi7miSee4Ne//jWzZs1q8DYSuemmm3jkkUfSsu5UtcqL3gUFYbx6dWbjEJHE2rdvz/z58wEYO3Ys9957L5dffvmuenfH3WnTJvX/eX/0ox81Smx33303AEuXLuW0007bFSfA2Wef3SjbSOSll15i2rRpaVt/KlplC6Mw6kFFCUMk+x177LGUl5ezdOlSDjnkEM4//3wOP/xwli1bxowZMzj66KMZNGgQo0ePZuPGjQBcddVV9O3blwEDBnDFFVcAMGHCBG699VYASktLueyyyygpKeGwww7jnXfe4ayzzqJPnz786le/qnes48eP54knngBC10VXX301xcXFlJSUMG/ePEaMGMGBBx7Ivffeu2uZW265hSOPPJIBAwZw7bXXJlzvV199xTfffENhYdXun1599dVdLZyBAwfy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\n", "text/plain": ["<Figure size 432x288 with 1 Axes>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["fig, ax = plt.subplots()\n", "ax.plot(df[\"Virtual Processes\"], df[\"Presim. Time / s\"], linestyle=\"dashed\", color=\"red\")\n", "ax.plot(df[\"Virtual Processes\"], df[\"Sim. Time / s\"], \"-b\")\n", "ax.set_xlabel(\"Virtual Process\")\n", "ax.set_ylabel(\"Time / s\")\n", "ax.legend();"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "slide"}}, "source": ["## Task 5\n", "<a name=\"task5\"></a>\n", "\n", "Use the NEST data frame `df` to:\n", "\n", "1. Make the virtual processes the index of the data frame (`.set_index()`)\n", "2. Plot `\"Presim. Program / s\"` and `\"Sim. Time / s`\" individually\n", "3. Plot them onto one common canvas!\n", "4. Make them have the same line colors and styles as before\n", "5. Add a legend, add missing labels\n", "\n", "* Done? Tell me! [pollev.com/aherten538](https://pollev.com/aherten538)"]}, {"cell_type": "code", "execution_count": 68, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "subslide"}}, "outputs": [], "source": ["df.set_index(\"Virtual Processes\", inplace=True)"]}, {"cell_type": "code", "execution_count": 69, "metadata": {"exercise": "solution"}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<Figure size 720x216 with 1 Axes>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["df[\"Presim. Time / s\"].plot(figsize=(10, 3));"]}, {"cell_type": "code", "execution_count": 70, "metadata": {"exercise": "solution"}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<Figure size 720x216 with 1 Axes>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["df[\"Sim. Time / s\"].plot(figsize=(10, 3));"]}, {"cell_type": "code", "execution_count": 71, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "subslide"}}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<Figure size 432x288 with 1 Axes>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["df[\"Presim. Time / s\"].plot();\n", "df[\"Sim. Time / s\"].plot();"]}, {"cell_type": "code", "execution_count": 72, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "fragment"}}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<Figure size 432x288 with 1 Axes>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["ax = df[[\"Presim. Time / s\", \"Sim. Time / s\"]].plot();\n", "ax.set_ylabel(\"Time / s\");"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "slide"}}, "source": ["## Task 6\n", "<a name=\"task6\"></a>\n", "\n", "* To your `df` NEST data frame, add a column with the unaccounted time (`Unaccounted Time / s`), which is the difference of program runtime, average neuron build time, minimal edge build time, minimal initialization time, presimulation time, and simulation time.  \n", "(*I know this is technically not super correct, but it will do for our example.*)\n", "* Plot a stacked bar plot of all these columns (except for program runtime) over the virtual processes\n", "* Remember: [pollev.com/aherten538](https://pollev.com/aherten538)"]}, {"cell_type": "code", "execution_count": 92, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "fragment"}}, "outputs": [], "source": ["cols = [\n", "    'Avg. Neuron Build Time / s', \n", "    'Min. Edge Build Time / s', \n", "    'Min. Init. Time / s', \n", "    'Presim. Time / s', \n", "    'Sim. Time / s'\n", "]\n", "df[\"Unaccounted Time / s\"] = df['Runtime Program / s']\n", "for entry in cols:\n", "    df[\"Unaccounted Time / s\"] = df[\"Unaccounted Time / s\"] - df[entry]"]}, {"cell_type": "code", "execution_count": 93, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "subslide"}}, "outputs": [{"data": {"text/html": ["<div>\n", "<style scoped>\n", "    .dataframe tbody tr th:only-of-type {\n", "        vertical-align: middle;\n", "    }\n", "\n", "    .dataframe tbody tr th {\n", "        vertical-align: top;\n", "    }\n", "\n", "    .dataframe thead th {\n", "        text-align: right;\n", "    }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", "  <thead>\n", "    <tr style=\"text-align: right;\">\n", "      <th></th>\n", "      <th>Runtime Program / s</th>\n", "      <th>Unaccounted Time / s</th>\n", "      <th>Avg. Neuron Build Time / s</th>\n", "      <th>Min. Edge Build Time / s</th>\n", "      <th>Min. Init. Time / s</th>\n", "      <th>Presim. Time / s</th>\n", "      <th>Sim. Time / s</th>\n", "    </tr>\n", "    <tr>\n", "      <th>Virtual Processes</th>\n", "      <th></th>\n", "      <th></th>\n", "      <th></th>\n", "      <th></th>\n", "      <th></th>\n", "      <th></th>\n", "      <th></th>\n", "    </tr>\n", "  </thead>\n", "  <tbody>\n", "    <tr>\n", "      <th>8</th>\n", "      <td>420.42</td>\n", "      <td>2.09</td>\n", "      <td>0.29</td>\n", "      <td>88.12</td>\n", "      <td>1.14</td>\n", "      <td>17.26</td>\n", "      <td>311.52</td>\n", "    </tr>\n", "    <tr>\n", "      <th>16</th>\n", "      <td>202.15</td>\n", "      <td>2.43</td>\n", "      <td>0.28</td>\n", "      <td>47.98</td>\n", "      <td>0.70</td>\n", "      <td>7.95</td>\n", "      <td>142.81</td>\n", "    </tr>\n", "  </tbody>\n", "</table>\n", "</div>"], "text/plain": ["                   Runtime Program / s  Unaccounted Time / s  \\\n", "Virtual Processes                                              \n", "8                               420.42                  2.09   \n", "16                              202.15                  2.43   \n", "\n", "                   Avg. Neuron Build Time / s  Min. Edge Build Time / s  \\\n", "Virtual Processes                                                         \n", "8                                        0.29                     88.12   \n", "16                                       0.28                     47.98   \n", "\n", "                   Min. Init. Time / s  Presim. Time / s  Sim. Time / s  \n", "Virtual Processes                                                        \n", "8                                 1.14             17.26         311.52  \n", "16                                0.70              7.95         142.81  "]}, "execution_count": 93, "metadata": {}, "output_type": "execute_result"}], "source": ["df[[\"Runtime Program / s\", \"Unaccounted Time / s\", *cols]].head(2)"]}, {"cell_type": "code", "execution_count": 94, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "-"}}, "outputs": [{"data": {"image/png": "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WURERETEBWqcRURERERcoMZZRERERMQFapxFRERERFygxllERERExAVqnEVEREREXGC50wXc7fyL+uDj6+u0LSCgiNPPaampnE9Kc2dZIiIiInIdNc53mI+vLzOH9bzlmPCIeYAaZxEREZE7SVM1RERERERcoMZZRERERMQFLjfOKSkptG3blpMnTwIwbNgwWrRoQfv27Wnfvj3fffcdAFFRUYSGhtKiRQumTZuWO1WLiIiIiLiZS3Ocd+3axciRIzl+/Lhj2969e1m0aBGBgYGObZcvX2b48OEsXLiQ0qVLExYWxqZNmwgJCTG8cBERERERd3LpivOyZcsYM2aMo0m+ePEip0+fZtSoUYSGhjJjxgxsNhu7d++mQoUKlC9fHovFQmhoKOvXr8/VExARERERcQeXrjhPmDDB6eeEhATq16/PuHHj8PPzIywsjBUrVuDn50dAQIBjXGBgIDExMdkqqESJwtkaf9X1j3C7HUZleUJNnlBDbuUYmaWa3J+lmtyfpZrcn6Wa3J+lmtyfld9rulaOHkdXvnx53n//fcfP3bp1Y/Xq1bRq1SrTWJPJlK3shIQUbDa742dXTzwuLvmWr2fnDTQqK6sco7NulJ2T/XIzSzW5N8dTs1ST+7NUk/uzVJP7s1ST+7Pyak1msylHF2tz9FSNgwcPsmHDBsfPdrsdi8VCqVKliI+Pd2yPjY11mgMtIiIiIpJX5ahxttvtTJw4kfPnz5Oens7SpUtp3rw5NWvW5NixY5w4cYKMjAzWrl1L48aNja5ZRERERMTtcjRVo2rVqvTt25fnnnsOq9VKixYtaNu2LQCTJk2if//+pKamEhIScsPpG2K8Gy3dDVq+W0RERMQo2Wqcv//+e8e/u3btSteuXTONadCgAWvWrLn9yiRbXFm6G7R8t4iIiEhOaeVAEREREREXqHEWEREREXGBGmcREREREReocRYRERERcYEaZxERERERF6hxFhERERFxgRpnEREREREXqHEWEREREXGBGmcREREREReocRYRERERcYEaZxERERERF6hxFhERERFxgRpnEREREREXqHEWEREREXGB5U4XkBVrehrhEfOyHCMiIiIikptcbpxTUlLo0qULH330EeXKlSMqKoqIiAhSU1N58sknGThwIAD79+9n5MiRpKSkUKdOHd566y0slpz35xZvH8YNWnvL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\n", "text/plain": ["<Figure size 864x288 with 1 Axes>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["df[[\"Unaccounted Time / s\", *cols]].plot(kind=\"bar\", stacked=True, figsize=(12, 4));"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "slide"}}, "source": ["## Task 7\n", "<a name=\"task7\"></a>\n", "\n", "* Create a pivot table based on the NEST `df` data frame\n", "* Let the `x` axis show the number of nodes; display the values of the simulation time `\"Sim. Time / s\"` for the tasks per node and threas per task configurations\n", "* Please plot a bar plot\n", "* Done? [pollev.com/aherten538](https://pollev.com/aherten538)"]}, {"cell_type": "code", "execution_count": 101, "metadata": {"exercise": "solution", "slideshow": {"slide_type": "fragment"}}, "outputs": [{"data": {"image/png": "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nH0YEREREZEy4/QLAUVEREREKhunT88QEREREalsFJpFREREROxQaBYRERERsUOhWURERETEDoVmERERERE7FJpFruGbb75h6dKlnDlzpsD2lStXllNFUhyxsbHEx8cDsGrVKqZNm8aWLVvKuSopiYiIiPIuQRx05MgR2+MffviBiIgIIiMjOXz4cDlWJY7avXs3KSkpAERHRzNlyhTWrFlTzlVVLFpyTuT/iYyM5OjRo9SvX5+tW7cyevRowsLCAOjatSvr1q0r5wqlKEuWLGHp0qVYLBZatWrF+fPneeyxx9i5cycPPPAAQ4cOLe8S5TrGjh1baNvOnTt59NFHAZg5c2ZZlyTF8L9/H5ctW8aXX35J9+7dAVi3bh09e/bkmWeeKecK5XqmT5/OsWPHmD17NsuWLeOf//wnf/3rX/n++++pXbs24eHh5V1iheD0m5tIvnPnzhW5/4477iijSqS4du3axbp16zCZTPTr14+BAwfi7u5Ox44d0XfMim/NmjVs2bKFxMREOnfuzL59+/Dw8KBnz5706NFDobkCq169OtHR0bz44otUq1YNgH379tGiRYtyrkyKIyoqis8//5xbb70VgB49etCjRw+F5gps7969bNy4ETc3N7777juioqJwd3enV69edO7cubzLqzAUmkvJkCFDiI2Nxc/Pr1DQMhgM7Nixo5wqE3usVisGgwGAO++8kw8//JDnnnuO2267zbZdKi6LxYK7uzsBAQEMHDgQDw8P2768vLxyrEzsGT16NO3ateP999/n1VdfpWXLlnz22Wd07dq1vEsTB+Tm5mKxWKhRowbe3t627e7u7hiNmg1akXl6epKUlISfnx81atQgPT0dd3d3MjIyMJkUFf9H0zNKSVpaGn369GHixIk0a9asvMuRYpg3bx4xMTGMGTPGdgv4Q4cOMWzYMLKzszl06FA5VyhFmTNnDvv37+fzzz/Hzc0NgJ9//pnw8HAefvhhhg0bVs4Vij1Xrlxh4sSJ3HHHHezZs4eNGzeWd0nigP79+3Pq1CkMBgOtW7cmIiKCH374gXfeeYeHH36YESNGlHeJch07d+5k0qRJdOrUidzcXPbt20dQUBB79uzhhRdeoFu3buVdYoWg0FyKjhw5wqpVq5g6dWp5lyLF9MMPP+Dn50f9+vVt286fP8/ixYt56623yrEyccSBAwd48MEHbc9PnjxJXFwcwcHB5ViVFNeqVavYunUrixcvLu9SpBhOnjxJSkoKTZs25dChQ6SmpvLwww+Xd1liR1xcHN988w2nT58mLy+PmjVr8sgjj9hOHolCs4iIiIiIXZpkJCIiIiJih0KziIiIiIgdCs0iIuXo7Nmz3H333axatarA9kWLFjFmzBiH+7l06RJ33323s8sTEZH/UmgWESlnRqORt99+m1OnTpV3KSIich1afE9EpJx5enry3HPP8dprr/Hll1/i7u5u25eamsrkyZP5+eefMRgMPPTQQ7z66quYTCa++uorZs+ejZeXF3/+858L9Llq1SpWrFiBxWKhevXqjB8/nvr163Pw4EEiIiKwWCxA/pryHTp0KNP3KyLiinSmWUSkAnjppZfw8vJi9uzZBbZPmzaN6tWrs3HjRtasWcPx48dZvHgxiYmJjBs3jg8++IC1a9cSEBBge83+/fuJjo5m2bJlREdH88ILLzB8+HAAPvjgA5577jnWrl3LjBkz2LdvX5m+TxERV6UzzSIiFYDRaOSdd96ha9eutG3b1rb9+++/Z8WKFRgMBtzd3enduzefffYZdevWpVGjRjRo0ACAXr168d577wHw3Xffcfr0aXr37m3rJzk5mStXrtCxY0emTJnCzp07ad26Na+++mrZvlERERel0CwiUkHccccdTJo0idGjR9OlSxcA2zSK/7FYLOTm5mIwGPjjMvt/vNWtxWIhLCyMN954w/Y8ISGBW265hd69e/PII4+wd+9edu/ezbx589iwYQO+vr5l8A5FRFyXpmeIiFQgHTt2pF27dnz22WcAtG3blmXLlmG1WsnOziYqKorWrVvTvHlzTpw4wc8//wzA2rVrbX20adOGzZs3k5CQAMCKFSt49tlnAejduzfHjh2jW7duTJ06lZSUFJKTk8v4XYqIuB6daRYRqWDCw8M5dOiQ7fG0adMIDQ0lJyeHhx56iBdffBF3d3ciIyN5/fXXqVKlSoHbhj/00EMMGjSIgQMHYjAY8PHxYd68eRgMBl5//XVmzJjB+++/j9FoZNiwYdSuXbu83qqIiMvQbbRFREREROzQ9AwRERERETsUmkVERERE7FBoFhERERGxQ6FZRERERMQOhWYRERERETsUmkVERERE7FBoFhERERGxQ6FZRERERMSO/wPgkCk9ZX0M6wAAAABJRU5ErkJggg==\n", "text/plain": ["<Figure size 864x288 with 1 Axes>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["df.pivot_table(\n", "    index=[\"Nodes\"],\n", "    columns=[\"Tasks/Node\", \"Threads/Task\"],\n", "    values=\"Sim. Time / s\",\n", ").plot(kind=\"bar\", figsize=(12, 4));"]}, {"cell_type": "markdown", "metadata": {"exercise": "task", "slideshow": {"slide_type": "fragment"}}, "source": ["<a name=\"taskb\"></a>\n", "\n", "* Bonus task\n", "    - Use `Sim. Time / s` and `Presim. Time / s` as values to show\n", "    - Show a stack of those two values inside the pivot table"]}, {"cell_type": "markdown", "metadata": {"exercise": "task"}, "source": ["<span class=\"feedback\">Tell me what you think about this tutorial! <a href=\"mailto:a.herten@fz-juelich.de\">a.herten@fz-juelich.de</a></span>"]}], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.2"}}, "nbformat": 4, "nbformat_minor": 2}