{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "59db57ac-d174-4c88-b395-2204273a30f1",
   "metadata": {},
   "source": [
    "# Using Python for learning statistics Part 1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "282bf6aa-0555-4852-9a6b-1b58eb935b1c",
   "metadata": {},
   "source": [
    "This Juppyter notebook contains the code examples form the blog post [Python coding skills for statistics Part 1](https://docs.google.com/document/d/16WJnYeezBevUBvsYpbklW04ukvrtG_8QVdfsbd15pqg/edit).\n",
    "\n",
    "I've intentionally left empty code cells throughout the notebook,\n",
    "which you can use to try some Python commands on your own.\n",
    "For example,\n",
    "you can copy-paste some of the commands in previous cells,\n",
    "modify them and run to see what happens.\n",
    "Try to break things, that's the best way to learn!\n",
    "\n",
    "**To run a code cell, press** the play button in the menu bar, or use the keyboard shortcut **SHIFT+ENTER**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ed5832a3-6014-47df-96f9-f0d969c94077",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "3f689330-7def-4935-be79-520d1c0190b6",
   "metadata": {},
   "source": [
    "## What can python do for you?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7bf445c3-2d7c-48ac-90be-84417d51f685",
   "metadata": {},
   "source": [
    "### Using Python as a calculator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "6ff440f2-f2c4-4821-8af0-1bec72c2b608",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.5"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "2.1 + 3.4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a5d156a0-ac2f-4271-95e6-1f22f499b535",
   "metadata": {},
   "outputs": [],
   "source": [
    "num1 = 2.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1d87588a-e92e-4225-9ace-dbe533c4f4f6",
   "metadata": {},
   "outputs": [],
   "source": [
    "num2 = 3.4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a7eaa89b-cf12-477c-94b6-30641373ea55",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.5"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num1 + num2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "27790060-6a22-4f9f-93e4-b85ff7273287",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "678eddd7-8f7e-483b-ab28-eb28db48c6bd",
   "metadata": {},
   "source": [
    "Let's now compute the avarage of the numbers `num1` and `num2`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "305c829d-680e-4652-8399-2f55b40bee57",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.75"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(num1 + num2) / 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "08222c31-5369-4801-b65b-4733726f534b",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d84a4c83-e628-4d28-a559-883c3af78a13",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "a63a1efe-8635-45a9-8beb-9c9d05fad193",
   "metadata": {},
   "source": [
    "### Powerful primitives and builtin functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "57b9fab6-d2bd-4ebf-a191-eb83f81d6a0b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "75.0"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grades = [80, 90, 70, 60]\n",
    "avg = sum(grades) / len(grades)\n",
    "avg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1e3e7128-4902-4ee8-b83b-0e2bbfc31764",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "719d9567-6585-4794-89ba-e314cc8e148e",
   "metadata": {},
   "source": [
    "### For loops"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e097b267-e125-4f0f-bb06-5e6ef837fb48",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "75.0"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total = 0\n",
    "for grade in grades:\n",
    "    total = total + grade\n",
    "avg = total / len(grades)\n",
    "avg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "31dca516-7c74-42a8-9b93-44098a0249df",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "960b0808-0fff-47eb-9d7e-9069d3074c14",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "### Functions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92fff3a7-8337-4f7a-945d-80b93292f18e",
   "metadata": {},
   "source": [
    "Python functions are ..."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "31e5063f-59da-423e-a7ba-60f9e1906af3",
   "metadata": {},
   "source": [
    "To **define** the Python function,\n",
    "we use the `def` keyword followed by the function name,\n",
    "then we then specify the function input in parentheses,\n",
    "and end with the symbol `:`,\n",
    "which tells us \"body\" of the function is about to start.\n",
    "The function body is a four-spaces-indented code block that specifies all the\n",
    "calculations the function performs,\n",
    "and ends with a `return` statement for the output of the function.\n",
    "\n",
    "```\n",
    "def <fname>(<input>):\n",
    "    <fcalc 1>\n",
    "    <fcalc 2>\n",
    "    <fcalc ...>\n",
    "    return <output>\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f5142273-ad49-459a-8b55-32ffccee1db1",
   "metadata": {},
   "source": [
    "#### Example 1: sample mean\n",
    "\n",
    "We want to define a Python function `mean` that computes the mean from a given sample (a list of values).\n",
    "\n",
    "The mathematical definition of the mean is $\\mathbf{Mean}(\\mathbf{x}) = \\frac{1}{n}  \\sum_{i=1}^{i=n} x_i$,\n",
    "where $\\mathbf{x} = [x_1, x_2, x_3, \\ldots, x_n]$ is a sample of size $n$ (a list of values).\n",
    "\n",
    "The code for the function is as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ab6e7d58-79f9-4afd-9f85-b814b45eb1bb",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "def mean(values):\n",
    "    total = 0\n",
    "    for value in values:\n",
    "        total = total + value\n",
    "    avg = total / len(values)\n",
    "    return avg"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "346a10de-ad20-425a-b65b-c471874a7d3e",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "To **call** the function `mean` with input `grades`, we use the Python code `mean(grades)`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "ab56d567-0758-4b70-9b97-fb2cd1283deb",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "75.0"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grades = [80, 90, 70, 60]\n",
    "mean(grades)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bf781976-47b4-4a89-9f99-fdda0c48dd8a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "795538a1-fa68-43c8-b8ce-461d67d57842",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "#### Exmample 2: math function (bonus topic)\n",
    "\n",
    "In math, \n",
    "a function is a mapping from input values (usually denoted x) to output values (usually denoted y).\n",
    "Consider the mapping that doubles the input and adds five to it,\n",
    "which we can express as the math function $f(x) = 2x+5$.\n",
    "For any input $x$,\n",
    "the output of the function $f$ is denoted $f(x)$ and is equal to $2x+5$.\n",
    "For example, $f(3)$ describes the output of the function when the input is $x=3$,\n",
    "and it is equal to $2(3)+5 = 6 + 5 = 11$.\n",
    "The Python equivalent of the math function $f(x) = 2x+5$ is shown below. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "00fd3024-4329-4899-af02-2023a5e722f1",
   "metadata": {},
   "outputs": [],
   "source": [
    "def f(x):\n",
    "    y = 2*x + 5\n",
    "    return y"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "87abe9ef-97b1-4744-816b-7619539eff4e",
   "metadata": {},
   "source": [
    "To **call** the function `f` with input `x`, we simply writhe `f(x)` in Python,\n",
    "which is the same as the math notation we use for \"evaluate the function at the value x.\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "88d9656c-913f-4617-999b-d98460ec070d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "11"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5c4a84ba-e05d-4714-a525-8a2640147321",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "2483aa87-3da4-4b21-9f1c-be9899ba851f",
   "metadata": {},
   "source": [
    "## Why do you need coding for statistics?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3fdcf50f-49c5-4368-a924-ce53289cf298",
   "metadata": {},
   "source": [
    "### Data visualization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a70a4bc4-50a7-4b50-8706-b2295bf57eb4",
   "metadata": {},
   "outputs": [],
   "source": [
    "prices = [11.8, 10, 11, 8.6, 8.3, 9.4, 8, 6.8, 8.5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "5891ee22-6a6c-416d-a1bb-b283bb6a6519",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg0AAAGdCAYAAACRlkBKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAPjUlEQVR4nO3dTYidhb3H8f9JxElIZ1IMdF7qxCbR1iKieBdF6aLFEBGxLaWtihdjQ+FCs9CNaJHUhRWJShfWt40EiS/oIrpwE9SmLYKo3KhIkZiUkIamyUaTMyb40sxzF70Zmirjb8bjOTNPPx84C5/hPM///M/B+ebkTKbTNE1TAACfY8mgBwAAFgfRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQOSM+d5xenq6Dh06VMPDw9XpdHo5EwDwJWmapqampmpiYqKWLJnbewfzjoZDhw7V5OTkfO8OAAzQwYMH6+yzz57TfeYdDcPDwzMXHRkZme9pAIA+6na7NTk5OfN9fC7mHQ2n/kpiZGRENADAIjOfjxb4ICQAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBA5IxBD/Cvdv75cD20a1+9e+SD+uboV+qX3z+3rrhgbNBjMYt+Pme9ulZyHq/F2bV1P219XAuNPc9uIe+n0zRNM587drvdWrlyZR07dqxGRka+8CA7/3y4/mf7/54+XKfqkf/+rwWzLE7Xz+esV9dKzuO1OLu27qetj2uhsefZ9WM/X+T7d/zXEx999FF1u93Tbr300K59nzrWNFUP/eEvPb0OvdPP56xX10rO47U4u7bup62Pa6Gx59kt9P3E0XD33XfXypUrZ26Tk5M9HeTdIx985vG9R6Z6eh16p5/PWa+ulZzHa3F2bd1PWx/XQmPPs1vo+4mj4Ve/+lUdO3Zs5nbw4MGeDvLN0a985vHzRod7eh16p5/PWa+ulZzHa3F2bd1PWx/XQmPPs1vo+4mjYWhoqEZGRk679dIvv39udTqnH+t0qjZ/b11Pr0Pv9PM569W1kvN4Lc6urftp6+NaaOx5dgt9Pwvmg5BV//+J0T/8pfYemarzRodr8/fW1QYfjFnQ+vmc9epayXm8FmfX1v209XEtNPY8uy97P1/k+/eCigYA4MvVl5+eAAD+s4kGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgMgZ871j0zRVVdXtdns2DADw5Tr1ffvU9/G5mHc0TE1NVVXV5OTkfE8BAAzI1NRUrVy5ck736TTzSY2qmp6erkOHDtXw8HB1Op35nOJL1e12a3Jysg4ePFgjIyODHqfV7Lo/7Lk/7Lk/7Lk/PmvPTdPU1NRUTUxM1JIlc/uUwrzfaViyZEmdffbZ871734yMjHhB9old94c994c994c998e/73mu7zCc4oOQAEBENAAAkdZGw9DQUN1xxx01NDQ06FFaz677w577w577w577o9d7nvcHIQGA/yytfacBAOgt0QAAREQDABARDQBApHXR8I1vfKM6nc6nbps3bx70aK1y8uTJ2rJlS61Zs6aWL19e69atqzvvvHNe/5Y5s5uamqqbb765zjnnnFq+fHlddtll9frrrw96rEXvT3/6U1199dU1MTFRnU6nnnvuudO+3jRN/frXv67x8fFavnx5rV+/vvbu3TuYYRexz9vzjh07asOGDbVq1arqdDr15ptvDmTOxW62PX/yySd166231oUXXlgrVqyoiYmJuuGGG+rQoUNzvk7rouH111+vv//97zO3F154oaqqfvrTnw54snbZunVrPfzww/XAAw/UO++8U1u3bq177rmnfve73w16tNb5xS9+US+88EJt37693n777dqwYUOtX7++/va3vw16tEXt+PHjddFFF9WDDz74mV+/55576v77769HHnmkXn311VqxYkVdccUV9eGHH/Z50sXt8/Z8/Pjx+u53v1tbt27t82TtMtueT5w4Ubt3764tW7bU7t27a8eOHbVnz576wQ9+MPcLNS130003NevWrWump6cHPUqrXHXVVc2mTZtOO/bjH/+4uf766wc0UTudOHGiWbp0afP888+fdvySSy5pbr/99gFN1T5V1Tz77LMz/z09Pd2MjY01995778yxo0ePNkNDQ81TTz01gAnb4d/3/K/279/fVFXzxhtv9HWmNpptz6e89tprTVU1Bw4cmNO5W/dOw7/6+OOP6/HHH69NmzYtyF+qtZhddtll9dJLL9W7775bVVVvvfVWvfzyy3XllVcOeLJ2+cc//lEnT56sZcuWnXZ8+fLl9fLLLw9oqvbbv39/HT58uNavXz9zbOXKlfWd73ynXnnllQFOBr1x7Nix6nQ69dWvfnVO95v3L6xaDJ577rk6evRo3XjjjYMepXVuu+226na7df7559fSpUvr5MmTddddd9X1118/6NFaZXh4uC699NK6884769vf/naNjo7WU089Va+88kqde+65gx6vtQ4fPlxVVaOjo6cdHx0dnfkaLFYffvhh3XrrrXXdddfN+ZeFtfqdhkcffbSuvPLKmpiYGPQorfPMM8/UE088UU8++WTt3r27HnvssbrvvvvqscceG/RorbN9+/Zqmqa+/vWv19DQUN1///113XXXzflX2gJ88skn9bOf/ayapqmHH354zvdv7TsNBw4cqBdffLF27Ngx6FFa6ZZbbqnbbrutrr322qqquvDCC+vAgQN1991318aNGwc8XbusW7eu/vjHP9bx48er2+3W+Ph4XXPNNbV27dpBj9ZaY2NjVVV15MiRGh8fnzl+5MiRuvjiiwc0FXwxp4LhwIED9fvf/35ev5K8tX9U2bZtW33ta1+rq666atCjtNKJEyc+9SfdpUuX1vT09IAmar8VK1bU+Ph4vf/++7Vz58764Q9/OOiRWmvNmjU1NjZWL7300syxbrdbr776al166aUDnAzm51Qw7N27t1588cVatWrVvM7Tyncapqena9u2bbVx48Y644xWPsSBu/rqq+uuu+6q1atX1wUXXFBvvPFG/fa3v61NmzYNerTW2blzZzVNU9/61rdq3759dcstt9T5559fP//5zwc92qL2wQcf1L59+2b+e//+/fXmm2/WWWedVatXr66bb765fvOb39R5551Xa9asqS1bttTExET96Ec/GtzQi9Dn7fm9996rv/71rzP/ZsCePXuq6p/v9px6x4fPN9uex8fH6yc/+Unt3r27nn/++Tp58uTMZ3POOuusOvPMM/MLzfdHOhaynTt3NlXV7NmzZ9CjtFa3221uuummZvXq1c2yZcuatWvXNrfffnvz0UcfDXq01nn66aebtWvXNmeeeWYzNjbWbN68uTl69Oigx1r0du3a1VTVp24bN25smuafP3a5ZcuWZnR0tBkaGmouv/xy/0+Zh8/b87Zt2z7z63fcccdA515sZtvzqR9n/azbrl275nQdvxobAIi09jMNAEBviQYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACL/B/y6ZpnmPzipAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "sns.stripplot(x=prices, jitter=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "02caade4-678c-4681-893b-04e22a865903",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: ylabel='Count'>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.histplot(x=prices)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8455cb4d-6c7b-4341-80a2-bd67126f5383",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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pIgGACBFNAAAKS0XDdddd11UKpU/XVauXFn2aC1leHg4+vr6Ys6cOdHW1hbz5s2L559/flx/y5y/NzAwEKtXr45rr7022tra4o477oj9+/eXPdaE9/nnn8fSpUuju7s7KpVKfPzxx7/7flEU8eyzz0ZXV1e0tbXFokWL4tChQ+UMO4FdbJ23bdsWixcvjpkzZ0alUokDBw6UMudE93frfPbs2Vi7dm0sWLAgpk2bFt3d3fH444/H8ePHx7ydlouG/fv3x48//jh62bVrV0REPPTQQyVP1lo2bdoUb7zxRrz22mvx7bffxqZNm2Lz5s3x6quvlj1ay3nqqadi165d8c4778Q333wTixcvjkWLFsUPP/xQ9mgT2unTp+OWW26J119//S+/v3nz5njllVfizTffjC+++CKmTZsWd999dwwODjZ40ontYut8+vTpuPPOO2PTpk0Nnqy1/N06nzlzJvr7+6Ovry/6+/tj27ZtcfDgwbjnnnvGvqGixa1ataqYN29eMTIyUvYoLWXJkiXFihUrfnfbAw88UDz22GMlTdSazpw5U0yePLnYvn37726/7bbbivXr15c0VeuJiOKjjz4a/XpkZKTo7OwsXnzxxdHbTp06VVSr1WLr1q0lTNga/rjOFzpy5EgREcVXX33V0Jla0d+t83lffvllERHF0aNHx/TYLXem4UK//fZbvPvuu7FixYqm/FCtieyOO+6IPXv2xHfffRcREV9//XXs3bs3ent7S56stZw7dy6Gh4ejVqv97va2trbYu3dvSVO1viNHjsSJEydi0aJFo7fNmDEjbr/99ti3b1+Jk8Gl8csvv0SlUokrr7xyTPcb9wdWTQQff/xxnDp1Kp544omyR2k569ati3q9HvPnz4/JkyfH8PBwbNiwIR577LGyR2sp7e3tsXDhwnj++efjpptuio6Ojti6dWvs27cvrr/++rLHa1knTpyIiIiOjo7f3d7R0TH6PZioBgcHY+3atbFs2bIxf1hYS59peOutt6K3tze6u7vLHqXlfPjhh/Hee+/F+++/H/39/fH222/HSy+9FG+//XbZo7Wcd955J4qiiGuuuSaq1Wq88sorsWzZsjF/pC3A2bNn4+GHH46iKOKNN94Y8/1b9kzD0aNHY/fu3bFt27ayR2lJa9asiXXr1sWjjz4aERELFiyIo0ePxsaNG2P58uUlT9da5s2bF5999lmcPn066vV6dHV1xSOPPBJz584te7SW1dnZGRERJ0+ejK6urtHbT548GbfeemtJU8H/z/lgOHr0aHzyySfj+kjylv1RZcuWLXH11VfHkiVLyh6lJZ05c+ZPP+lOnjw5RkZGSpqo9U2bNi26urri559/jp07d8a9995b9kgta86cOdHZ2Rl79uwZva1er8cXX3wRCxcuLHEyGJ/zwXDo0KHYvXt3zJw5c1yP05JnGkZGRmLLli2xfPnymDKlJf+JpVu6dGls2LAhZs+eHTfffHN89dVX8fLLL8eKFSvKHq3l7Ny5M4qiiBtvvDEOHz4ca9asifnz58eTTz5Z9mgT2q+//hqHDx8e/frIkSNx4MCBuOqqq2L27NmxevXqeOGFF+KGG26IOXPmRF9fX3R3d8d9991X3tAT0MXW+aefforvv/9+9G8GHDx4MCL+d7bn/BkfLu7v1rmrqysefPDB6O/vj+3bt8fw8PDoe3OuuuqqmDp1an5D4/2Vjma2c+fOIiKKgwcPlj1Ky6rX68WqVauK2bNnF7VarZg7d26xfv36YmhoqOzRWs4HH3xQzJ07t5g6dWrR2dlZrFy5sjh16lTZY014n376aRERf7osX768KIr//dplX19f0dHRUVSr1eKuu+6yTxmHi63zli1b/vL7zz33XKlzTzR/t87nf531ry6ffvrpmLbjo7EBgJSWfU8DAHBpiQYAIEU0AAApogEASBENAECKaAAAUkQDAJAiGgCAFNEAAKSIBgAgRTQAACmiAQBI+S9LP1Vxlv4agwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.boxplot(x=prices)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "821cd7f4-9a4a-4c0f-b541-26c5b24abc6f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8e2d5bc9-fb90-4076-af3a-5d1199767b42",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "d501518b-8e77-4f7d-9346-82f3c071c1e0",
   "metadata": {},
   "source": [
    "### Descriptive statistics"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5727115b-f58d-44ca-bf14-98eca6ac0ea4",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "#### Data manipulations using Pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "e4b22ff8-db8a-413b-bc55-61f2b64a0de9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   East  West\n",
      "0   7.7  11.8\n",
      "1   5.9  10.0\n",
      "2   7.0  11.0\n",
      "3   4.8   8.6\n",
      "4   6.3   8.3\n",
      "5   6.3   9.4\n",
      "6   5.5   8.0\n",
      "7   5.4   6.8\n",
      "8   6.5   8.5\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "epriceswide = pd.read_csv(\"https://nobsstats.com/datasets/epriceswide.csv\")\n",
    "print(epriceswide)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "386037ed-cadc-455c-81b7-7877bbbbd706",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.frame.DataFrame"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(epriceswide)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3b7b850f-2022-4a84-ab3b-bf7bf145cd7b",
   "metadata": {},
   "source": [
    "We want to extract only the second column which is called \"West\":"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "38c52689-1b5a-4053-8f76-c10a7b76cd72",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    11.8\n",
       "1    10.0\n",
       "2    11.0\n",
       "3     8.6\n",
       "4     8.3\n",
       "5     9.4\n",
       "6     8.0\n",
       "7     6.8\n",
       "8     8.5\n",
       "Name: West, dtype: float64"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pricesW = epriceswide[\"West\"]\n",
    "pricesW"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "927b21a6-7b75-4ac5-b93c-2b5632e0b608",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.series.Series"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(pricesW)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "cd3b487a-545b-4680-b315-2e7d0471d63d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# # ALT. we can input data by specifying lists of values\n",
    "# pricesW = pd.Series([11.8,10,11,8.6,8.3,9.4,8,6.8,8.5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5cba1717-1e3b-4f94-b908-9c15381ce079",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "a70b603e-1fcd-4271-8c56-ba75ba5b2b4e",
   "metadata": {},
   "source": [
    "#### Descriptive statistics using pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "70075246-d2b0-48f0-9c26-b00b20c05bc7",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pricesW.count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4bf01229-90ea-4352-a26e-7d4fa6c766c2",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9.155555555555557"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pricesW.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "083041a3-4007-4ccd-aec5-2dbaba3fd41b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8.6"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pricesW.median()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "aaff543c-6428-48b7-922a-3b3273324402",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.5621388471508475"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pricesW.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "81a08643-8207-4130-93f8-8e9227f54c2e",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count     9.000000\n",
       "mean      9.155556\n",
       "std       1.562139\n",
       "min       6.800000\n",
       "25%       8.300000\n",
       "50%       8.600000\n",
       "75%      10.000000\n",
       "max      11.800000\n",
       "Name: West, dtype: float64"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pricesW.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0060b041-0300-4c5d-b92b-49e0b7f26511",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "345999ef-eab8-4c4d-b590-38cffc41460f",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "### Data cleaning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c63e5acf-1ba4-4ee7-a392-cea2a5be8b13",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "d23d66f9-3842-41c4-b6d4-48e039a9c42b",
   "metadata": {},
   "source": [
    "## How much Python do you need to know?\n",
    "\n",
    "I remind you the key aspect is to learn how to use Python as a calculator.\n",
    "\n",
    "I talked about the `for`-loops and function definitions only to make sure you can **read Python code**,\n",
    "but you don't need to write any such code to learn statistics.\n",
    "As long as you know how to call functions and run code cells in a notebook,\n",
    "then you'll still benefit from all the educational power that Python has to offer.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "28fae377-556f-4e40-b477-5add145298ea",
   "metadata": {},
   "source": [
    "## Conclusion\n",
    "\n",
    "Python = good for your life!"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e959a84d-532e-4138-9652-239cf888d279",
   "metadata": {},
   "source": [
    "## Links\n",
    "\n",
    "- Book website [noBSstats.com](https://nobsstats.com/intro.html): contains all the notebooks, demos, and visualizations from the book.\n",
    "- [Detailed book outline](https://docs.google.com/document/d/1fwep23-95U-w1QMPU31nOvUnUXE2X3s_Dbk5JuLlKAY/edit): continuously updated list of the topics that are covered in each section\n",
    "- [Python tutorial](https://nobsstats.com/tutorials/python_tutorial.html): introduction to Python syntax, data types, functions and other constructs.\n",
    "  See also the [Pandas tutorial](https://nobsstats.com/tutorials/pandas_tutorial.html) (WIP) and the [Seaborn tutorial](https://nobsstats.com/tutorials/seaborn_tutorial.html) (WIP).\n",
    "- Previous blog posts about statistics book:\n",
    "  - [Outline of the stats curriculum research](https://minireference.com/blog/fixing-the-introductory-statistics-curriculum/)\n",
    "  - [Book proposal](https://minireference.com/blog/no-bullshit-guide-to-statistics-progress-update/)\n",
    "  - [Stats survey results](https://minireference.com/blog/what-stats-do-people-want-to-learn/)\n",
    "  - [Python coding skills for statistics - PART 2](https://docs.google.com/document/d/1XusbfJoZ7CQxbeWPPXMM84BA-VeUn8lkPUuUy7RcW8M/edit): probability and statistics procedures\n",
    "  - PART 3: coming soon"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "87d99089-d5ef-4202-81ab-0b6634e21ede",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "77d4957e-93ec-4dac-b79f-4ef446e01a44",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "source": [
    "### Python error messages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "9753d6e6-ed60-4991-b1ff-877bc0a3f8c7",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": [
     "raises-exception"
    ]
   },
   "outputs": [
    {
     "ename": "ZeroDivisionError",
     "evalue": "division by zero",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mZeroDivisionError\u001b[0m                         Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[26], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;241;43m3\u001b[39;49m\u001b[38;5;241;43m/\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\n",
      "\u001b[0;31mZeroDivisionError\u001b[0m: division by zero"
     ]
    }
   ],
   "source": [
    "3/0"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.9.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}