{ "cells": [ { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: matplotlib in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (3.5.2)\n", "Requirement already satisfied: numpy in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (1.22.4)\n", "Requirement already satisfied: ipywidgets in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (7.7.0)\n", "Requirement already satisfied: ipympl in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (0.9.1)\n", "Collecting seaborn\n", " Using cached seaborn-0.11.2-py3-none-any.whl (292 kB)\n", "Requirement already satisfied: cycler>=0.10 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from matplotlib) (0.11.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from matplotlib) (1.4.3)\n", "Requirement already satisfied: fonttools>=4.22.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from matplotlib) (4.33.3)\n", "Requirement already satisfied: pyparsing>=2.2.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from matplotlib) (3.0.6)\n", "Requirement already satisfied: pillow>=6.2.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from matplotlib) (9.1.1)\n", "Requirement already satisfied: packaging>=20.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from matplotlib) (21.3)\n", "Requirement already satisfied: python-dateutil>=2.7 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", "Requirement already satisfied: ipython>=4.0.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipywidgets) (8.0.0)\n", "Requirement already satisfied: traitlets>=4.3.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipywidgets) (5.1.1)\n", "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipywidgets) (1.1.0)\n", "Requirement already satisfied: nbformat>=4.2.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipywidgets) (5.1.3)\n", "Requirement already satisfied: ipykernel>=4.5.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipywidgets) (6.7.0)\n", "Requirement already satisfied: ipython-genutils~=0.2.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipywidgets) (0.2.0)\n", "Requirement already satisfied: widgetsnbextension~=3.6.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipywidgets) (3.6.0)\n", "Collecting pandas>=0.23\n", " Downloading pandas-1.4.2-cp310-cp310-macosx_10_9_x86_64.whl (11.1 MB)\n", " |████████████████████████████████| 11.1 MB 417 kB/s \n", "\u001b[?25hCollecting scipy>=1.0\n", " Downloading scipy-1.8.1-cp310-cp310-macosx_12_0_universal2.macosx_10_9_x86_64.whl (55.7 MB)\n", " |████████████████████████████████| 55.7 MB 179 kB/s | 41.5 MB 17.2 MB/s eta 0:00:013 MB 3.4 MB/s eta 0:00:04 B/s eta 0:00:02 \n", "\u001b[?25hRequirement already satisfied: debugpy<2.0,>=1.0.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)\n", "Requirement already satisfied: nest-asyncio in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.4)\n", "Requirement already satisfied: appnope in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.2)\n", "Requirement already satisfied: jupyter-client<8.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets) (7.1.1)\n", "Requirement already satisfied: matplotlib-inline<0.2.0,>=0.1.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.3)\n", "Requirement already satisfied: tornado<7.0,>=4.2 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)\n", "Requirement already satisfied: black in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (21.12b0)\n", "Requirement already satisfied: pygments in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)\n", "Requirement already satisfied: pickleshare in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n", "Requirement already satisfied: pexpect>4.3 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (4.8.0)\n", "Requirement already satisfied: stack-data in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (0.1.4)\n", "Requirement already satisfied: backcall in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n", "Requirement already satisfied: setuptools>=18.5 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (60.5.0)\n", "Requirement already satisfied: jedi>=0.16 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)\n", "Requirement already satisfied: decorator in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)\n", "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from ipython>=4.0.0->ipywidgets) (3.0.24)\n", "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbformat>=4.2.0->ipywidgets) (4.4.0)\n", "Requirement already satisfied: jupyter-core in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbformat>=4.2.0->ipywidgets) (4.9.1)\n", "Collecting pytz>=2020.1\n", " Downloading pytz-2022.1-py2.py3-none-any.whl (503 kB)\n", " |████████████████████████████████| 503 kB 20.5 MB/s \n", "\u001b[?25hRequirement already satisfied: six>=1.5 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", "Requirement already satisfied: notebook>=4.4.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.4.7)\n", "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)\n", "Requirement already satisfied: attrs>=17.4.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (21.4.0)\n", "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets) (0.18.0)\n", "Requirement already satisfied: pyzmq>=13 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (22.3.0)\n", "Requirement already satisfied: entrypoints in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from jupyter-client<8.0->ipykernel>=4.5.1->ipywidgets) (0.3)\n", "Requirement already satisfied: nbconvert in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.4.0)\n", "Requirement already satisfied: terminado>=0.8.3 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.12.1)\n", "Requirement already satisfied: jinja2 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.3)\n", "Requirement already satisfied: prometheus-client in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.12.0)\n", "Requirement already satisfied: Send2Trash>=1.8.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n", "Requirement already satisfied: argon2-cffi in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.3.0)\n", "Requirement already satisfied: ptyprocess>=0.5 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n", "Requirement already satisfied: wcwidth in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.5)\n", "Requirement already satisfied: click>=7.1.2 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from black->ipython>=4.0.0->ipywidgets) (8.0.3)\n", "Requirement already satisfied: pathspec<1,>=0.9.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.9.0)\n", "Requirement already satisfied: mypy-extensions>=0.4.3 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from black->ipython>=4.0.0->ipywidgets) (0.4.3)\n", "Requirement already satisfied: typing-extensions!=3.10.0.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from black->ipython>=4.0.0->ipywidgets) (4.0.1)\n", "Requirement already satisfied: tomli<2.0.0,>=0.2.6 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from black->ipython>=4.0.0->ipywidgets) (1.2.2)\n", "Requirement already satisfied: platformdirs>=2 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from black->ipython>=4.0.0->ipywidgets) (2.3.0)\n", "Requirement already satisfied: executing in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.2)\n", "Requirement already satisfied: asttokens in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)\n", "Requirement already satisfied: pure-eval in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.1)\n", "Requirement already satisfied: argon2-cffi-bindings in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.0.1)\n", "Requirement already satisfied: bleach in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.1.0)\n", "Requirement already satisfied: jupyterlab-pygments in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.1.2)\n", "Requirement already satisfied: mistune<2,>=0.8.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.8.4)\n", "Requirement already satisfied: pandocfilters>=1.4.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.0)\n", "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.10)\n", "Requirement already satisfied: testpath in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.0)\n", "Requirement already satisfied: defusedxml in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n", "Requirement already satisfied: cffi>=1.0.1 in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.15.0)\n", "Requirement already satisfied: webencodings in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n", "Requirement already satisfied: pycparser in /Users/sebastian/opt/anaconda3/envs/robotics/lib/python3.10/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21)\n", "Installing collected packages: pytz, scipy, pandas, seaborn\n", "Successfully installed pandas-1.4.2 pytz-2022.1 scipy-1.8.1 seaborn-0.11.2\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "###### Install those packages (simply change cell type to code and run)\n", "%pip install matplotlib numpy ipywidgets ipympl seaborn pandas" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "%matplotlib widget\n", "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def values():\n", " return np.linspace(0.0, 40.0, 41)**2 / 100" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def error(values, mean=0, sigma=1.0, seed=0):\n", " np.random.RandomState(seed)\n", " values += np.random.normal(loc=mean, scale=sigma, size=values.shape)\n", " return values" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "def mean_filter(x, filter_len=4):\n", " filtered = np.zeros_like(x)\n", " for t in range(len(x)):\n", " lower_bound = max([0, t-filter_len])\n", " filtered[t] = np.mean(x[lower_bound:t+1])\n", " return filtered" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | t | \n", "truth | \n", "error | \n", "value | \n", "filter | \n", "
---|---|---|---|---|---|
0 | \n", "0 | \n", "0.00 | \n", "0.000000 | \n", "0.000000 | \n", "perfect | \n", "
1 | \n", "1 | \n", "0.01 | \n", "0.000000 | \n", "0.010000 | \n", "perfect | \n", "
2 | \n", "2 | \n", "0.04 | \n", "0.000000 | \n", "0.040000 | \n", "perfect | \n", "
3 | \n", "3 | \n", "0.09 | \n", "0.000000 | \n", "0.090000 | \n", "perfect | \n", "
4 | \n", "4 | \n", "0.16 | \n", "0.000000 | \n", "0.160000 | \n", "perfect | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
118 | \n", "36 | \n", "12.96 | \n", "-1.448805 | \n", "11.511195 | \n", "meanfilter | \n", "
119 | \n", "37 | \n", "13.69 | \n", "-1.412889 | \n", "12.277111 | \n", "meanfilter | \n", "
120 | \n", "38 | \n", "14.44 | \n", "-1.669007 | \n", "12.770993 | \n", "meanfilter | \n", "
121 | \n", "39 | \n", "15.21 | \n", "-1.629627 | \n", "13.580373 | \n", "meanfilter | \n", "
122 | \n", "40 | \n", "16.00 | \n", "-1.470455 | \n", "14.529545 | \n", "meanfilter | \n", "
123 rows × 5 columns
\n", "