File size: 19,107 Bytes
8635bca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Matplotlib is building the font cache; this may take a moment.\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "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.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}