Skip to content

Instantly share code, notes, and snippets.

@cjauvin
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cjauvin/a35438e289ab7f464b2a to your computer and use it in GitHub Desktop.
Save cjauvin/a35438e289ab7f464b2a to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "",
"signature": "sha256:99aeb3cf149c3a930a669cacd6b4bcffd6947445d6319bb5ace164909709711f"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"df = pd.read_csv('data/short_ranks.csv')\n",
"df.rename(columns={'Unnamed: 0': 'url'}, inplace=True)\n",
"df['global_rank'] = df.Global.str.replace(',', '').astype(float)\n",
"df.sort('global_rank', ascending=True, inplace=True)\n",
"df.index = range(1, len(df)+1) # index acts as the rank, so must start at 1\n",
"\n",
"# Given an expected number of daily observations, generate Beta samples \n",
"# (between 0 and 1) and map them to ranks (by multiplying by the # of ranks);\n",
"# when you reach a point where the # of ranks to visit is equal to the # of \n",
"# remaining observations, simply visit everything once.\n",
"def generate_daily_traffic(alpha, beta, n_daily_obs):\n",
" global df\n",
" visited_ranks = set()\n",
" n_ranks = len(df)\n",
" n_remaining_obs = n_daily_obs\n",
" while len(visited_ranks) < n_ranks:\n",
" n_remaining_obs -= 1\n",
" # probalistic part\n",
" if n_remaining_obs >= (n_ranks - len(visited_ranks)):\n",
" rank = int(np.ceil(np.random.beta(alpha, beta) * n_ranks))\n",
" visited_ranks.add(rank)\n",
" yield df.ix[rank, 'url'], rank\n",
" # deterministic part, i.e. visit every unvisited site once\n",
" else:\n",
" remaining_ranks = set(df.index) - visited_ranks\n",
" for rank in remaining_ranks:\n",
" visited_ranks.add(rank)\n",
" yield df.ix[rank, 'url'], rank\n",
"\n",
"ranks = []\n",
"visited_urls = set()\n",
"for url, rank in generate_daily_traffic(0.5, 5, 500000):\n",
" visited_urls.add(url)\n",
" ranks.append(rank)\n",
"\n",
"assert len(visited_urls) == len(df)\n",
"print('# visited URLs =', len(visited_urls))\n",
"print('# daily observations =', len(ranks))\n",
"plt.hist(ranks, bins=100);"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"# visited URLs = 110583\n",
"# daily observations = 500000\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAABLEAAAK0CAYAAAD8oq/dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3X+QVeWd5/EPaINtt0poUBpdRlNJT6io06BShnXVgKAZ\nMMka6ApTLjNEml0kA5blryW7odwucFdFGYcCSeKsiRISQaOOWrurlk40uv7gx8YqyYg12USwR2VY\nVm26bbB7/3C48dqtkqSVJ+7rVdUFPPd7n3P61v3rXeccBvX29vYGAAAAAAo2+GCfAAAAAAB8GBEL\nAAAAgOKJWAAAAAAUT8QCAAAAoHgiFgAAAADFE7EAAAAAKJ6IBQAAAEDxRCwAAAAAiidiAQAAAFA8\nEQsAAACA4h1wxOro6MiSJUty3nnnZfjw4Rk8eHC+//3vV8309vbm1ltvzZe//OWMGTMm9fX1Oemk\nk7J06dK89dZb/e57yy23ZOzYsamtrU1TU1NWrlzZ79zu3bszb968jBw5MvX19Zk0aVI2b97c7+wT\nTzyRM844I3V1dWlsbMyiRYvS0dHRZ663tzfXXnttTjjhhNTW1uZP/uRP8qMf/ehAPxIAAAAAPiYH\nHLFee+21tLW15e///u/T3NycJBk0aFDVTEdHR77xjW/kn/7pnzJ//vz81V/9VSZMmJAlS5bkS1/6\nUp8916xZk9bW1px00klZuXJlvvCFL2ThwoW59tprq+Z6enoybdq0rFu3rvL6q6++mrPPPjsvvvhi\n1eyWLVsyefLkdHV15cYbb8zcuXPzne98JzNnzuxz/MWLF+eqq67Kueeem5UrV2bMmDH5sz/7s/z4\nxz8+0I8FAAAAgI/BoN7e3t4DGezu7s7u3btz9NFHZ+PGjTnttNNy6623Zvbs2ZWZvXv3ZuPGjTn9\n9NOr3tvW1pYlS5bkwQcfzOTJk5MknZ2d+Rf/4l9k4sSJuffeeyuz/+bf/JvcfffdeemllzJs2LAk\nyR133JGvf/3r2bBhQy644IIkyc6dO9PU1JQvfelLWbt2beX9f/qnf5qf//zn+cUvfpH6+vok71zt\n1dramv/+3/97pkyZkiTZsWNHTjjhhPy7f/fvctNNN1Xef9ZZZ+WXv/xl/vf//t8ZPNjdlgAAAAAl\nOOBKM2TIkBx99NFJ3rkNrz81NTV9AlaSfPWrX02S/OIXv6isPfLII9m1a1cuvvjiqtkFCxako6Mj\n999/f2Vtw4YNGTVqVCVgJcmIESPS0tKSe+65J3v37k2SvP7663nooYdy4YUXVgJWksyePTv19fW5\n4447Kmv33HNP9u3b1+f48+fPz/bt2/Pkk09+8AcCAAAAwMfmY7nU6B//8R+TvBOe9tv/PKtTTz21\nanb8+PEZPHhwtmzZUjU7fvz4Pvuedtpp2bNnT1544YUkyXPPPZd9+/b12bOmpibNzc1Vz9DavHlz\n6uvr87nPfa7Pnkmqjg8AAADAwfWxRKxrr702Rx11VNVzsdrb23PIIYdUha3knSu+Ghoa8vLLL1fN\nNjY29tl3/9r+2fb29qr1dxs1alSfPY855pgP3RMAAACAg+/Qj/oAy5Yty8MPP5zVq1fnyCOPrKx3\ndnZmyJAh/b5n6NCh6ezsrPy7q6srQ4cO7TN32GGHVfZ695/vN/vuPTs7Ow9oz/dqb2+vxDIAAACA\nT4rGxsZ+LwwqxUcasX784x/nP/7H/5i5c+fm3/7bf1v1Wm1tbbq7u/t9X1dXV2pra6tm33rrrX7n\n9r/+7j/fb/bwww+v2nP/+z9oz3drb2/Pqaee6iotAAAA4BNn9OjRefbZZ4sNWR9ZxHrwwQcze/bs\nTJ8+PTfffHOf1xsbG/P2229n586dVbcUdnd3Z9euXRk9enTVbH/haP8VUftn93/I/V0p1d7e3mfP\nRx999EP3fO9rL7/8cm6//faMHTu2398b/tBccsklWbFixcE+DRgwvtN80vhO80njO80nie8znyRb\nt27NhRde+L6PdCrBRxKxnnrqqfzrf/2vM2HChNxxxx0ZPLjvo7fGjRuXJHnmmWeqnpX17LPPpqen\nJ83NzZW15ubmPPbYY+nt7c2gQYOqjlNXV5empqYkyYknnphDDz00zzzzTGbMmFGZ6+7uzpYtW/L1\nr3+96vi33HJLtm7dWhWknnrqqcox38/YsWP7fdA8/CEaNmyY7zOfKL7TfNL4TvNJ4zvNJ4nvM3y8\nBvzB7lu3bs20adPy6U9/Ovfdd1+/z51KkkmTJmX48OFZvXp11frq1atTV1eXadOmVdZmzJiRV155\nJXfddVdlbefOnVm/fn3OP//81NTUJEmOOuqonHPOObn99tvz5ptvVmZvu+22dHR0ZObMmZW1r3zl\nK6mpqcmqVasqa729vbn55ptz3HHHZeLEib/fBwEAAADAgPmtrsRauXJldu/eXbm17957782vf/3r\n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\nggXp6OjI/fffX1nbsGFDRo0aVQlYSTJixIi0tLTknnvuqVzh9frrr+ehhx7KhRdeWAlYSTJ79uzU\n19dXHf+ee+7Jvn37+hx//vz52b59e5588skD+lwAAAAA+OgN6KVGO3bsyGuvvZZTTz21z2unnXZa\n1TOs9v/9vbPjx4/P4MGDs2XLlqrZ8ePH97vnnj178sILLyRJnnvuuezbt6/PnjU1NWlubu5z/Pr6\n+nzuc5/rs2eSquMDAAAAcHANaMRqb29PkjQ2NvZ5rbGxMbt27apcNdXe3p5DDjkkI0aMqJobMmRI\nGhoa8vLLL1ft+357JqnMftDxR40a1WfPY4455kP3BAAAAODgG9CI1dnZmSQZOnRon9cOO+ywqpnO\nzs4MGTKk332GDh1amUuSrq6uA97zg47/7j07OzsPaE8AAAAADr4DfrD7gaitrU2SvPXWW31e6+rq\nqpqpra1Nd3d3v/t0dXVV5vbPHuieH3T8ww8/vGrP/e//oD37d0mSYe9Zm/XPPwAAAADlWrduXdat\nW1e1tnv37oN0NgduQCPW/lvx9t/W927t7e1paGhITU1NZfbtt9/Ozp07q24p7O7uzq5duzJ69Oiq\nffu7vW//cfbPftjx37vno48++qF79m9Fkr7P6AIAAAAo3axZszJrVvWFOJs2bcopp5xykM7owAzo\n7YTHHntsRo4cmWeeeabPa08//XSam5sr/x43blyS9Jl99tln09PTUzXb3NycTZs29flfEZ966qnU\n1dWlqakpSXLiiSfm0EMP7bNnd3d3tmzZ0uf4e/bsydatW/vsuf+YAAAAAJRhQCNWknzta1/Lfffd\nl+3bt1fWHn744Wzbti0zZ86srE2aNCnDhw/P6tWrq96/evXq1NXVZdq0aZW1GTNm5JVXXsldd91V\nWdu5c2fWr1+f888/v3J111FHHZVzzjknt99+e958883K7G233ZaOjo6q43/lK19JTU1NVq1aVVnr\n7e3NzTffnOOOOy4TJ04cgE8DAAAAgIHwW91OuHLlyuzevbtya9+9996bX//610mShQsX5sgjj8zi\nxYuzfv36fPGLX8yiRYvyxhtv5LrrrsvJJ5+cOXPmVPY67LDD0tbWlgULFqSlpSVTp07NY489lrVr\n12bZsmUZNuw3z5yaMWNGTj/99MyZMyfPP/98GhoasmrVqvT29ubqq6+uOselS5dm4sSJOeuss9La\n2prt27fnhhtuyLnnnpupU6dW5o499thccsklue6667J3796ceuqpufvuu/P444/nhz/8YQYNGvTb\nf5oAAAAAfCQG9b73Hr0PcMIJJ+RXv/rVO2/858jT29ubQYMG5Ze//GXGjBmTJHn++edz6aWX5vHH\nH8/QoUMzbdq0LF++PCNHjuyz5/e+970sX7688v5vfvObWbhwYZ+53bt35/LLL8/dd9+dzs7OTJgw\nIddff33Gj+/7bKqf/exnufLKK7Np06YceeSRaWlpyTXXXJO6urqqud7e3vyX//JfsmbNmrS3t6ep\nqSn//t//+z73he73m/tDN+aDn4l1U4YOvSpdXXs+YAYAAACgDPubx8aNG/ttLSX4rSLW/+9ELAAA\nAOCT6A8hYg34M7EAAAAAYKCJWAAAAAAUT8QCAAAAoHgiFgAAAADFE7EAAAAAKJ6IBQAAAEDxRCwA\nAAAAiidiAQAAAFA8EQsAAACA4olYAAAAABRPxAIAAACgeCIWAAAAAMUTsQAAAAAonogFAAAAQPFE\nLAAAAACKJ2IBAAAAUDwRCwAAAIDiiVgAAAAAFE/EAgAAAKB4IhYAAAAAxROxAAAAACieiAUAAABA\n8UQsAAAAAIonYgEAAABQPBELAAAAgOKJWAAAAAAUT8QCAAAAoHgiFgAAAADFE7EAAAAAKJ6IBQAA\nAEDxRCwAAAAAiidiAQAAAFA8EQsAAACA4olYAAAAABRPxAIAAACgeCIWAAAAAMUTsQAAAAAonogF\nAAAAQPFELAAAAACKJ2IBAAAAUDwRCwAAAIDiiVgAAAAAFE/EAgAAAKB4IhYAAAAAxROxAAAAACie\niAUAAABA8UQsAAAAAIonYgEAAABQPBELAAAAgOKJWAAAAAAUT8QCAAAAoHgiFgAAAADFE7EAAAAA\nKJ6IBQAAAEDxRCwAAAAAiidiAQAAAFA8EQsAAACA4olYAAAAABRPxAIAAACgeCIWAAAAAMUTsQAA\nAAAonogFAAAAQPFELAAAAACKJ2IBAAAAUDwRCwAAAIDiiVgAAAAAFE/EAgAAAKB4IhYAAAAAxROx\nAAAAACieiAUAAABA8UQsAAAAAIonYgEAAABQPBELAAAAgOKJWAAAAAAUT8QCAAAAoHgiFgAAAADF\nE7EAAAAAKJ6IBQAAAEDxRCwAAAAAiidiAQAAAFA8EQsAAACA4olYAAAAABRPxAIAAACgeCIWAAAA\nAMUTsQAAAAAonogFAAAAQPFELAAAAACKJ2IBAAAAUDwRCwAAAIDiiVgAAAAAFE/EAgAAAKB4IhYA\nAAAAxftIItazzz6br3zlKxk9enTq6uoyduzYtLW1pbOzs2pu69atOe+883LEEUekoaEhs2fPzs6d\nO/vd85ZbbsnYsWNTW1ubpqamrFy5st+53bt3Z968eRk5cmTq6+szadKkbN68ud/ZJ554ImeccUbq\n6urS2NiYRYsWpaOj4/f75QEAAAAYcIcO9IbPPfdczjjjjIwePTqXXHJJhg8fnieeeCJLlizJxo0b\nc/fddydJtm/fnjPPPDOf+tSncs011+SNN97I9ddfn+eeey5PP/10ampqKnuuWbMm8+fPz4wZM3LZ\nZZflpz/9aRYuXJg9e/bkiiuuqMz19PRk2rRp+fnPf54rrrgiDQ0NWbVqVc4+++xs3Lgxn/nMZyqz\nW7ZsyeTJk/P5z38+N954Y1566aVcf/312bZtWx544IGB/lgAAAAA+D0MeMT60Y9+lO7u7tx///0Z\nO3ZskmTu3Lnp6enJD37wg/zf//t/c9RRR2XZsmXp7OzM5s2bc9xxxyVJJkyYkClTpuTWW29Na2tr\nkqSzszPf+ta3Mn369Nxxxx1Jkosuuig9PT1pa2vLvHnzMmzYsCTJhg0b8uSTT2bDhg254IILkiQt\nLS1pamrKkiVLsnbt2sp5Ll68OA0NDXn00UdTX1+fJDn++OPT2tqaBx98MFOmTBnojwYAAACA39GA\n305YW1ubJDn66KOr1keNGpVDDjkkQ4YMSZLceeedmT59eiVgJcnkyZPT1NRUiVVJ8sgjj2TXrl25\n+OKLq/ZbsGBBOjo6cv/991fWNmzYkFGjRlUCVpKMGDEiLS0tueeee7J3794kyeuvv56HHnooF154\nYSVgJcns2bNTX19fdXwAAAAADr4Bj1jf+MY3cswxx+Siiy7K//pf/ysvvfRSfvzjH+fmm2/OwoUL\nU1tbmx07duS1117Lqaee2uf9p512WtUzrPb//b2z48ePz+DBg7Nly5aq2fHjx/e75549e/LCCy8k\neeeWx3379vXZs6amJs3Nze/7DC0AAAAADo4Bj1ijR4/Oz372s/ziF7/IuHHj8kd/9EeZNWtWFi5c\nmOXLlydJ2tvbkySNjY193t/Y2Jhdu3ZVrppqb2/PIYcckhEjRlTNDRkyJA0NDXn55Zcra+3t7e+7\nZ5LK7Acdf9SoUVV7AgAAAHDwDfgzsV555ZV86UtfSpJ897vfTUNDQ+67774sXbo0xxxzTBYsWFD5\nXwqHDh3a5/2HHXZYkneehVVTU5POzs7KLYjvNXTo0Kr/8bCrq+tD93z3n+83+97/RREAAACAg2vA\nI1ZbW1t27NiRF154IaNHj06SfPWrX01PT0+uvPLKzJo1q/LcrLfeeqvP+7u6upL85tlatbW16e7u\n7vdYXV1dlbn9swe65wcd//DDDz+wXxYAAACAj8WAR6zHH38848aNqwSs/c4///zceuut2bJlS/74\nj/84yW9u63u39vb2NDQ0pKamJsk7t/y9/fbb2blzZ9Uthd3d3dm1a1fVcRobG/u9FXD/cfbP7r+N\n8P2O/95z7+uSJMPeszbrn38AAAAAyrVu3bqsW7euam337t0H6WwO3IBHrL179+btt9/udz1J9u3b\nl2OPPTYjR47MM88802fu6aefTnNzc+Xf48aNS5I888wzldsUk+TZZ59NT09P1Wxzc3Mee+yx9Pb2\nZtCgQZX1p556KnV1dWlqakqSnHjiiTn00EPzzDPPZMaMGZW57u7ubNmyJV//+tc/5LdckaTvA+QB\nAAAASjdr1qzMmlV9Ic6mTZtyyimnHKQzOjAD/mD38ePHZ9OmTdm2bVvV+rp163LIIYfk5JNPTpJ8\n7Wtfy3333Zft27dXZh5++OFs27YtM2fOrKxNmjQpw4cPz+rVq6v2W716derq6jJt2rTK2owZM/LK\nK6/krrvuqqzt3Lkz69evz/nnn1+5uuuoo47KOeeck9tvvz1vvvlmZfa2225LR0dH1fEBAAAAOPgG\n/Eqsyy+/PHfeeWf+1b/6V/nmN7+Z4cOH57777st/+2//La2trRk1alSSZPHixVm/fn2++MUvZtGi\nRXnjjTdy3XXX5eSTT86cOXMq+x122GFpa2vLggUL0tLSkqlTp+axxx7L2rVrs2zZsgwb9pvb+mbM\nmJHTTz89c+bMyfPPP5+GhoasWrUqvb29ufrqq6vOc+nSpZk4cWLOOuustLa2Zvv27bnhhhty7rnn\nZurUqQP9sQAAAADwexjU29vbO9CbPv3001myZEmeeOKJdHV15dOf/nT+/M//PFdccUUGD/7NxV/P\nP/98Lr300jz++OMZOnRopk2bluXLl2fkyJF99vze976X5cuX55e//GXGjBmTb37zm1m4cGGfud27\nd+fyyy/P3Xffnc7OzkyYMCHXX399xo/ve/vfz372s1x55ZXZtGlTjjzyyLS0tOSaa65JXV1dv7/X\nby6t25gPvp3wpgwdelW6uvZ82EcFAAAAcNDtbx4bN27st6GU4COJWJ9UIhYAAADwSfSHELEG/JlY\nAAAAADDQRCwAAAAAiidiAQAAAFA8EQsAAACA4olYAAAAABRPxAIAAACgeCIWAAAAAMUTsQAAAAAo\nnogFAAAAQPFELAAAAACKJ2IBAAAAUDwRCwAAAIDiiVgAAAAAFE/EAgAAAKB4IhYAAAAAxROxAAAA\nACieiAUAAABA8UQsAAAAAIonYgEAAABQPBELAAAAgOKJWAAAAAAUT8QCAAAAoHgiFgAAAADFE7EA\nAAAAKJ6IBQAAAEDxRCwAAAAAiidiAQAAAFA8EQsAAACA4olYAAAAABRPxAIAAACgeCIWAAAAAMUT\nsQAAAAAonogFAAAAQPFELAAAAACKJ2IBAAAAUDwRCwAAAIDiiVgAAAAAFE/EAgAAAKB4IhYAAAAA\nxROxAAAAACieiAUAAABA8UQsAAAAAIonYgEAAABQPBELAAAAgOKJWAAAAAAUT8QCAAAAoHgiFgAA\nAADFE7EAAAAAKJ6IBQAAAEDxRCwAAAAAiidiAQAAAFA8EQsAAACA4olYAAAAABRPxAIAAACgeCIW\nAAAAAMUTsQAAAAAonogFAAAAQPFELAAAAACKJ2IBAAAAUDwRCwAAAIDiiVgAAAAAFE/EAgAAAKB4\nIhYAAAAAxROxAAAAACieiAUAAABA8UQsAAAAAIonYgEAAABQPBELAAAAgOKJWAAAAAAUT8QCAAAA\noHgiFgAAAADFE7EAAAAAKJ6IBQAAAEDxRCwAAAAAiidiAQAAAFA8EQsAAACA4olYAAAAABRPxAIA\nAACgeCIWAAAAAMUTsQAAAAAonogFAAAAQPFELAAAAACKJ2IBAAAAUDwRCwAAAIDiiVgAAAAAFE/E\nAgAAAKB4IhYAAAAAxROxAAAAACieiAUAAABA8UQsAAAAAIonYgEAAABQPBELAAAAgOKJWAAAAAAU\n7yOLWJs2bcqXv/zlNDQ0pK6uLieddFL++q//umpm69atOe+883LEEUekoaEhs2fPzs6dO/vd75Zb\nbsnYsWNTW1ubpqamrFy5st+53bt3Z968eRk5cmTq6+szadKkbN68ud/ZJ554ImeccUbq6urS2NiY\nRYsWpaOj4/f7xQEAAAAYcId+FJv+j//xP3L++efnlFNOybe//e3U19fnxRdfzI4dOyoz27dvz5ln\nnplPferQPBJrAAAgAElEQVRTueaaa/LGG2/k+uuvz3PPPZenn346NTU1ldk1a9Zk/vz5mTFjRi67\n7LL89Kc/zcKFC7Nnz55cccUVlbmenp5MmzYtP//5z3PFFVekoaEhq1atytlnn52NGzfmM5/5TGV2\ny5YtmTx5cj7/+c/nxhtvzEsvvZTrr78+27ZtywMPPPBRfCwAAAAA/I4GPGK9/vrrmT17ds4///xs\n2LDhfeeWLVuWzs7ObN68Occdd1ySZMKECZkyZUpuvfXWtLa2Jkk6OzvzrW99K9OnT88dd9yRJLno\noovS09OTtra2zJs3L8OGDUuSbNiwIU8++WQ2bNiQCy64IEnS0tKSpqamLFmyJGvXrq0cf/HixWlo\naMijjz6a+vr6JMnxxx+f1tbWPPjgg5kyZcpAfzQAAAAA/I4G/HbCH/7wh3n11VezdOnSJElHR0d6\nenr6zN15552ZPn16JWAlyeTJk9PU1FSJVUnyyCOPZNeuXbn44our3r9gwYJ0dHTk/vvvr6xt2LAh\no0aNqgSsJBkxYkRaWlpyzz33ZO/evUneCW0PPfRQLrzwwkrASpLZs2envr6+6vgAAAAAHHwDHrEe\neuihHHnkkXnppZfyx3/8xzniiCNy1FFH5eKLL85bb72VJNmxY0dee+21nHrqqX3ef9ppp1U9w2r/\n3987O378+AwePDhbtmypmh0/fny/e+7ZsycvvPBCkuS5557Lvn37+uxZU1OT5ubm932GFgAAAAAH\nx4BHrG3btmXfvn356le/mi996Uu566678o1vfCM333xz5syZkyRpb29PkjQ2NvZ5f2NjY3bt2lW5\naqq9vT2HHHJIRowYUTU3ZMiQNDQ05OWXX66stbe3v++eSSqzH3T8UaNGVe0JAAAAwME34M/EevPN\nN7Nnz57Mnz8/K1asSJJ89atfTXd3d9asWZP/9J/+Uzo7O5MkQ4cO7fP+ww47LMk7z8KqqalJZ2dn\nhgwZ0u+xhg4dWtkrSbq6uj50z3f/+X6z794TAAAAgINvwCNWbW1tkmTWrFlV67NmzcqaNWvyP//n\n/8znPve5JKncXvhuXV1dVfvU1tamu7u732N1dXVV5vbPHuieH3T8ww8//AN+wyS5JMmw96zN+ucf\n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\nhdWyZcvS2dmZzZs357jjjkuSTJgwIVOmTMmtt96a1tbWJElnZ2e+9a1vZfr06bnjjjuSJBdddFF6\nenrS1taWefPmZdiwYUmSDRs25Mknn8yGDRtywQUXJElaWlrS1NSUJUuWZO3atZXjL168OA0NDXn0\n0UdTX1+fJDn++OPT2tqaBx98MFOmTPkoPxoAAAAAfgsf2ZVYP/3pT3PnnXdmxYoV6e3t7XMl1p13\n3pnp06dXAlaSTJ48OU1NTZVYlSSPPPJIdu3alYsvvrjq/QsWLEhHR0fuv//+ytqGDRsyatSoSsBK\nkhEjRqSlpSX33HNP5Qqv119/PQ899FAuvPDCSsBKktmzZ6e+vr7q+AAAAAAcfB9JxHr77bfzl3/5\nl2ltbc3nP//5Pq/v2LEjr732Wk499dQ+r5122mlVz7Da//f3zo4fPz6DBw/Oli1bqmbHjx/f7557\n9uzJCy+8kCR57rnnsm/fvj571tTUpLm5+X2foQUAAADAwfGRRKybb745v/71r9PW1tbv6+3t7UmS\nxsbGPq81NjZm165dlaum2tvbc8ghh2TEiBFVc0OGDElDQ0Nefvnlqn3fb88kldkPOv6oUaOq9gQA\nAADg4BvwiPVP//RP+fa3v51vf/vbaWho6Hems7MzSTJ06NA+rx122GFVM52dnRkyZEi/+wwdOrQy\nlyRdXV0HvOcHHf/dewIAAABw8A34g93/w3/4DxkxYkT+8i//8n1namtrkyRvvfVWn9e6urqqZmpr\na9Pd3d3vPl1dXZW5/bMHuucHHf/www9/33N/xyVJhr1nbdY//wAAAACUa926dVm3bl3V2u7duw/S\n2Ry4AY1Y27Zty3e/+92sWLEi27dvr6x3dXWlu7s7v/rVr3LkkUdWbuPbf1vfu7W3t6ehoSE1NTVJ\n3rnl7+23387OnTurbins7u7Orl27Mnr06MpaY2Njv7cC7j/O/tkPO/679+zfiiR9n70FAAAAULpZ\ns2Zl1qzqC3E2bdqUU0455SCd0YEZ0NsJd+zYkZ6enixcuDCf/vSnKz9PP/10XnjhhZxwwglpa2vL\nsccem5EjR+aZZ57ps8fTTz+d5ubmyr/HjRuXJH1mn3322fT09FTNNjc3Z9OmTent7a2afeqpp1JX\nV5empqYkyYknnphDDz20z57d3d3ZsmVL1Z4AAAAAHHwDGrFOOumk/OQnP8ndd99d+fnJT36Sz3/+\n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\nNE477bRCXVtbW6xYsSK++MUvdvIVXh/v3uUPAAAAoLRMnTo1pk4t3ojz1FNPxSc+8YkeWlHXdPvl\nhJs3b44pU6bE4sWL4957741PfvKTHdadeuqp8eCDD8bq1asLYz/72c9i5cqVMXny5MLYcccdF3vu\nuWfccsstRc+/5ZZboqqqKk488cTC2GmnnRavvvpq/OAHPyiMrVmzJu69996YNGlSYXfXbrvtFscf\nf3wsWLAg3nrrrULtnXfeGevXry96fQAAAAB6XrfvxPrKV74SDzzwQEyaNCnWrFkTCxYsKHq8vr4+\nIiIuv/zyuPfee+PYY4+Niy++OFpaWuJf/uVf4uCDD44zzzyzUD9gwIBoaGiI888/P04//fT47Gc/\nG48++mjcddddMXv27Nh99z9e1nfaaafFEUccEWeeeWY8//zzUVtbGzfffHOklOIb3/hG0Tquvvrq\nGD9+fBx99NFxzjnnxOrVq+Nf//Vf43Of+1x89rOf7e63BQAAAIA/Q7eHWE8//XRkWRYPPPBAPPDA\nA0WPZVlWCLE++tGPxi9+8Yu45JJL4rLLLouKioo46aST4rrrrivsmNpqxowZUVZWFtddd13893//\nd+y3335x/fXXx0UXXVRU169fv/jxj38cl156afz7v/97bNy4MQ4//PD4j//4jxg2bFhR7dixY2PR\nokUxa9asuOSSS2LgwIExffr0mDNnTne/JQAAAAD8mbo9xHrkkUe6XPvxj388HnrooS7VTp8+PaZP\nn95p3e677x7z5s2LefPmdVp71FFHxWOPPdal1wcAAACg53T7mVgAAAAA0N2EWAAAAADkXrdfTkjp\naGxs7LSmpqam3XliAAAAADubEKtPejEi/ninyM40NTUJsgAAAIAeJcTqk9a/93lBRIzYRl1jRNRH\nS0vLjl8SAAAAwDYIsfq0ERExrqcXAQAAANApB7sDAAAAkHtCLAAAAAByT4gFAAAAQO4JsQAAAADI\nPSEWAAAAALknxAIAAAAg94RYAAAAAORe/55eAPnX2NjYaU1NTU0MGzZsJ6wGAAAA6IuEWGzDixER\nUV9f36XqpqYmQRYAAACwQwix2Ib1731eEBEjtlHXGBH10dLSsuOXBAAAAPRJQiy6YEREjOvpRQAA\nAAB9mIPdAQAAAMg9IRYAAAAAuSfEAgAAACD3hFgAAAAA5J4QCwAAAIDcE2IBAAAAkHv9e3oB9B6N\n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\nq6997WuxYMGCWLt2bRxyyCHR0NAQJ5xwQk8vDQAAAID36dMhFgAAAACloc+eiQUAAABA6RBidcGm\nTZti1qxZMWTIkNh1113jiCOOiEWLFvX0sugDli5dGhdccEGMHDkyqqurY//9948pU6bEypUr29U2\nNjbGhAkToqamJmpra2PatGmxZs2aDue97bbbYsSIEVFZWRnDhw+PG2+8scO6devWxbnnnht77bVX\nVFdXx3HHHRfLly/vsPbxxx+PT33qU1FVVRV1dXVx8cUXx/r16z/8F0+fcPXVV0e/fv1i9OjR7R7T\n05SKp556Kk4++eSora2NqqqqGD16dNxwww1FNfqZUrFs2bL4/Oc/H0OGDImqqqoYMWJENDQ0xMaN\nG4vq9DR5s379+vj6178eEyZMiD333DP69esXd9xxR4e1pdK/KaX41re+FQcccEBUVlbGIYccEt/7\n3ve6+I5Q6rrS0yml+O53vxsnn3xy7LffflFdXR2jR4+Oq6++OjZt2tThvCXf04lOffGLX0xlZWVp\n5syZad68eWn8+PGprKwsPfbYYz29NHq5U089NQ0ZMiRdfPHF6bbbbkvf/OY30+DBg1N1dXV67rnn\nCnWrVq1KgwYNSsOGDUs33HBDmj17dtpzzz3TmDFjUltbW9Gct956a8qyLE2ePDnNnz8/TZs2LWVZ\nlq655pqius2bN6fx48en6urqdNVVV6WbbropjRw5Mg0cODCtXLmyqHb58uVpwIAB6ROf+ESaO3du\n+upXv5oGDBiQJk6cuOPeHEreqlWr0q677pqqq6vT6NGj2z2mpykFP/nJT1J5eXk68sgj0/XXX5/m\nz5+fLrvssjRr1qxCjX6mVDzzzDOpoqIiHXDAAemaa65J8+bNS2eeeWbKsix9/vOfL9TpafLoN7/5\nTcqyLA0dOjQde+yxKcuydMcdd7SrK6X+veyyy1KWZem8885L8+fPTyeddFLKsix973vf64Z3jLzr\nSk+3tLSkLMvS+PHj0+zZs9P8+fPTWWedlXbZZZd07LHHtpuzN/S0EKsTixcvTlmWpeuuu64w1tra\nmg488MA0fvz4HlwZfcHjjz+e3n777aKxlStXpgEDBqT6+vrC2IwZM1JVVVVatWpVYWzRokUpy7L0\nne98pzC2YcOGVFtbmyZNmlQ0Z319faqurk5r164tjN1zzz0py7J03333FcZee+21tMcee6S//du/\nLXr+xIkT0z777JNaWloKY/Pnz09ZlqWf/vSnH/Krp7ebMmVKOv7449MxxxyTRo0aVfSYnqYUvPHG\nG2nvvfdOp5566jbr9DOl4vLLL09ZlqXnn3++aPyMM85IWZaldevWpZT0NPm0adOm9Oqrr6aUUlq2\nbNkHhlil0r+rV69OZWVl6cILLyx6/qc//em07777ps2bN3fpfaF0daWn29ra0hNPPNHuuVdddVXK\nsiwtWrSoMNZbelqI1YlLL700lZWVFf2BpJTSnDlzUpZlafXq1T20MvqycePGpUMPPbTw+4985CNp\nypQp7eo+9rGPpeOPP77w+x/96Ecpy7L0P//zP0V1TzzxRMqyLC1YsKAwNnny5FRXV9duzvPOOy9V\nVVUV/k/VG2+8kcrKyop2HaT07j+oNTU1afr06R/ui6RX+8UvfpH69++fnnvuuXT00Ue324mlpykF\nt9xyS8qyLL3wwgsppZTeeuutDr8B08+UioaGhpRlWVqzZk3R+KxZs1L//v3Thg0bUkp6mvxbunTp\nB4ZYpdK/N910U8qyLDU2NhbV3n333SnLMlcF9THb6umOPPPMMynLsnTjjTcWxnpLTzsTqxPLly+P\n4cOHR3V1ddH4YYcdFhERK1as6Ill0YellOLVV1+NQYMGRUTESy+9FK+99loceuih7WoPO+ywouuW\nt/76T2vHjRsX/fr1K+rn5cuXx7hx4zqcc8OGDdHU1BQREc8++2y888477eYsKyuLMWPGfOB10/Rd\nmzdvjgsvvDDOOeecGDlyZLvH9TSlYtGiRTFw4MBYtWpVfOxjH4uamprYbbfd4stf/nLhHAr9TCk5\n66yzYu+9946zzz47nn766Vi1alXcc889ceutt8ZFF10UlZWVepqSVkr9u3z58qiuro6DDjqo3ZwR\nfg5l21555ZWIiMLPjBG9p6eFWJ1obm6Ourq6duNbx15++eWdvST6uLvuuitefvnlmDJlSkS826MR\n8YF9+vrrr8fbb79dqN1ll12K/jGLiCgvL4/a2tqifu5q72/r9QcPHuzvCO3ceuut8eKLL0ZDQ0OH\nj+tpSsXKlSvjnXfeiVNOOSUmTpwYP/jBD+Kss86KW2+9Nc4888yI0M+UliFDhsQvf/nLeOGFF2Ls\n2LGx//77x9SpU+Oiiy6K6667LiL0NKWtlPq3ubk59t57707nhI5861vfit122y0mTpxYGOstPd2/\nS1V92MaNG6OioqLd+IABAwqPw87ywgsvxPnnnx/jx4+PM844IyL+2IOd9WlZWVls3LgxysvLO5y7\noqKiqJ9bW1u71Pudvb6/I7zfH/7wh7jyyivjyiuvjNra2g5r9DSl4q233ooNGzbEjBkz4vrrr4+I\niFNOOSXa2tpi7ty5cdVVV+lnSsqrr75a+IFn3rx5UVtbGw8++GBcffXVsffee8f555+vpylppdS/\nfg7lw5o9e3b87Gc/i1tuuSUGDhxYGO8tPS3E6kRlZWWHt6ZsbW0tPA47wyuvvBInnnhi7LHHHrFw\n4cLIsiwi/tiDXenTysrKaGtr63D+1tbWon7uau939vq77rpr175A+oSvfvWrMWjQoLjwwgs/sEZP\nUyq29srUqVOLxqdOnRpz586NX/3qV4Ut8/qZUtDQ0BAvvfRSNDU1xZAhQyLi3WB2y5YtMWvWrJg6\ndap/oylppdS/lZWVhedva054v3vuuSe+9rWvxfTp0+O8884reqy39LTLCTtRV1fX4ba2rdvmtv4H\nHnakN954IyZOnBhvvvlmPPTQQzF48ODCY1u3X27tyfdrbm6O2traKCsrK9Ru3rw51qxZU1TX1tYW\nr7/+elE/d7X3O3t9f0fYauXKlTFv3ry48MILY/Xq1fHb3/42fvvb30Zra2u0tbXF7373u1i7dq2e\npmRs7YU/3Rr/kY98JCIi1q5dW6jRz5SCxx57LMaOHduuLyZNmhQbNmyIFStW+DeaklZK/VtXV1c4\n12hbc8JWDz/8cEybNi1OOumkuPXWW9s93lt6WojVibFjx0ZTU1O0tLQUjS9evDgiIsaMGdMTy6IP\naW1tjUmTJsWvf/3rePDBB9sdhLfPPvvEXnvtFUuXLm333CVLlhT16NixYyMi2tUuW7YstmzZUlQ7\nZsyYeOqppyKlVFS7ePHiqKqqiuHDh0dExKhRo6J///7t5mxra4sVK1b4O0LBSy+9FFu2bImLLroo\n/uIv/qLwsWTJkmhqaooDDjggGhoa9DQlY+shpqtXry4a3/pN31577RVDhgzRz5SMt99+OzZv3tzh\neETEO++8499oSlop9e/YsWNjw4YN0djY2G7Ora8JWy1evDi+8IUvxOGHHx7f//73o1+/9lFPr+np\nLt3DsA9bvHhxyrIsXXvttYWx1tbWdOCBB6YjjzyyB1dGX/DOO++kk08+OZWXl7e7Fer7zZgxI+26\n665p1apVhbFFixalLMvS3LlzC2MbN25MtbW1adKkSUXPr6+vT9XV1Wnt2rWFsXvuuSdlWZYWLlxY\nGHvttdfS7rvvnqZOnVr0/IkTJ6YhQ4aklpaWwtj8+fNTlmXpJz/5yfZ/4fRKa9asST/84Q/T/fff\nX/j44Q9/mEaNGpWGDh2a7r///vTcc8+llPQ0pWH58uUpy7L0d3/3d0XjU6dOTeXl5am5uTmlpJ8p\nHfX19amioiI1NTUVjZ9yyimpf//+epqSsXTp0pRlWbrjjjvaPVYq/bt69epUXl6eLrjggsLYli1b\n0l/91V+lfffdN23ZsmV73hJK3LZ6+vnnn0+1tbVp9OjRad26dR84R2/paSFWF5x++umprKwszZw5\nM82dOzeNHz8+lZeXp0cffbSnl0Yvd/HFF6csy9LJJ5+c7rzzznYfW61atSoNGjQoHXjggemGG25I\ns2fPTnvssUc65JBDUltbW9GcN998c8qyLE2ePDnNmzcvTZs2LWVZlubMmVNUt3nz5nTkkUemmpqa\ndNVVV6WbbropjRw5Mu22227tvrl96qmn0oABA9K4cePSLbfckq644opUWVmZJkyYsOPeHHqNo48+\nOo0aNapoTE9TKs4+++yUZVmaMmVKuummm9LkyZNTlmXpiiuuKNToZ0rF008/nSorK9Pee++dGhoa\n0k033ZQmTpyYsixL5557bqFOT5NXN9xwQ2poaEgzZsxIWZalU089NTU0NKSGhob0xhtvpJRKq39n\nzpyZsixL5513Xpo3b1468cQTU5Zl6e677+7md4686qyn33zzzbTvvvumXXbZJV1zzTXtfl584okn\niubrDT0txOqC1tbWdOmll6a6uro0YMCA9MlPfjL99Kc/7ell0Qccc8wxqV+/finLsnYf/fr1K6r9\nv//7v/S5z30uVVVVpT333DN96UtfSr///e87nHfevHnpoIMOShUVFWnYsGHp3/7t3zqsW7t2bZo+\nfXoaNGhQqqqqSscee2x68sknO6x97LHH0lFHHVX45vfCCy9Mb7311p/3BtAnHHPMMWn06NHtxvU0\npeDtt99O3/jGN9LQoUNTeXl5Gj58eIf9p58pFYsXL04TJkxIAwcOTOXl5emggw5Kc+bMSZs3by6q\n09Pk0dChQ4u+V976fXS/fv3S7373u0JdqfTvli1b0pw5c9LQoUNTRUVFGj16dPrP//zPD/HOUKo6\n6+nf/OY3hd939DPjmWee2W7OUu/pLKU/ucgRAAAAAHLGwe4AAAAA5J4QCwAAAIDcE2IBAAAAkHtC\nLAAAAAByT4gFAAAAQO4JsQAAAADIPSEWAAAAALknxAIAAAAg94RYAAAAAOSeEAsAAACA3BNiAQAA\nAJB7QiwAAAAAcu//A3E9s7RU03ugAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x1127f7f10>"
]
}
],
"prompt_number": 1
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment