{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGzCAYAAADHdKgcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6eklEQVR4nO3deXQV9f3/8dclkAVIwpZVImFH1miUCIJAWcIiFVDEVEpYSysofANYoMoi1qgoYgVZrCRYVBCLoAJhF6pALUJUUJEtBMzCmoTEkkDu/P7wxy2XLJDLvdyEeT7OmXOYz3xm5j2TG+4rM5+512IYhiEAAAATqeTuAgAAAG41AhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAdAhDgZp07d1bnzp1t8ykpKbJYLEpMTHTpfmfMmCGLxWLXFh4erqFDh7p0v1Lxxzh06FBVr17d5ft2llt1rpxh6NChCg8Pd3cZLpOYmCiLxaKUlBR3l4IKhACEcu/Kf27e3t76+eefiyzv3LmzWrZs6YbKIEnr1q3TjBkz3F1GscpzbQDciwCECiM/P18vvfSSu8u4rR08eFBvv/12mdZZt26dZs6cWaZ16tWrp//+97/6/e9/X6b1ysqR2gCYAwEIFUZERITefvttpaWluWwfhmHov//9r8u2X955eXmpSpUqLtv+5cuXVVBQYLui5+Hh4bJ9lVdXzgEA9yIAocKYOnWqCgsLb+gq0OXLlzVr1iw1bNhQXl5eCg8P19SpU5Wfn2/XLzw8XA899JA2bNige++9Vz4+Plq0aJE+//xzWSwWffjhh5o5c6buuOMO+fr66tFHH1V2drby8/M1fvx4BQYGqnr16ho2bFiRbSckJOg3v/mNAgMD5eXlpebNm2vBggVlPu6EhARZLBbt27evyLIXX3xRHh4exd4avNoXX3yh++67T97e3mrYsKEWLVpUbL9rx7VcunRJM2fOVOPGjeXt7a3atWurQ4cO2rRpk6Rfx5bMnz9fkmSxWGyT9L9xPq+++qrmzp1r+1l8//33pY5zOnr0qKKjo1WtWjWFhobq+eefl2EYtuVXfjaff/653XrXbrO02iTJarVq7ty5atGihby9vRUUFKTRo0fr/Pnzdts1DEMvvPCC6tatq6pVq6pLly46cOBAqef72pqKOwcFBQWaNm2aIiMj5e/vr2rVqqljx47atm1bidtYvHixbRv33Xef/vOf/xTZ5+rVq9WyZUt5e3urZcuW+vjjj4utLS8vTxMmTFBYWJi8vLzUtGlTvfrqq3bn+sq5Gzt2rFauXKnmzZvLx8dH7dq103fffSdJWrRokRo1aiRvb2917tz5uuNwPvroI1ksFm3fvr3IskWLFslisWj//v2SpG+//VZDhw5VgwYN5O3treDgYA0fPlxnz54tdR9X6i7u9mdxY7eysrI0fvx427lo1KiRXn75ZVmtVrt+y5cvV2RkpHx9feXn56dWrVrpjTfeuG4tKJ8qu7sA4EbVr19fQ4YM0dtvv63JkycrNDS0xL4jR47U0qVL9eijj2rChAn697//rfj4eP3www9F3hAOHjyomJgYjR49WqNGjVLTpk1ty+Lj4+Xj46PJkyfr8OHDevPNN1WlShVVqlRJ58+f14wZM7R7924lJiaqfv36mjZtmm3dBQsWqEWLFvrtb3+rypUr69NPP9WTTz4pq9WqMWPG3PBxP/rooxozZozee+893X333XbL3nvvPXXu3Fl33HFHiet/99136tGjhwICAjRjxgxdvnxZ06dPV1BQ0HX3PWPGDMXHx2vkyJFq27atcnJytGfPHu3du1fdu3fX6NGjlZaWpk2bNukf//hHsdtISEjQxYsX9Yc//EFeXl6qVatWkTeWKwoLC9WzZ0/df//9euWVV5SUlKTp06fr8uXLev75569b79WuV9vo0aOVmJioYcOG6emnn9axY8c0b9487du3T19++aXtSti0adP0wgsvqHfv3urdu7f27t2rHj16lOkqTnHnICcnR3//+98VExOjUaNG6cKFC3rnnXcUHR2tr776ShEREXbbeP/993XhwgWNHj1aFotFr7zyigYMGKCjR4/aat24caMeeeQRNW/eXPHx8Tp79qyGDRumunXr2m3LMAz99re/1bZt2zRixAhFRERow4YNmjRpkn7++We9/vrrdv3/9a9/6ZNPPrG9buPj4/XQQw/pmWee0VtvvaUnn3xS58+f1yuvvKLhw4dr69atJZ6LPn36qHr16vrwww/VqVMnu2UrVqxQixYtbGP6Nm3apKNHj2rYsGEKDg7WgQMHtHjxYh04cEC7d+8uMojfEb/88os6deqkn3/+WaNHj9add96pnTt3asqUKUpPT9fc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KM2dO1fR0dE6ePCgAgMDb6peAABwe3DoCpCnp6caNWp00zvv1auXXnjhBfXv37/IMsMwNHfuXD377LN6+OGH1bp1a7377rtKS0srcqXoanPmzNGoUaM0bNgwNW/eXAsXLlTVqlW1ZMmSm64XAADcHhwKQBMmTNAbb7whwzCcXY/NsWPHlJGRoW7dutna/P39FRUVpV27dhW7TkFBgb7++mu7dSpVqqRu3bqVuI4k5efnKycnx24CAAC3L4dugX3xxRfatm2b1q9frxYtWqhKlSp2y1etWnXThWVkZEiSgoKC7NqDgoJsy6515swZFRYWFrvOjz/+WOK+4uPjNXPmzJusGAAAVBQOBaAaNWoUe9uqopoyZYri4uJs8zk5OQoLC3NjRQAAwJUcCkAJCQnOrqOI4OBgSVJmZqZCQkJs7ZmZmYqIiCh2nTp16sjDw0OZmZl27ZmZmbbtFcfLy0teXl43XzQAAKgQHBoDJEmXL1/W5s2btWjRIl24cEGSlJaWptzcXKcUVr9+fQUHB2vLli22tpycHP373/9Wu3btil3H09NTkZGRdutYrVZt2bKlxHUAAID5OHQF6Pjx4+rZs6dSU1OVn5+v7t27y9fXVy+//LLy8/O1cOHCG9pObm6uDh8+bJs/duyYkpOTVatWLd15550aP368XnjhBTVu3Nj2GHxoaKj69etnW6dr167q37+/xo4dK0mKi4tTbGys7r33XrVt21Zz585VXl6ehg0b5sihAgCA25BDAWjcuHG699579c0336h27dq29v79+2vUqFE3vJ09e/aoS5cutvkr43BiY2OVmJioZ555Rnl5efrDH/6grKwsdejQQUlJSXafAXTkyBGdOXPGNj9o0CCdPn1a06ZNU0ZGhiIiIpSUlFRkYDQAADAvi+HAs+y1a9fWzp071bRpU/n6+uqbb75RgwYNlJKSoubNm+uXX35xRa23TE5Ojvz9/ZWdnS0/Pz93lwMTCZ+81t0lAKaW8lIfd5eAm1CW92+HxgBZrVYVFhYWaT958qR8fX0d2SQAAMAt41AA6tGjh+bOnWubt1gsys3N1fTp02/66zEAAABczaExQK+99pqio6PVvHlzXbx4Ub/73e906NAh1alTRx988IGzawQAAHAqhwJQ3bp19c0332j58uX69ttvlZubqxEjRuiJJ56Qj4+Ps2sEAABwKocC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ACqKch2AJKlFixZKT0+3TV988UWJfXfu3KmYmBiNGDFC+/btU79+/dSvXz/t37//FlYMAADKu3IfgCpXrqzg4GDbVKdOnRL7vvHGG+rZs6cmTZqku+66S7NmzdI999yjefPm3cKKAQBAeVfuA9ChQ4cUGhqqBg0a6IknnlBqamqJfXft2qVu3brZtUVHR2vXrl2l7iM/P185OTl2EwAAuH1VdncBpYmKilJiYqKaNm2q9PR0zZw5Ux07dtT+/fvl6+tbpH9GRoaCgoLs2oKCgpSRkVHqfuLj4zVz5kyn1n67CZ+81t0lAACKURH/f055qY+7SyjfV4B69eqlgQMHqnXr1oqOjta6deuUlZWlDz/80Kn7mTJlirKzs23TiRMnnLp9AABQvpTrK0DXqlGjhpo0aaLDhw8Xuzw4OFiZmZl2bZmZmQoODi51u15eXvLy8nJanQAAoHwr11eArpWbm6sjR44oJCSk2OXt2rXTli1b7No2bdqkdu3a3YryAABABVGuA9DEiRO1fft2paSkaOfOnerfv788PDwUExMjSRoyZIimTJli6z9u3DglJSXptdde048//qgZM2Zoz549Gjt2rLsOAQAAlEPl+hbYyZMnFRMTo7NnzyogIEAdOnTQ7t27FRAQIElKTU1VpUr/y3Dt27fX+++/r2effVZTp05V48aNtXr1arVs2dJdhwAAAMohi2EYhruLKG9ycnLk7++v7Oxs+fn5ubuccqEiPmUAACifXPUUWFnev8v1LTAAAABXIAABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTIQABAADTKdcBKD4+Xvfdd598fX0VGBiofv366eDBg6Wuk5iYKIvFYjd5e3vfoooBAEBFUK4D0Pbt2zVmzBjt3r1bmzZt0qVLl9SjRw/l5eWVup6fn5/S09Nt0/Hjx29RxQAAoCKo7O4CSpOUlGQ3n5iYqMDAQH399dd68MEHS1zPYrEoODj4hveTn5+v/Px823xOTk7ZiwUAABVGub4CdK3s7GxJUq1atUrtl5ubq3r16iksLEwPP/ywDhw4UGr/+Ph4+fv726awsDCn1QwAAMqfChOArFarxo8frwceeEAtW7YssV/Tpk21ZMkSrVmzRsuWLZPValX79u118uTJEteZMmWKsrOzbdOJEydccQgAAKCcKNe3wK42ZswY7d+/X1988UWp/dq1a6d27drZ5tu3b6+77rpLixYt0qxZs4pdx8vLS15eXk6tFwAAlF8VIgCNHTtWn332mXbs2KG6deuWad0qVaro7rvv1uHDh11UHQAAqGjK9S0wwzA0duxYffzxx9q6davq169f5m0UFhbqu+++U0hIiAsqBAAAFVG5vgI0ZswYvf/++1qzZo18fX2VkZEhSfL395ePj48kaciQIbrjjjsUHx8vSXr++ed1//33q1GjRsrKytLs2bN1/PhxjRw50m3HAQAAypdyHYAWLFggSercubNde0JCgoYOHSpJSk1NVaVK/7uQdf78eY0aNUoZGRmqWbOmIiMjtXPnTjVv3vxWlQ0AAMo5i2EYhruLKG9ycnLk7++v7Oxs+fn5ubucciF88lp3lwAAuE2kvNTHJdsty/t3uR4DBAAA4AoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDqV3V2AGYVPXuvuEgAAMDWuAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANOpEAFo/vz5Cg8Pl7e3t6KiovTVV1+V2n/lypVq1qyZvL291apVK61bt+4WVQoAACqCch+AVqxYobi4OE2fPl179+5VmzZtFB0drVOnThXbf+fOnYqJidGIESO0b98+9evXT/369dP+/ftvceUAAKC8shiGYbi7iNJERUXpvvvu07x58yRJVqtVYWFheuqppzR58uQi/QcNGqS8vDx99tlntrb7779fERERWrhw4Q3tMycnR/7+/srOzpafn59zDuQq4ZPXOn2bAABUFCkv9XHJdsvy/l3ZJRU4SUFBgb7++mtNmTLF1lapUiV169ZNu3btKnadXbt2KS4uzq4tOjpaq1evLnE/+fn5ys/Pt81nZ2dL+vVEuoI1/xeXbBcAgIrAVe+vV7Z7I9d2ynUAOnPmjAoLCxUUFGTXHhQUpB9//LHYdTIyMortn5GRUeJ+4uPjNXPmzCLtYWFhDlQNAABK4z/Xtdu/cOGC/P39S+1TrgPQrTJlyhS7q0ZWq1Xnzp1T7dq1ZbFY3FhZ+ZaTk6OwsDCdOHHCJbcKUTzO+63HOXcPzvutV9HPuWEYunDhgkJDQ6/bt1wHoDp16sjDw0OZmZl27ZmZmQoODi52neDg4DL1lyQvLy95eXnZtdWoUcOxok3Iz8+vQv6iVHSc91uPc+4enPdbryKf8+td+bmiXD8F5unpqcjISG3ZssXWZrVatWXLFrVr167Yddq1a2fXX5I2bdpUYn8AAGA+5foKkCTFxcUpNjZW9957r9q2bau5c+cqLy9Pw4YNkyQNGTJEd9xxh+Lj4yVJ48aNU6dOnfTaa6+pT58+Wr58ufbs2aPFixe78zAAAEA5Uu4D0KBBg3T69GlNmzZNGRkZioiIUFJSkm2gc2pqqipV+t+FrPbt2+v999/Xs88+q6lTp6px48ZavXq1WrZs6a5DuG15eXlp+vTpRW4fwrU477ce59w9OO+3npnOebn/HCAAAABnK9djgAAAAFyBAAQAAEyHAAQAAEyHAAQAAEyHAAQAAEyHAASnSElJ0YgRI1S/fn35+PioYcOGmj59ugoKCtxd2m3tr3/9q9q3b6+qVavy6eUuNH/+fIWHh8vb21tRUVH66quv3F3SbW3Hjh3q27evQkNDZbFYSv0yazhHfHy87rvvPvn6+iowMFD9+vXTwYMH3V2WSxGA4BQ//vijrFarFi1apAMHDuj111/XwoULNXXqVHeXdlsrKCjQwIED9ac//cndpdy2VqxYobi4OE2fPl179+5VmzZtFB0drVOnTrm7tNtWXl6e2rRpo/nz57u7FNPYvn27xowZo927d2vTpk26dOmSevTooby8PHeX5jJ8DhBcZvbs2VqwYIGOHj3q7lJue4mJiRo/fryysrLcXcptJyoqSvfdd5/mzZsn6dev4wkLC9NTTz2lyZMnu7m625/FYtHHH3+sfv36ubsUUzl9+rQCAwO1fft2Pfjgg+4uxyW4AgSXyc7OVq1atdxdBuCwgoICff311+rWrZutrVKlSurWrZt27drlxsoA18rOzpak2/r/cAIQXOLw4cN68803NXr0aHeXAjjszJkzKiwstH31zhVBQUHKyMhwU1WAa1mtVo0fP14PPPDAbf01UgQglGry5MmyWCylTj/++KPdOj///LN69uypgQMHatSoUW6qvOJy5JwDgLOMGTNG+/fv1/Lly91dikuV+y9DhXtNmDBBQ4cOLbVPgwYNbP9OS0tTly5d1L59ey1evNjF1d2eynrO4Tp16tSRh4eHMjMz7dozMzMVHBzspqoA1xk7dqw+++wz7dixQ3Xr1nV3OS5FAEKpAgICFBAQcEN9f/75Z3Xp0kWRkZFKSEhQpUpcYHREWc45XMvT01ORkZHasmWLbRCu1WrVli1bNHbsWPcWBziRYRh66qmn9PHHH+vzzz9X/fr13V2SyxGA4BQ///yzOnfurHr16unVV1/V6dOnbcv4S9l1UlNTde7cOaWmpqqwsFDJycmSpEaNGql69eruLe42ERcXp9jYWN17771q27at5s6dq7y8PA0bNszdpd22cnNzdfjwYdv8sWPHlJycrFq1aunOO+90Y2W3rzFjxuj999/XmjVr5Ovraxvj5u/vLx8fHzdX5xo8Bg+nSExMLPENgZeY6wwdOlRLly4t0r5t2zZ17tz51hd0m5o3b55mz56tjIwMRURE6G9/+5uioqLcXdZt6/PPP1eXLl2KtMfGxioxMfHWF2QCFoul2PaEhITr3pKvqAhAAADAdBikAQAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATOf/Abr9CZnwep0XAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "np.random.seed(0)\n", "\n", "values = np.random.randn(100) # array of normally distributed random numbers\n", "s = pd.Series(values) # generate a pandas series\n", "s.plot(kind='hist', title='Normally distributed random values') # hist computes distribution\n", "plt.show() " ] } ], "metadata": { "kernelspec": { "display_name": "llmops-course", "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.11.9" } }, "nbformat": 4, "nbformat_minor": 2 }