bachelorThesis/table_iii/table_iii_iv.ipynb

553 lines
731 KiB
Text
Raw Normal View History

2021-04-28 12:59:45 +00:00
{
"cells": [
{
"cell_type": "code",
2021-05-16 10:22:27 +00:00
"execution_count": 3,
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import sys\n",
"import glob\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from IPython.display import display, Markdown"
]
},
{
"cell_type": "code",
2021-05-16 10:22:27 +00:00
"execution_count": 4,
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [],
"source": [
2021-05-16 10:22:27 +00:00
"DIR = \"/Users/maggicl/Git/bachelorThesis/table_iii/\""
2021-04-28 12:59:45 +00:00
]
},
{
"cell_type": "code",
2021-05-16 10:22:27 +00:00
"execution_count": 5,
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [],
"source": [
"NAMES = {-1: \"No termination\", 0: \"SUBMIT\", 1: \"QUEUE\", 2: \"ENABLE\", \n",
" 3: \"SCHEDULE\", 4: \"EVICT\", 5: \"FAIL\", 6: \"FINISH\",\n",
" 7: \"KILL\", 8: \"LOST\", 9: \"UPDATE_PENDING\", 10: \"UPDATE_RUNNING\"}\n",
"\n",
"def rename(df, new, old):\n",
" df.rename(columns={old: new}, inplace=True)"
]
},
{
"cell_type": "code",
2021-05-16 10:22:27 +00:00
"execution_count": 6,
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"# Table III"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
2021-05-16 10:22:27 +00:00
"name": "stdout",
"output_type": "stream",
"text": [
"\\tableIII{A}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Task termination & \\# Evts. 95\\% p.tile & \\# Evts. mean & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" KILL & 58.0 & 27.395925 & 2.349579 & 0.213859 & 0.003412 & 3.395996 & 0.089576 \\\\\n",
" FINISH & 9.0 & 12.405370 & 0.019321 & 0.003779 & 2.153432 & 0.008150 & 0.008989 \\\\\n",
" FAIL & 108.0 & 50.039556 & 0.287778 & 11.061864 & 0.002098 & 0.467656 & 0.053144 \\\\\n",
" LOST & 7.0 & 8.847145 & 0.083348 & 0.001821 & 0.384190 & 1.329910 & 1.007933 \\\\\n",
" EVICT & 2924.0 & 428.550689 & 73.693595 & 0.768553 & 0.000179 & 28.766164 & 0.845501 \\\\\n",
" No termination & 84.0 & 14.818523 & 0.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{B}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Task termination & \\# Evts. 95\\% p.tile & \\# Evts. mean & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" KILL & 60.0 & 40.901041 & 3.351496 & 0.276305 & 0.003656 & 5.541079 & 0.033457 \\\\\n",
" FINISH & 20.0 & 17.277596 & 0.020444 & 0.020628 & 2.942579 & 0.011640 & 0.016278 \\\\\n",
" FAIL & 260.0 & 86.772419 & 0.518061 & 19.656798 & 0.000560 & 0.675392 & 0.088523 \\\\\n",
" LOST & 14.0 & 25.690455 & 0.257231 & 0.007420 & 1.928351 & 3.515436 & 2.015153 \\\\\n",
" EVICT & 1578.0 & 345.705559 & 64.816518 & 0.240214 & 0.000000 & 17.961539 & 1.028401 \\\\\n",
" No termination & 32.0 & 13.018130 & 0.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{C}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Task termination & \\# Evts. 95\\% p.tile & \\# Evts. mean & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" KILL & 32.0 & 24.230887 & 1.533237 & 0.116082 & 0.003994 & 3.799111 & 0.013670 \\\\\n",
" FINISH & 18.0 & 15.242628 & 0.017929 & 0.012701 & 2.470654 & 0.006020 & 0.006414 \\\\\n",
" FAIL & 156.0 & 187.030894 & 0.772823 & 48.445773 & 2.035378 & 0.756015 & 0.133687 \\\\\n",
" LOST & 28.0 & 22.385446 & 0.411365 & 0.007569 & 1.412201 & 2.751353 & 1.998665 \\\\\n",
" EVICT & 1748.0 & 404.108669 & 73.715527 & 1.812816 & 0.000166 & 22.908022 & 0.546198 \\\\\n",
" No termination & 96.0 & 21.315166 & 0.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{D}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Task termination & \\# Evts. 95\\% p.tile & \\# Evts. mean & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" KILL & 32.0 & 29.953873 & 1.960134 & 0.150521 & 0.002385 & 4.682411 & 0.016156 \\\\\n",
" FINISH & 18.0 & 23.105615 & 0.058651 & 0.019051 & 3.789050 & 0.009785 & 0.018699 \\\\\n",
" FAIL & 269.0 & 228.004975 & 0.496316 & 58.968210 & 0.809520 & 2.040396 & 0.324754 \\\\\n",
" LOST & 20.0 & 17.065721 & 0.014760 & 0.003577 & 0.079289 & 4.636283 & 1.999794 \\\\\n",
" EVICT & 1478.0 & 323.366130 & 62.000510 & 0.700268 & 0.000373 & 14.057514 & 0.627592 \\\\\n",
" No termination & 103.0 & 27.867403 & 0.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{E}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Task termination & \\# Evts. 95\\% p.tile & \\# Evts. mean & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" KILL & 258.0 & 55.877475 & 1.287917 & 0.056909 & 0.000185 & 12.159880 & 0.054997 \\\\\n",
" FINISH & 14.0 & 11.976806 & 0.013879 & 0.008435 & 1.998677 & 0.008241 & 0.026641 \\\\\n",
" FAIL & 138.0 & 450.526937 & 0.457703 & 111.471047 & 0.000000 & 0.455705 & 0.187991 \\\\\n",
" LOST & 14.0 & 11.899908 & 0.000000 & 0.000000 & 0.033976 & 3.131007 & 1.792164 \\\\\n",
" EVICT & 310.0 & 84.645189 & 11.780754 & 0.106119 & 0.000090 & 5.790960 & 0.654955 \\\\\n",
" No termination & 34.0 & 7.349165 & 0.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{F}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Task termination & \\# Evts. 95\\% p.tile & \\# Evts. mean & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" KILL & 162.0 & 45.039557 & 0.384065 & 0.098430 & 0.001178 & 9.804287 & 0.037783 \\\\\n",
" FINISH & 20.0 & 19.899709 & 0.019381 & 0.003510 & 3.007839 & 0.097934 & 0.023707 \\\\\n",
" FAIL & 220.0 & 164.043073 & 0.279352 & 39.257407 & 0.000023 & 1.549795 & 0.203997 \\\\\n",
" LOST & 36.0 & 25.002219 & 0.011815 & 0.000909 & 0.149586 & 7.283534 & 2.000428 \\\\\n",
" EVICT & 510.0 & 302.262347 & 23.973621 & 0.192394 & 0.000094 & 45.979997 & 0.374789 \\\\\n",
" No termination & 24.0 & 7.784905 & 0.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{G}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Task termination & \\# Evts. 95\\% p.tile & \\# Evts. mean & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" KILL & 641.00 & 130.054143 & 6.909204 & 0.135073 & 0.000033 & 25.275769 & 0.131106 \\\\\n",
" FINISH & 18.00 & 105.240418 & 0.015228 & 0.001655 & 14.153775 & 0.004879 & 0.158300 \\\\\n",
" FAIL & 40.00 & 40.121553 & 0.016111 & 8.592728 & 0.000000 & 0.338883 & 0.011310 \\\\\n",
" LOST & 4602.25 & 576.384120 & 1.931330 & 0.360515 & 48.094421 & 35.596567 & 3.534335 \\\\\n",
" EVICT & 2015.00 & 555.574743 & 77.429054 & 0.303127 & 0.000000 & 58.299330 & 0.653819 \\\\\n",
" No termination & 30.00 & 9.503553 & 0.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIII{H}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Task termination & \\# Evts. 95\\% p.tile & \\# Evts. mean & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" KILL & 388.0 & 74.425542 & 0.633338 & 0.169666 & 0.000231 & 17.172624 & 0.062799 \\\\\n",
" FINISH & 22.0 & 23.978294 & 0.023700 & 0.014129 & 3.632529 & 0.011111 & 0.028482 \\\\\n",
" FAIL & 487.0 & 170.153701 & 0.600483 & 37.599942 & 0.000000 & 2.866647 & 0.343806 \\\\\n",
" LOST & 386.4 & 94.666667 & 1.493333 & 2.400000 & 0.573333 & 14.040000 & 3.480000 \\\\\n",
" EVICT & 206.0 & 75.658064 & 6.732544 & 0.837154 & 0.000000 & 7.164722 & 0.421745 \\\\\n",
" No termination & 18.0 & 8.123506 & 0.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n"
]
2021-04-28 12:59:45 +00:00
}
],
"source": [
"display(Markdown(\"# Table III\"))\n",
"for cluster in \"abcdefgh\":\n",
" df = pd.read_csv(glob.glob(DIR + \"/table-iii-\" + cluster + \".csv/part-00000-*\")[0])\n",
" rename(df, \"# Evts. mean\", \"mean\")\n",
" rename(df, \"# Evts. 95% p.tile\", \"%95\")\n",
" \n",
" for i in [-1,4,5,6,7,8]:\n",
" df.loc[df.task_term == i, \"task_term\"] = NAMES[i]\n",
" rename(df, \"# \" + NAMES[i] + \" Evts. mean\", \"avg_count_\" + str(i))\n",
" for i in [0,1,2,3,9,10]:\n",
" del df[\"avg_count_\" + str(i)]\n",
" rename(df, \"Task termination\", \"task_term\")\n",
2021-05-16 10:22:27 +00:00
" print((\"\\\\tableIII{\" + cluster.upper() + \"}{\"))\n",
" print(df.to_latex(index=False), end=\"}\\n\")\n"
2021-04-28 12:59:45 +00:00
]
},
{
"cell_type": "code",
2021-05-16 10:22:27 +00:00
"execution_count": 7,
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"# Table IV"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
2021-05-16 10:22:27 +00:00
"name": "stdout",
"output_type": "stream",
"text": [
"\\tableIV{A}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Job termination & \\# Tasks mean & \\# Tasks 95\\% p.tile & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" No termination & 92.359436 & 174.3 & 23.263951 & 3.454474 & 23.047597 & 34.565608 & 0.707709 \\\\\n",
" EVICT & -1.000000 & -1.0 & NaN & NaN & NaN & NaN & NaN \\\\\n",
" FAIL & 90.792728 & 499.0 & 0.694942 & 0.683556 & 0.085957 & 1.849587 & 0.009730 \\\\\n",
" FINISH & 1.187092 & 1.0 & 0.004696 & 0.001341 & 1.072623 & 0.024396 & 0.000952 \\\\\n",
" KILL & 16.533171 & 10.0 & 1.045419 & 0.073867 & 0.461387 & 1.188720 & 0.044610 \\\\\n",
" LOST & 223.206593 & 1689.6 & 0.000000 & 0.000000 & 0.000000 & 1.034082 & 0.974598 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIV{B}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Job termination & \\# Tasks mean & \\# Tasks 95\\% p.tile & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" No termination & 112.422759 & 169.8 & 34.681161 & 0.711242 & 13.379533 & 38.794188 & 0.780483 \\\\\n",
" EVICT & 1.000000 & 1.0 & 1.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
" FAIL & 74.367804 & 374.0 & 2.003355 & 1.993765 & 0.266584 & 4.944145 & 0.034526 \\\\\n",
" FINISH & 6.304299 & 10.0 & 0.022380 & 0.008476 & 2.349304 & 0.012729 & 0.006484 \\\\\n",
" KILL & 69.853370 & 234.0 & 1.696449 & 0.157833 & 0.613748 & 3.008678 & 0.012092 \\\\\n",
" LOST & 320.020202 & 459.8 & 0.000000 & 0.000000 & 0.000000 & 2.959946 & 1.996875 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIV{C}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Job termination & \\# Tasks mean & \\# Tasks 95\\% p.tile & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" No termination & 96.399561 & 100.0 & 55.276973 & 7.552906 & 23.848867 & 41.578669 & 0.664107 \\\\\n",
" EVICT & 1.000000 & 1.0 & 1.000829 & 0.000000 & 0.000000 & 0.000415 & 0.000000 \\\\\n",
" FAIL & 41.982301 & 200.0 & 3.483606 & 0.997592 & 0.376438 & 3.998369 & 0.046439 \\\\\n",
" FINISH & 1.991485 & 1.0 & 0.021806 & 0.016914 & 1.565034 & 0.017401 & 0.001803 \\\\\n",
" KILL & 110.680808 & 652.0 & 0.627334 & 0.059076 & 0.656426 & 2.266794 & 0.006258 \\\\\n",
" LOST & 38.870091 & 48.6 & 0.000031 & 0.000311 & 0.000000 & 2.620721 & 1.833872 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIV{D}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Job termination & \\# Tasks mean & \\# Tasks 95\\% p.tile & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" No termination & 103.889987 & 120.00 & 41.421532 & 7.604808 & 18.179476 & 47.603502 & 0.661826 \\\\\n",
" EVICT & 1.000000 & 1.00 & 1.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
" FAIL & 43.355682 & 250.00 & 6.111993 & 0.948602 & 0.531390 & 6.497784 & 0.041077 \\\\\n",
" FINISH & 2.109260 & 2.00 & 0.268375 & 0.012614 & 1.723392 & 0.018567 & 0.005052 \\\\\n",
" KILL & 89.647948 & 283.00 & 1.013114 & 0.054374 & 0.283313 & 3.255675 & 0.006664 \\\\\n",
" LOST & 271.441748 & 2620.75 & 0.000000 & 0.000000 & 0.000000 & 5.938069 & 1.647084 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIV{E}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Job termination & \\# Tasks mean & \\# Tasks 95\\% p.tile & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" No termination & 350.929407 & 596.0 & 7.204391 & 2.074423 & 0.126290 & 46.646065 & 0.378274 \\\\\n",
" EVICT & 1.000000 & 1.0 & 1.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
" FAIL & 23.081125 & 25.0 & 0.246529 & 0.665546 & 0.716720 & 1.588119 & 0.066467 \\\\\n",
" FINISH & 7.776085 & 2.0 & 0.018677 & 0.029073 & 1.934488 & 0.020929 & 0.064920 \\\\\n",
" KILL & 88.790215 & 309.0 & 0.706293 & 0.028618 & 0.461084 & 7.572301 & 0.029122 \\\\\n",
" LOST & 5.374150 & 5.0 & 0.000000 & 0.000000 & 0.000000 & 3.234494 & 1.813924 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIV{F}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Job termination & \\# Tasks mean & \\# Tasks 95\\% p.tile & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" No termination & 217.718640 & 379.4 & 4.304676 & 1.315021 & 4.971122 & 48.118465 & 0.464429 \\\\\n",
" EVICT & 1.000000 & 1.0 & 1.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
" FAIL & 17.161251 & 8.0 & 0.621327 & 0.546356 & 0.426265 & 7.559244 & 0.034773 \\\\\n",
" FINISH & 2.940843 & 2.0 & 0.014704 & 0.051014 & 1.669860 & 0.162042 & 0.002623 \\\\\n",
" KILL & 103.888843 & 361.0 & 0.182630 & 0.063914 & 0.416684 & 5.824311 & 0.014161 \\\\\n",
" LOST & 3736.500000 & 18823.4 & 0.001491 & 0.000038 & 0.000000 & 6.298140 & 1.429604 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIV{G}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Job termination & \\# Tasks mean & \\# Tasks 95\\% p.tile & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" No termination & 342.090034 & 599.10 & 14.184405 & 0.626186 & 23.836017 & 46.002917 & 0.735801 \\\\\n",
" EVICT & 1.000000 & 1.00 & 1.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
" FAIL & 51.834803 & 250.00 & 0.555532 & 3.334848 & 0.607560 & 20.351992 & 0.176242 \\\\\n",
" FINISH & 8.519166 & 36.00 & 0.001733 & 0.629809 & 1.759677 & 0.005452 & 0.004575 \\\\\n",
" KILL & 37.054914 & 100.00 & 5.687172 & 0.064640 & 0.080370 & 19.166260 & 0.059132 \\\\\n",
" LOST & 190.500000 & 358.35 & 0.000000 & 0.000000 & 0.000000 & 1.994751 & 1.994751 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n",
"\\tableIV{H}{\n",
"\\begin{tabular}{lrrrrrrr}\n",
"\\toprule\n",
"Job termination & \\# Tasks mean & \\# Tasks 95\\% p.tile & \\# EVICT Evts. mean & \\# FAIL Evts. mean & \\# FINISH Evts. mean & \\# KILL Evts. mean & \\# LOST Evts. mean \\\\\n",
"\\midrule\n",
" No termination & 321.133053 & 546.9 & 3.470078 & 0.907801 & 3.316902 & 44.535824 & 0.315120 \\\\\n",
" EVICT & 1.000000 & 1.0 & 1.000000 & 0.000000 & 0.000000 & 0.000000 & 0.000000 \\\\\n",
" FAIL & 20.504293 & 1.0 & 0.114090 & 2.300036 & 0.980635 & 12.833466 & 0.046833 \\\\\n",
" FINISH & 4.278193 & 14.0 & 0.005406 & 0.152814 & 1.778038 & 0.013567 & 0.012663 \\\\\n",
" KILL & 11.022705 & 3.0 & 0.235500 & 0.102899 & 0.287701 & 11.336956 & 0.031148 \\\\\n",
" LOST & 3.400000 & 10.6 & 0.000000 & 0.000000 & 0.000000 & 0.235294 & 1.705882 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"}\n"
]
}
],
"source": [
"display(Markdown(\"# Table IV\"))\n",
"for cluster in \"abcdefgh\":\n",
" df = pd.read_csv(glob.glob(DIR + \"/table-iv-evts-\" + cluster + \".csv/part-00000-*\")[0], header=None,\n",
" names=[\"term\"] + [str(i) for i in range(0,11)])\n",
" df2 = pd.read_csv(glob.glob(DIR + \"/table-iv-tasks-\" + cluster + \".csv/part-00000-*\")[0], header=None,\n",
" names=[\"term\", \"# Tasks mean\", \"# Tasks 95% p.tile\"])\n",
" df[\"term\"] = df[\"term\"].astype(int)\n",
" df2[\"term\"] = df2[\"term\"].astype(int)\n",
" df.sort_values(by=\"term\", inplace=True)\n",
" df2.sort_values(by=\"term\", inplace=True)\n",
" \n",
" df = df2.merge(df, on=\"term\", how=\"outer\")\n",
"\n",
" rename(df, \"# Evts. mean\", \"mean\")\n",
" rename(df, \"# Evts. 95% p.tile\", \"%95\")\n",
" \n",
" for i in [-1,4,5,6,7,8]:\n",
" df.loc[df.term == i, \"term\"] = NAMES[i]\n",
" rename(df, \"# \" + NAMES[i] + \" Evts. mean\", str(i))\n",
" for i in [0,1,2,3,9,10]:\n",
" del df[str(i)]\n",
" rename(df, \"Job termination\", \"term\")\n",
" print((\"\\\\tableIV{\" + cluster.upper() + \"}{\"))\n",
" print(df.to_latex(index=False), end=\"}\\n\")\n"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
"max_count = 50"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
2021-04-28 12:59:45 +00:00
{
2021-05-16 10:22:27 +00:00
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-101-e0a194a108e9>:18: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
" dft[i][dfi.succ == 0][dfi.non == 0][\"perc\"] = 0\n"
]
2021-04-28 12:59:45 +00:00
},
{
"data": {
2021-05-16 10:22:27 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-16 10:22:27 +00:00
"<Figure size 1224x720 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-16 10:22:27 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-16 10:22:27 +00:00
"<Figure size 1224x720 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-16 10:22:27 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-16 10:22:27 +00:00
"<Figure size 1224x720 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-16 10:22:27 +00:00
"image/png": "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
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-16 10:22:27 +00:00
"<Figure size 1224x720 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-16 10:22:27 +00:00
"image/png": "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rrz20Y9+NB/60Ie2raZ+3KP9/CSfW/X1keXXzlMUxQ8URXFvURT3Hj16tA8fDQAAwIWuPaPd/vXWt7515Xvf9m3flgceeCCvf/3r1/zZoihy11135Y//+I9z8ODBXHfddXnb296W5z3vedtWbz+WoRVrvFau9WBZlr+S5FeS5OUvf/mazwAAAMBqi4uL635v//79WVhYOO/1xx57bOXPz3ve8/Le97533fd497vfvZXyztOPjvaRJJev+vpAkif68L4AAADwrNOPoP2BJG8oWr4qyfGyLL/Qh/cFAACAZ51Orve6I8nXJpksiuJIkp9MMpokZVm+M8ndaV3t9Uha13t9z3YVCwAAADvdpkG7LMsNLyIry7JM8kN9qwgAAACexfpxdBwAAABYJmhv4gOHP5DX3PWanFw4OexSAAAAeBYQtDdxauFUPvvMZ3O6eXrYpQAAAFyUKpXKWfdot6/u+oVf+IU0Go0cP3585dk///M/z2te85okrWu73vzmNw+83n7co31Bq1fqSZK5xbkhVwIAAHBx2rVrVz7xiU+c9/odd9yRV7ziFbnrrrty++23D76wdehob0LQBgAA2HkOHz6cmZmZvP3tb88dd9wx7HLOoqO9iXp1OWg3BW0AAOAi91/fmnzxUH/f80tvSG79Pzd85PTp07nxxhuTJFdffXXuuuuu3HHHHbntttvyNV/zNXnooYfy5JNP5jnPeU5/a+uRoL2JRqWRREcbAABgWNY6On7nnXfmrrvuysjISL7lW74l73vf+/JDP7Qzbp4WtDfRPjo+uzg75EoAAACGbJPO86Dcd999efjhh/MN3/ANSZL5+fm84AUv2DFB24z2JlZmtB0dBwAA2BHuuOOOvO1tb8tjjz2Wxx57LE888UQ+//nP57Of/eywS0siaG9qZUbb0XEAAIAd4c4778zrXve6s1573etelzvvvPO8Z9/97nfnwIEDK7+OHDmy7fU5Or4JM9oAAADDNTMzc9bXjz766HnP/PzP//zKn7/2a782SXL77bcP5dovHe1NmNEGAACgG4L2JhrV5Y62GW0AAAA6IGhvolapJdHRBgAAoDOC9ibaR8fnF+eHXAkAAADPBoL2JkaKkdRGajraAAAAdETQ7kC9WjejDQAAQEcE7Q7UK3XXewEAAAzJ+Pj4yp/vvvvuXHvttXn88cfztre9LT/7sz+bpHWV1/vf//6zfu6xxx7L9ddfP9BaE/dod6ReqTs6DgAAMGR/+qd/mre85S35oz/6o1xxxRXDLmddgnYHGpWGZWgAAABD9Bd/8Rd54xvfmLvvvjsHDx4cdjkbErQ7UK/WM9vU0QYAAC5uP/3XP51PHftUX9/zxftenB955Y9s+Mzc3Fxe+9rX5s///M/z4he/uK+fvx3MaHegUWmY0QYAABiS0dHR3HLLLXnXu9417FI6oqPdgVqlllPNU8MuAwAAYKg26zxvl5GRkbz3ve/N13/91+enfuqn8mM/9mNDqaNTOtodMKMNAAAwXLt3785//s//Ob/927+94zvbgnYHzGgDAAAM3759+/KHf/iHefvb357f//3fP+/7P/iDP5gDBw7kwIEDufnmm5MkDz300MprBw4cyPve975tr9PR8Q64RxsAAGB4ZmZmVv58+eWX59FHH02SvPa1r115/d3vfveaP7u
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-16 10:22:27 +00:00
"<Figure size 1224x720 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-16 10:22:27 +00:00
"image/png": "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ZVtTGEF7pOnddqQbrbXXW2uPstYelUgkQvhqAAAAAMBUl+/Rzv+4+OKLC++9973v1RNPPKFVq1aN+FljjG6//Xb99re/1bJly3T44Ydr7dq1OvDAA8u23jBOHW+WtHjA6wZJrSE8FwAAAAAAZTKZUd9LJBJKpVLDrm/ZsqXw6wMPPFC33HLLqM+48cYbJ7K8YcKoaN8p6XST8z8kddGfDQAAAADYXwUZ73WzpDdJihtjmiV9QVJUkqy110raoNxor83Kjff6ULkWCwAAAABAtQty6viY56P3nzZ+XmgrAgAAAACghoWxdRwAAAAAAPQjaAMAAAAAECKC9jjufPZOnXT7SepJ9VR6KQAAAACAGkDQHsee1B5t3bVVe9N7K70UAAAAANgvOY4zaI52fnTXt771Lfm+r66ursK99913n0466SRJubFd559//qSvN4w52lOa53iSpL5MX4VXAgAAAAD7p2nTpumxxx4bdv3mm2/W0Ucfrdtvv11r1qyZ/IWNgor2OApBO03QBgAAAIBq8eyzz6q7u1uXXnqpbr755kovZxAq2uPwXCraAAAAACBJ+vXF0kt/D/eZBxwpnfiVMW/Zu3evVq5cKUlaunSpbr/9dt18881avXq13vCGN2jTpk1qa2tTfX19uGsrEUF7HL7jSyJoAwAAAECljLR1fN26dbr99tsViUT07ne/W7feeqvOO++8Cq1wMIL2OPJbx3szvRVeCQAAAABU2DiV58ny+OOP65lnntFb3/pWSVIymdQrXvGKqgna9GiPw3f7K9r0aAMAAABAVbj55pu1du1abdmyRVu2bFFra6taWlq0devWSi9NEkF7XDEnJomKNgAAAABUi3Xr1umUU04ZdO2UU07RunXrht174403qqGhofCjubm57Otj6/g48j3ayUyywisBAAAAgP1Td3f3oNfPP//8sHu++c1vFn79pje9SZK0Zs2aioz9oqI9Dnq0AQAAAADFIGiPgx5tAAAAAEAxCNrjoKINAAAAACgGQXsc+cPQmKMNAAAAAAiCoD2OiIkoFomxdRwAAAAAEAhBOwDP9ahoAwAAAAACIWgH4Ds+QRsAAAAAKmTmzJmFX2/YsEErVqzQtm3btHbtWn3961+XlBvlddtttw363JYtW3TEEUdM6lol5mgH4jkeh6EBAAAAQIX97ne/0wUXXKDf/OY3WrJkSaWXMyqCdgC+69OjDQAAAAAV9MADD+iss87Shg0btGzZskovZ0wE7QBiToyKNgAAAID93hX/7wo9vf3pUJ95yPxD9NljPjvmPX19fTr55JN133336ZBDDgn1+8uBHu0AfMdXMpOs9DIAAAAAYL8UjUb1ute9TjfccEOllxIIFe0APMdTT7qn0ssAAAAAgIoar/JcLpFIRLfccove8pa36LLLLtMll1xSkXUERUU7AM/16NEGAAAAgAqaPn267rrrLv30pz+t+so2QTsAxnsBAAAAQOXNnz9fd999ty699FL98pe/HPb+2WefrYaGBjU0NOi4446TJG3atKlwraGhQbfeemvZ18nW8QA4DA0AAAAAKqe7u7vw68WLF+v555+XJJ188smF6zfeeOOIn02lUmVd20ioaAfAYWgAAAAAgKAI2gF4rqfeNBVtAAAAAMD4CNoB0KMNAAAAAAiKoB2A53jK2Ix
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-16 10:22:27 +00:00
"<Figure size 1224x720 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
2021-04-28 12:59:45 +00:00
},
"output_type": "display_data"
},
{
"data": {
2021-05-16 10:22:27 +00:00
"image/png": "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tImIiIiIiCiSVpnnpE1PT+PIkSP4zGc+gw9+8IP4whe+cMl9rrnmGnzgAx9I9Fxc70VERERERES71i233IJf+7Vfw5VXXompqalLvv6jP/qjWF9fx3ve857wti9/+cv4zGc+E9uZGGgTERERERFRX1M92uqf173udeHXnve85+HrX/86br755qaPFULgnnvuwSc/+UlceeWVuOaaa/DmN78ZExMTsZ2XpeNERERERETU1zzP2/Zr4+PjcBznkttnZmbCX09MTOCuu+7a9jnuuOOObo53CWa0iYiIiIiIiDRioE1ERERERESkEQNtIiIiIiIiIo1aBtpCiL8UQlSFEP+5zdeFEOKPhRDfEUI8KIT4Hv3HJCIiIiIiItodomS07wDwrB2+fiOAqxv//CKAP+v+WERERERERES7U8tAW0r5WQCnd7jLTQD+Sga+CGBECFHUdUAiIiKi7UjXRemXfhmrDz7Y03O4tRpOveSlcBcWenqOfrH8jx9G5fbbe30MLPzZn+H03/5tr4+Bud/4TSx/+CO9PgYRJUhHj/YkgNlNvy81bruEEOIXhRD3CSHuq9VqGl6aiIiI9jJnfh7nPvlJrHzmsz09x4X/+ArO/+u/4sJXvtLTc/SLsx/5CM7cdTeklD09x9IH/w5nexzg+hcu4OxHPoLyb/821h95pKdnIdrNUqnUlj3aanXXH/zBHyCbzWJ5eTm877333otnP/vZAIK1Xa9+9asTP6+OQFs0ua3p36pSyr+QUn6flPL7xsfHNbw0ERER7WWObTf+Xe7pOdzG67t2pafn6BfOXAlydRX+pg++SZO+D6dSgdvj5I56fbm2hrnf+E349XpPz0O0Ww0MDOCBBx4I/zly5AgA4M4778RTnvIU3HPPPb094EV0BNolANObfj8FYF7D8xIRERHtyK0Ega1btnt6Dqfx+m6lt+foB1JK1EtzAACn0rsLD97p04DjwK1We5pZd6tVAMDBF/0c1r/5TdTe8c6enYXocvPII49gZWUFt912G+68885eH2cLU8Nz/AOAVwshTgC4HsCylLK3l5WJiIhoT9jIaPc40A7PwYy2d/o05OoqAMApl5F97GN7cg518UOur8M/exap4eHenEMF2s9/PuD5OP1//y/2/dAPYuiHf7gn5yHq2j+9DrC/pvc5C9cBN/7ejndZXV3F8ePHAQBHjx7FPffcgzvvvBO33HILfviHfxgPP/wwqtUqcrmc3rN1KMp6rzsBfAHAY4UQJSHES4QQrxBCvKJxl48C+C6A7wB4D4BXxnZaIiIiok1UqbZj273NWtoqo81A2ymVwl/3spR+c3WByir35BzVoHTczOWQe81vInP11Zh/3es5OI+oTZtLx1WZ+IkTJ3DzzTfDMAz81E/9FO6+++4en3JDy4y2lPKWFl+XAF6l7UREREREETmNYEpeuAD/3DmkDhzozTlURpuBNpy5uY1f97B33tnUTuDWashcfXVPzuHWahDZLIz9+yGEwMQ73o6Zn3ke5t/wBky/+90Qotm4I6I+1iLznJQHH3wQ3/72t/FjP/ZjAIB6vY5jx47hVa/qj9BUR482ERERUU+4dgVoBCpOj/q0peuGGVO3x5n1fqD6s43h4b7JaDs9zWhXYY6PhwF19jGPQe61v4Xzn/0czvz1+3p2LqLd7s4
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-16 10:22:27 +00:00
"<Figure size 1224x720 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
},
2021-04-28 12:59:45 +00:00
"output_type": "display_data"
},
{
"data": {
2021-05-16 10:22:27 +00:00
"image/png": "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y1/+Mt/97nfzm9/8Zp01++yzT77zne9s0LqaeY82AAAATEpHHnlk3vnOd2a33XbL7Nmz1/n+hS98YXp6evLVr3511bErrrgiv/zlLyesJkEbAACASW1wRnvw573vfe+q71796lfn2muvzRFHHDHkuaWUXHLJJfnP//zP7Lbbbtlnn31y2mmnZfvtt5+weluxGRoAAABMmP7+/mG/mzVrVpYvX77O8dtuu23V79tvv30uuuiiYa9x3nnnjae8dehoAwAAQAsJ2gAAANBCgjYAAAC0kKANAAAALSRoAwAAQAsJ2iP44c0/zMsueVkeWf5Iu0sBAADgcUDQHsGjyx/N7Q/enmV9y9pdCgAAwJRUq9XWeI/24Ku7PvOZz6TRaGTp0qWr1v7iF7/Iy172siQrXtt10kknbfB6vUd7BPVaPUnS09/T5koAAACmpo022ihXX331OscvvPDCHHDAAbnkkkty3HHHbfjChqGjPQJBGwAAYPK5+eab8/DDD+eMM87IhRde2O5y1qCjPYJ658qg3SdoAwAAU9x/vDe594+tvea2T00O/dh6lyxbtixz5sxJkuy666655JJLcuGFF+bII4/Mc57znNxwww1ZuHBhtt5669bWNkaC9ggatUYSHW0AAIB2GerR8blz5+aSSy5JR0dHXvnKV+biiy/O2972tjZVuCZBewRdta4kSXd/d5srAQAAaLMROs8byjXXXJMbb7wxL3nJS5Ikvb29edKTnjRpgrYZ7REMdrR7+3vbXAkAAADJik3QTjvttNx222257bbbcvfdd+euu+7K7bff3u7SkgjaIxqc0e7u09EGAACYDObOnZvDDz98jWOHH3545s6du87a8847L7Nnz171M3/+/Amvz6PjIzCjDQAA0F4PP/zwGp9vvfXWddZ8+tOfXvX785///CTJcccd15bXfuloj8CMNgAAAKMhaI/AjDYAAACjIWiPwIw2AAAAoyFoj6BeWxG0zWgDAADQDEF7BB2lI10dXWa0AQAAaIqg3YR6rW5GGwAAgKYI2k2od9bNaAMAALTJ9OnTV/1+6aWXZo899sgdd9yR0047LZ/85CeTrHiV13e+8501zrvtttuy7777btBaE+/Rbkq9VjejDQAA0GY//elPc/LJJ+cnP/lJdtppp3aXMyxBuwmNWkPQBgAAaKNf/epXOeGEE3LppZdmt912a3c56yVoN6Gr1uXRcQAAYMr7+O8+nuvvv76l13zylk/Oew58z3rX9PT05LDDDssvfvGLPPnJT27p/SeCGe0mNDobNkMDAABok2nTpuVZz3pWzj333HaX0hQd7SbUa/Us61vW7jIAAADaaqTO80Tp6OjIRRddlBe/+MU588wz8/73v78tdTRLR7sJZrQBAADaa+ONN86PfvSjXHDBBZO+sy1oN8GMNgAAQPttueWW+fGPf5wzzjgjP/jBD9b5/s1vfnNmz56d2bNn5+CDD06S3HDDDauOzZ49OxdffPGE1+nR8SaY0QYAAGifhx9+eNXvO+64Y2699dYkyWGHHbbq+HnnnTfkucuXL5/Q2oaio92Eeq2e7n4dbQAAAEYmaDehXqub0QYAAKApgnYT6rV6evoEbQAAAEYmaDeh3llPX9WXvoG+dpcCAADAJCdoN6FRaySJDdEAAAAYkaDdhHqtniQ2RAM
2021-04-28 12:59:45 +00:00
"text/plain": [
2021-05-16 10:22:27 +00:00
"<Figure size 1224x720 with 1 Axes>"
2021-04-28 12:59:45 +00:00
]
},
2021-05-16 10:22:27 +00:00
"metadata": {
"needs_background": "light"
},
2021-04-28 12:59:45 +00:00
"output_type": "display_data"
}
],
"source": [
"for cluster in \"abcdefgh\":\n",
2021-05-16 10:22:27 +00:00
" df = pd.read_csv(glob.glob(DIR + \"fig-5-\" + cluster + \".csv/part-00000-*\")[0], \n",
" names=[\"count_4\", \"count_5\", \"count_7\", \"count_8\", \"succ\", \"non\"])\n",
" dft = {}\n",
" plt.figure(figsize=(17,10))\n",
" for i in [4,5,7,8]:\n",
" dft[i] = df[[\"count_\" + str(i), \"succ\", \"non\"]].copy()\n",
" dft[i] = dft[i].groupby(\"count_\" + str(i)).sum().reset_index()\n",
" \n",
" over = dft[i][dft[i][\"count_\" + str(i)] > max_count].sum()\n",
" if over[\"succ\"] == 0 and over[\"non\"] == 0:\n",
" percover = 0\n",
" else:\n",
" percover = over[\"succ\"] / (over[\"succ\"] + over[\"non\"])\n",
" \n",
" dft[i][\"perc\"] = dft[i][\"succ\"] / (dft[i][\"succ\"] + dft[i][\"non\"])\n",
" dfi = dft[i]\n",
" dft[i][dfi.succ == 0][dfi.non == 0][\"perc\"] = 0\n",
" \n",
" dft[i] = dft[i].drop(dft[i][dft[i][\"count_\" + str(i)] > max_count].index)\n",
" #dft[i][\"count_\" + str(i)] = dft[i][\"count_\" + str(i)].astype(str)\n",
" dft[i] = dft[i].append({\"count_\" + str(i): max_count + 1, \"perc\": percover}, ignore_index=True)\n",
2021-04-28 12:59:45 +00:00
"\n",
2021-05-16 10:22:27 +00:00
" del dft[i][\"succ\"]\n",
" del dft[i][\"non\"]\n",
" plt.xticks([0,5,10,15,20,25,30,35,40,45,50,51])\n",
" \n",
" ys = []\n",
" for j in range(0, max_count + 2):\n",
" a = dft[i][dft[i][\"count_\" + str(i)] == j]\n",
" ys.append(0 if a.empty else a[\"perc\"].squeeze())\n",
" \n",
" plt.plot([x if x < 51 else \">50\" for x in range(0,52)], ys)\n",
" plt.title(\"Cluster \" + cluster.upper())\n",
" plt.legend([\"EVICT\", \"FAIL\", \"KILL\", \"LOST\"])"
2021-04-28 12:59:45 +00:00
]
},
{
"cell_type": "code",
"execution_count": null,
2021-05-16 10:22:27 +00:00
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
2021-04-28 12:59:45 +00:00
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
2021-05-16 10:22:27 +00:00
"display_name": "Python 3",
2021-04-28 12:59:45 +00:00
"language": "python",
2021-05-16 10:22:27 +00:00
"name": "python3"
2021-04-28 12:59:45 +00:00
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
2021-05-16 10:22:27 +00:00
"version": "3.8.3"
2021-04-28 12:59:45 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 5
}