{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mockup Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To test the `FeatureExtractor` class from the `time_domain_features.py` script with a simple mockup dataset of 5 to 10 data points directly in a Python notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Importing Modules\n",
"\n",
"Use relative imports or modify the path to include the directory where the module is stored. In this example, we’ll simulate the relative import setup."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create Mockup Data\n",
"\n",
"Create a small dataset with 5 to 10 data points. Simulate importing the `FeatureExtractor` from its relative path in the notebooks directory."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" SampleData \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.496714 \n",
" \n",
" \n",
" 1 \n",
" -0.138264 \n",
" \n",
" \n",
" 2 \n",
" 0.647689 \n",
" \n",
" \n",
" 3 \n",
" 1.523030 \n",
" \n",
" \n",
" 4 \n",
" -0.234153 \n",
" \n",
" \n",
" 5 \n",
" -0.234137 \n",
" \n",
" \n",
" 6 \n",
" 1.579213 \n",
" \n",
" \n",
" 7 \n",
" 0.767435 \n",
" \n",
" \n",
" 8 \n",
" -0.469474 \n",
" \n",
" \n",
" 9 \n",
" 0.542560 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SampleData\n",
"0 0.496714\n",
"1 -0.138264\n",
"2 0.647689\n",
"3 1.523030\n",
"4 -0.234153\n",
"5 -0.234137\n",
"6 1.579213\n",
"7 0.767435\n",
"8 -0.469474\n",
"9 0.542560"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create mockup data\n",
"np.random.seed(42) # For reproducibility\n",
"mock_data = np.random.randn(10) # Generate 10 random data points\n",
"\n",
"# Convert to DataFrame (simulating processed data input)\n",
"mock_df = pd.DataFrame(mock_data, columns=['SampleData'])\n",
"mock_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Visualize Data Points"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAIjCAYAAADlfxjoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACINklEQVR4nO3dd3hUVfoH8O9k0kmFEEIgkFBDpFcpgdA7SpGqNGV/7qKAuLqiLlXALnZWXQFRFEUUpIdepQfpNfTQISEJpM39/XH2ppA2mczMmTv3+3mePHMymfJObso7577nPQZFURQQERERETk5F9kBEBERERHZAxNfIiIiItIFJr5EREREpAtMfImIiIhIF5j4EhEREZEuMPElIiIiIl1g4ktEREREusDEl4iIiIh0gYkvEREREekCE18iIjs7f/48DAYD5s+fLzuUPNasWYOGDRvC09MTBoMB9+7dkx2SwwoPD8fIkSNlh0FEJcTEl4is5vDhwxgwYACqVq0KT09PVKpUCZ07d8ann35qs+dctGgR5syZk+/6q1evYurUqYiLi7PZcz9q8+bNMBgM2R9ubm6oVq0ahg8fjnPnzlnlOXbu3ImpU6daPSm9ffs2Bg4cCC8vL3z++edYuHAhypQpU+Bt58+fn+d1enp6IjQ0FF27dsUnn3yC+/fvWxyHrV7f1KlT88Ts7e2NqKgovPnmm0hKSrLqcxXniy++cLg3PUR64So7ACJyDjt37kT79u1RpUoVjBkzBiEhIbh06RL+/PNPfPzxx3jxxRdt8ryLFi3CkSNHMGHChDzXX716FdOmTUN4eDgaNmxok+cuzLhx49CsWTNkZGTgwIED+Oqrr7By5UocPnwYoaGhpXrsnTt3Ytq0aRg5ciQCAgKsEzCAvXv34v79+5gxYwY6depk1n2mT5+OiIgIZGRk4Nq1a9i8eTMmTJiADz/8EMuXL0f9+vVLHIetXp/qyy+/hI+PD5KTk7Fu3TrMnDkTGzduxI4dO2AwGMx+nJMnT8LFxbK5oy+++AJBQUGcMSaSgIkvEVnFzJkz4e/vj7179+ZLWG7cuCEnKBtISUkpdCZUFR0djQEDBgAARo0ahVq1amHcuHFYsGABJk2aZI8wS0w9RiVJNrt3746mTZtmfz5p0iRs3LgRvXr1Qp8+fXD8+HF4eXlZO9RSGTBgAIKCggAAzz//PPr374+lS5fizz//RMuWLc1+HA8PD1uFSEQ2xFIHIrKKs2fP4rHHHiswcQoODs533ffff4/mzZvD29sbgYGBaNu2LdatW5f99WXLlqFnz54IDQ2Fh4cHqlevjhkzZiArKyv7NjExMVi5ciUuXLiQfQo7PDwcmzdvRrNmzQCIxFP9Wu7Ty7t370a3bt3g7+8Pb29vtGvXDjt27MgTo3p6/NixYxg6dCgCAwPRpk2bEn9vOnToAACIj48v8nYbN25EdHQ0ypQpg4CAADzxxBM4fvx4nnheeeUVAEBERET26zp//nyRj/vLL7+gSZMm8PLyQlBQEJ5++mlcuXIl++sxMTEYMWIEAKBZs2YwGAwWz0Z26NAB//73v3HhwgV8//332df/9ddfGDlyJKpVqwZPT0+EhIRg9OjRuH37ttmvb968eejQoQOCg4Ph4eGBqKgofPnllxbFmTteIOfYpKSk4OWXX0ZYWBg8PDxQu3ZtvP/++1AUJc/9Hq3xVcs/duzYgYkTJ6J8+fIoU6YM+vbti5s3b+a539GjR7Fly5bs1xcTEwMAyMjIwLRp01CzZk14enqiXLlyaNOmDWJjY0v1GokoB2d8icgqqlatil27duHIkSOoW7dukbedNm0apk6dilatWmH69Olwd3fH7t27sXHjRnTp0gWASCR8fHwwceJE+Pj4YOPGjZg8eTKSkpLw3nvvAQDeeOMNJCYm4vLly/joo48AAD4+PqhTpw6mT5+OyZMn429/+xuio6MBAK1atQIgEszu3bujSZMmmDJlClxcXLKTqm3btqF58+Z54n3qqadQs2ZNzJo1K18CZI6zZ88CAMqVK1fobdavX4/u3bujWrVqmDp1Kh48eIBPP/0UrVu3xoEDBxAeHo5+/frh1KlT+PHHH/HRRx9lz1yWL1++0MedP38+Ro0ahWbNmmH27Nm4fv06Pv74Y+zYsQMHDx5EQEAA3njjDdSuXRtfffVVdvlC9erVS/w6Vc888wxef/11rFu3DmPGjAEAxMbG4ty5cxg1ahRCQkJw9OhRfPXVVzh69Cj+/PNPGAyGYl/fl19+icceewx9+vSBq6sr/vjjD/zjH/+AyWTC2LFjLYo197FRFAV9+vTBpk2b8Oyzz6Jhw4ZYu3YtXnnlFVy5ciX7Z6woL774IgIDAzFlyhScP38ec+bMwQsvvIDFixcDAObMmYMXX3wRPj4+eOONNwAAFSpUACAS/9mzZ+O5555D8+bNkZSUhH379uHAgQPo3LmzRa+PiB6hEBFZwbp16xSj0agYjUalZcuWyquvvqqsXbtWSU9Pz3O706dPKy4uLkrfvn2VrKysPF8zmUzZ49TU1HzP8X//93+Kt7e38vDhw+zrevbsqVStWjXfbffu3asAUObNm5fvOWrWrKl07do13/NFREQonTt3zr5uypQpCgBlyJAhZn0PNm3apABQvv32W+XmzZvK1atXlZUrVyrh4eGKwWBQ9u7dqyiKosTHx+eLrWHDhkpwcLBy+/bt7OsOHTqkuLi4KMOHD8++7r333lMAKPHx8cXGk56ergQHByt169ZVHjx4kH39ihUrFADK5MmTs6+bN2+eAiA7xqKYc1t/f3+lUaNG2Z8XdDx//PFHBYCydevW7OuKen0FPUbXrl2VatWqFRuzeixPnjyp3Lx5U4mPj1f+85//KB4eHkqFChWUlJQU5ffff1cAKG+99Vae+w4YMEAxGAzKmTNnsq+rWrWqMmLEiOzP1e9Jp06d8vxcvfTSS4rRaFTu3buXfd1jjz2mtGvXLl+MDRo0UHr27FnsayEiy7HUgYisonPnzti1axf69OmDQ4cO4d1330XXrl1RqVIlLF++PPt2v//+O0wmEyZPnpxvcVDuxUW5a0Pv37+PW7duITo6GqmpqThx4oTFccbFxeH06dMYOnQobt++jVu3buHWrVtISUlBx44dsXXrVphMpjz3ef7550v0HKNHj0b58uURGhqKnj17IiUlBQsWLMhTD5tbQkIC4uLiMHLkSJQtWzb7+vr166Nz585YtWpVyV8ogH379uHGjRv4xz/+AU9Pz+zre/bsicjISKxcudKixzWHj49Pnu4OuY/nw4cPcevWLTz++OMAgAMHDpj1mLkfIzExEbdu3UK7du1w7tw5JCYmmvUYtWvXRvny5REREYH/+7//Q40aNbBy5Up4e3tj1apVMBqNGDduXJ77vPzyy1AUBatXry728f/2t7/l+TmOjo5GVlYWLly4UOx9AwICcPToUZw+fdqs10JEJcdSByKymmbNmmHp0qVIT0/HoUOH8Ntvv+Gjjz7CgAEDEBcXh6ioKJw9exYuLi6Iiooq8rGOHj2KN998Exs3bszXbsrcJKcgalKh1rQWJDExEYGBgdmfR0RElOg5Jk+ejOjoaBiNRgQFBaFOnTpwdS38z62aFNWuXTvf1+rUqYO1a9eataiuJI8bGRmJ7du3l+jxSiI5OTlPbfedO3cwbdo0/PTTT/kWO5p7PHfs2IEpU6Zg165dSE1NzfcY/v7+xT7Gr7/+Cj8/P7i5uaFy5cp5SjouXLiA0NBQ+Pr65rlPnTp1sr9enCpVquT5XP05unv3brH3nT59Op544gnUqlULdevWRbdu3fDMM89Y1B2DiArGxJeIrM7d3R3NmjVDs2bNUKtWLYwaNQq//PILpkyZYtb97927h3bt2sHPzw/Tp09H9erV4enpiQMHDuBf//pXvhnZklDv+9577xXa5szHxyfP5yXtTFCvXj2zW4I5o8uXLyMxMRE1atTIvm7gwIHYuXMnXnnlFTRs2BA+Pj4wmUzo1q2bWcfz7Nmz6NixIyIjI/Hhhx8iLCwM7u7uWLVqFT766COzfybatm2bXTtsC0ajscDrFTNqw9u2bYuzZ89i2bJlWLduHb755ht89NFHmDt3Lp577jlrh0qkS0x8icim1NP7CQkJAIDq1avDZDLh2LFjhSaemzdvxu3bt7F06VK0bds2+/qCuiIU1nu1sOvVGT4/Pz+HSU6rVq0KQPSGfdSJEycQFBSUPdtbkl6zuR9X7V6gOnnyZPbXrW3hwoUAgK5duwIQs50bNmzAtGnTMHny5OzbFXRKv7DX98cffyAtLQ3Lly/PM6u6adMmq8VdtWpVrF+/Hvfv388z66uW1ljr+1XUMSxbtixGjRqFUaNGITk5GW3btsXUqVOZ+BJZCWt8icgqNm3aVOCsllqfqp5uf/LJJ+Hi4oLp06fnm6VT76/OmuV+vPT0dHzxxRf5Hr9MmTIFnipXE8VHdwBr0qQJqlevjvfffx/Jycn57pe79ZS9VKxYEQ0bNsSCBQvyxHvkyBGsW7cOPXr0yL6usNdVkKZNmyI4OBhz585FWlpa9vWrV6/G8ePH0bNnT6u9BtXGjRsxY8YMREREYNiwYQAKPp4ACtxxr7DXV9BjJCYmYt68edYKHT169EBWVhY+++yzPNd/9NFHMBgM6N69u1Wep0yZMgUev9yt3QBx5qFGjRp5jh0RlQ5nfInIKl588UWkpqaib9++iIyMRHp6Onbu3InFixcjPDwco0aNAgDUqFEDb7zxBmbMmIHo6Gj069cPHh4e2Lt3L0JDQzF79my0atUKgYGBGDFiBMaNGweDwYCFCxcWmFg3adIEixcvxsSJE9GsWTP4+Pigd+/eqF69OgICAjB37lz4+vqiTJkyaNGiBSIiIvDNN9+ge/fueOyxxzBq1ChUqlQJV65cwaZNm+Dn54c//vjD3t8+vPfee+jevTtatmyJZ599Nrudmb+/P6ZOnZrn9QKildvgwYPh5uaG3r17F1j/6+bmhnfeeQejRo1Cu3btMGTIkOx2ZuHh4XjppZdKFfPq1atx4sQJZGZm4vr169i4cSNiY2NRtWpVLF++PHtBnZ+fH9q2bYt3330XGRkZqFSpEtatW1fgDH5hr69Lly5wd3dH79698X//939ITk7G119/jeDg4OyzCaXVu3dvtG/fHm+88QbOnz+PBg0aYN26dVi2bBkmTJhQqhZvuTVp0gRffvkl3nrrLdSoUQPBwcHo0KEDoqKiEBMTgyZNmqBs2bLYt28flixZghdeeMEqz0tEYDszIrKO1atXK6NHj1YiIyMVHx8fxd3dXalRo4by4osvKtevX893+2+//VZp1KiR4uHhoQQGBirt2rVTYmNjs7++Y8cO5fHHH1e8vLyU0NDQ7PZoAJRNmzZl3y45OVkZOnSoEhAQoADI09ps2bJlSlRUlOLq6pqvfdjBgweVfv36KeXKlVM8PDyUqlWrKgMHDlQ2bNiQfRu1BdbNmzfN+h6o7cx++eWXIm9XUDszRVGU9evXK61bt1a8vLwUPz8/pXfv3sqxY8fy3X/GjBlKpUqVFBcXF7Namy1evDj7e122bFll2LBhyuXLl/PcxpJ2ZuqHu7u7EhISonTu3Fn5+OOPlaSkpHz3uXz5stK3b18lICBA8ff3V5566inl6tWrCgBlypQpZr2+5cuXK/Xr11c8PT2V8PBw5Z133lG+/fZbs74H5h7L+/fvKy+99JISGhqquLm5KTVr1lTee++9PC3KFKXwdmaPfv/Un4ncP7PXrl1Tevbsqfj6+ioAslubvfXWW0rz5s2VgIAAxcvLS4mMjFRmzpyZryUgEVnOoCgWdGMnIiIiItIY1vgSERERkS4w8SUiIiIiXWDiS0RERES6wMSXiIiIiHSBiS8RERER6QITXyIiIiLSBW5gUQyTyYSrV6/C19e3RFuFEhEREZF9KIqC+/fvIzQ0FC4uhc/rMvEtxtWrVxEWFiY7DCIiIiIqxqVLl1C5cuVCv87Etxi+vr4AxDfSz8/P5s+XkZGBdevWoUuXLnBzc7P585F8POb6w2OuTzzu+sNjbj9JSUkICwvLztsKw8S3GGp5g5+fn90SX29vb/j5+fGXRCd4zPWHx1yfeNz1h8fc/oorS+XiNiIiIiLSBSa+RERERKQLTHyJiIiISBdY40tERESaoCgKMjMzkZWVJTsUs2RkZMDV1RUPHz7UTMyOymg0wtXVtdStZZn4EhERkcNLT09HQkICUlNTZYdiNkVREBISgkuXLnEvACvw9vZGxYoV4e7ubvFjMPElIiIih2YymRAfHw+j0YjQ0FC4u7trIpE0mUxITk6Gj49PkZsqUNEURUF6ejpu3ryJ+Ph41KxZ0+LvJxNfIiIicmjp6ekwmUwICwuDt7e37HDMZjKZkJ6eDk9PTya+peTl5QU3NzdcuHAh+3tqCR4FIiIi0gQmj/pmjePPnyAiIiIi0gUmvkRERESkC0x8iYiISDeysoDNm4EffxSX7DJmmalTp6Jhw4aywygxJr5ERESkC0uXAuHhQPv2wNCh4jI8XFxvK//4xz9gNBphMBjg5uaGChUqoHPnzvj2229hMplK9Fjz589HQECAVeKKiYmBwWCAwWCAp6cnoqKi8MUXX5h9/3/+85/YsGFDiZ4zPDwcc+bMKWGk1sXEl4iIiJze0qXAgAHA5ct5r79yRVxvy+S3a9euSEhIwPnz57F69Wq0b98e48ePR69evZCZmWm7Jy7GmDFjkJCQgGPHjmHgwIEYO3YsfvzxR7Pu6+Pjg3Llytk4Qutj4ktERGRjWVnAli0GbN1aCVu2GHh63QoUBUhJMe8jKQkYN07cp6DHAYDx48XtzHm8gh6nKB4eHggJCUGlSpXQuHFjvP7661i2bBlWr16N+fPnZ9/uww8/RL169VCmTBmEhYXhH//4B5KTkwEAmzdvxqhRo5CYmJg9Uzt16lQAwMKFC9G0aVP4+voiJCQEQ4cOxY0bN4qNy9vbGyEhIahWrRqmTp2KmjVrYvny5QCAixcv4oknnoCPjw/8/PwwcOBAXL9+Pfu+j5Y6jBw5Ek8++STef/99VKxYEeXKlcPYsWORkZEBQMwwX7hwAS+99FJ2/ABw4cIF9O7dG4GBgShTpgwee+wxrFq1qmTf4BJg4ktERGRD6un1zp1d8eGHTdG5s6vNT6/rQWoq4ONj3oe/v5jZLYyiiJlgf3/zHs8am8d16NABDRo0wNJcPwguLi745JNPcPToUSxYsAAbN27Eq6++CgBo1aoV5syZAz8/PyQkJCAhIQH//Oc/AYitkWfMmIFDhw7h999/x/nz5zFy5MgSx+Tl5ZXdM/mJJ57AnTt3sGXLFsTGxuLcuXMYNGhQkffftGkTzp49i02bNmHBggWYP39+dmK/dOlSVK5cGdOnT8+OHwDGjh2LtLQ0bN26FYcPH8Y777wDHx+fEsduLm5gQUREZCPq6fVHZwjV0+tLlgD9+smJjeSLjIzEX3/9lf35hAkTssfh4eF466238Pzzz+OLL76Au7s7/P39YTAYEBISkudxRo8enT2uVq0aPvnkEzRr1ix717jiZGVl4ccff8Rff/2Fv/3tb9iwYQMOHz6M+Ph4hIWFAQC+++47PPbYY9i7dy+aNWtW4OMEBgbis88+g9FoRGRkJHr27IkNGzZgzJgxKFu2LIxGY/astOrixYvo378/6tWrlx2/LXHGl4iIyAayssTp86JOr0+YwK4ClvL2BpKTzfsw98z5qlXmPZ61No9TFCXP1svr169Hx44dUalSJfj6+uKZZ57B7du3kVrMFPP+/fvRu3dvVKlSBb6+vmjXrh0AkVQW5YsvvoCPjw+8vLwwZswYvPTSS/j73/+O48ePIywsLDvpBYCoqCgEBATg+PHjhT7eY489BqPRmP15xYoViy25GDduHN566y20bt0aU6ZMyfNGwBaY+BIREdnAtm35F1LlpijApUvidlRyBgNQpox5H126AJUri/sU9lhhYeJ25jxeYY9TUsePH0dERAQA4Pz58+jVqxfq16+PX3/9Ffv378fnn38OQGzZXJiUlBR07doVfn5++OGHH7B371789ttvxd4PAIYNG4a4uDjEx8cjJSUFH374Yal2R3Nzc8vzucFgKLZzxXPPPYdz587hmWeeweHDh9G0aVN8+umnFsdQHCa+RERENvC/Ekar3Y4sZzQCH38sxo8mrernc+aI29nLxo0bcfjwYfTv3x+AmLU1mUz44IMP8Pjjj6NWrVq4evVqnvu4u7sj65FTBCdOnMDt27fx9ttvIzo6GpGRkWYtbAMAf39/1KhRA5UqVcqT8NapUweXLl3CpUuXsq87duwY7t27h6ioKEtfcoHxA0BYWBief/55LF26FC+//DK+/vpr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mZnAzp15v6Ymvn362D0syoWJLxEREZGVFFTnm5iYU/7A+l65mPgSERERWUlBdb7r1hmQmQnUrg3UrCknLhKY+BIRERFZiZr47tkDpKaK8YoVIt1imYN8THyJiIiIrKR6daBSJSAjA9i924CsLAPWrBF7E7PMQT4mvkRERERWYjDkzPpu3WrAiRNlcfeuAWXLAi1byo2NmPgSERERWVXuxHfPnhAAQI8egKurxKAIAMBDQERERGRFauL7558GeHlVBgD06iUxIMrGxJeIiIjIio4cAVxcgIwMAzIyPAEAEycCbm5Av36Sg9M5ljoQERERWcnSpcBTTwEmU97rExKAAQPE10keJr5EREREVpCVBYwfDyhK/q+p102YIG5HcjDxJSIiIrKCbduAy5cL/7qiAJcuiduRHEx8iYiIiKwgIcG6tyPrY+JLREREZAUVK1r3dmR9mkl879y5g2HDhsHPzw8BAQF49tlnkZycXOR9YmJiYDAY8nw8//zzdoqYiIiI9CQ6GqhcWWxiURCDAQgLE7cjOTST+A4bNgxHjx5FbGwsVqxYga1bt+Jvf/tbsfcbM2YMEhISsj/effddO0RLREREemM0Ah9/LMaPJr/q53PmiNuRHJpIfI8fP441a9bgm2++QYsWLdCmTRt8+umn+Omnn3D16tUi7+vt7Y2QkJDsDz8/PztFTURERHrTrx+wZAlQqVLe6ytXFtezj69cmtjAYteuXQgICEDTpk2zr+vUqRNcXFywe/du9O3bt9D7/vDDD/j+++8REhKC3r1749///je8vb0LvX1aWhrS0tKyP09KSgIAZGRkICMjwwqvpmjqc9jjucgx8JjrD4+5PvG460fv3mKL4s2bsxAbewSdO9dFTIwRRiPAw28b5v5eaSLxvXbtGoKDg/Nc5+rqirJly+LatWuF3m/o0KGoWrUqQkND8ddff+Ff//oXTp48iaVFdI+ePXs2pk2blu/6devWFZkwW1tsbKzdnoscA4+5/vCY6xOPu760bQukpV3B2rWyI3FuqampZt1OauL72muv4Z133inyNsePH7f48XPXANerVw8VK1ZEx44dcfbsWVSvXr3A+0yaNAkTJ07M/jwpKQlhYWHo0qWLXcokMjIyEBsbi86dO8PNzc3mz0fy8ZjrD4+5PvG46w+Puf2oZ+iLIzXxffnllzFy5Mgib1OtWjWE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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# Plotting the data points\n",
"plt.figure(figsize=(8, 6))\n",
"plt.plot(mock_df.index, mock_df['SampleData'], marker='o', color='blue', label='Data Points')\n",
"plt.title('Scatter Plot of Data Points')\n",
"plt.xlabel('Time')\n",
"plt.ylabel('SampleData')\n",
"plt.legend()\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Print Time-domain Features (Single Mockup Data)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Mean \n",
" Max \n",
" Peak (Pm) \n",
" Peak-to-Peak (Pk) \n",
" RMS \n",
" Variance \n",
" Standard Deviation \n",
" Power \n",
" Crest Factor \n",
" Form Factor \n",
" Pulse Indicator \n",
" Margin \n",
" Kurtosis \n",
" Skewness \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.448061 \n",
" 1.579213 \n",
" 1.579213 \n",
" 2.048687 \n",
" 0.819284 \n",
" 0.470467 \n",
" 0.723008 \n",
" 0.671226 \n",
" 1.927553 \n",
" 1.828509 \n",
" 3.524548 \n",
" 2.067638 \n",
" 1.917716 \n",
" 0.412307 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Mean Max Peak (Pm) Peak-to-Peak (Pk) RMS Variance \\\n",
"0 0.448061 1.579213 1.579213 2.048687 0.819284 0.470467 \n",
"\n",
" Standard Deviation Power Crest Factor Form Factor Pulse Indicator \\\n",
"0 0.723008 0.671226 1.927553 1.828509 3.524548 \n",
"\n",
" Margin Kurtosis Skewness \n",
"0 2.067638 1.917716 0.412307 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import sys\n",
"import os\n",
"# Assuming the src directory is one level up from the notebooks directory\n",
"sys.path.append('../src/features')\n",
"from time_domain_features import FeatureExtractor\n",
"\n",
"\n",
"# Extract features\n",
"extracted = FeatureExtractor(mock_df['SampleData'])\n",
"\n",
"# Format with pandas DataFramw\n",
"features = pd.DataFrame(extracted.features, index=[0])\n",
"features\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Print Time-domain Features (Multiple CSV Mockup Data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Importing modules"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import sys\n",
"import os\n",
"import re\n",
"# Assuming the src directory is one level up from the notebooks directory\n",
"sys.path.append('../src/features')\n",
"from time_domain_features import ExtractTimeFeatures # use wrapper function instead of class for easy use\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### The function"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Define a function to extract numbers from a filename that later used as labels features\n",
"def extract_numbers(filename):\n",
" # Find all occurrences of one or more digits in the filename\n",
" numbers = re.findall(r'\\d+', filename)\n",
" # Convert the list of number strings to integers\n",
" numbers = [int(num) for num in numbers]\n",
" # Convert to a tuple and return\n",
" return numbers\n",
"\n",
"def build_features(input_dir):\n",
" all_features = []\n",
" for nth_damage in os.listdir(input_dir):\n",
" nth_damage_path = os.path.join(input_dir, nth_damage)\n",
" if os.path.isdir(nth_damage_path):\n",
" # print(nth_damage)\n",
" for nth_test in os.listdir(nth_damage_path):\n",
" nth_test_path = os.path.join(nth_damage_path, nth_test)\n",
" # print(nth_test_path)\n",
" features = ExtractTimeFeatures(nth_test_path) # return the one csv file feature in dictionary {}\n",
" features['label'] = extract_numbers(nth_test)[0] # add labels to the dictionary\n",
" all_features.append(features)\n",
"\n",
" # Create a DataFrame from the list of dictionaries\n",
" df = pd.DataFrame(all_features)\n",
" return df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Execute the automation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data_dir = \"../../data/raw\"\n",
"# Extract features\n",
"df = build_features(data_dir)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Mean \n",
" Max \n",
" Peak (Pm) \n",
" Peak-to-Peak (Pk) \n",
" RMS \n",
" Variance \n",
" Standard Deviation \n",
" Power \n",
" Crest Factor \n",
" Form Factor \n",
" Pulse Indicator \n",
" Margin \n",
" Kurtosis \n",
" Skewness \n",
" label \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" -0.179611 \n",
" 1.397586 \n",
" 2.100568 \n",
" 3.498154 \n",
" 1.014916 \n",
" 0.997795 \n",
" 1.052930 \n",
" 1.030055 \n",
" 2.069696 \n",
" -5.650644 \n",
" -11.695112 \n",
" 2.427527 \n",
" 2.383707 \n",
" -0.267759 \n",
" 1 \n",
" \n",
" \n",
" 1 \n",
" -0.252972 \n",
" 1.190946 \n",
" 1.365320 \n",
" 2.556266 \n",
" 0.797160 \n",
" 0.571470 \n",
" 0.796848 \n",
" 0.635465 \n",
" 1.712729 \n",
" -3.151180 \n",
" -5.397117 \n",
" 1.664761 \n",
" 2.105998 \n",
" 0.534903 \n",
" 1 \n",
" \n",
" \n",
" 2 \n",
" 0.082731 \n",
" 2.025532 \n",
" 2.114413 \n",
" 4.139945 \n",
" 1.137345 \n",
" 1.286709 \n",
" 1.195691 \n",
" 1.293553 \n",
" 1.859078 \n",
" 13.747427 \n",
" 25.557543 \n",
" 2.346379 \n",
" 2.538671 \n",
" -0.241613 \n",
" 1 \n",
" \n",
" \n",
" 3 \n",
" 0.229025 \n",
" 1.369192 \n",
" 1.369192 \n",
" 2.433417 \n",
" 0.873569 \n",
" 0.710670 \n",
" 0.888613 \n",
" 0.763122 \n",
" 1.567354 \n",
" 3.814302 \n",
" 5.978361 \n",
" 1.638536 \n",
" 1.755856 \n",
" -0.261205 \n",
" 1 \n",
" \n",
" \n",
" 4 \n",
" 0.563738 \n",
" 1.700555 \n",
" 1.700555 \n",
" 2.171556 \n",
" 0.888985 \n",
" 0.472494 \n",
" 0.724564 \n",
" 0.790294 \n",
" 1.912918 \n",
" 1.576946 \n",
" 3.016569 \n",
" 2.222567 \n",
" 2.102568 \n",
" 0.440846 \n",
" 1 \n",
" \n",
" \n",
" 5 \n",
" 0.241972 \n",
" 2.160772 \n",
" 2.420774 \n",
" 4.581546 \n",
" 1.166533 \n",
" 1.302249 \n",
" 1.202889 \n",
" 1.360799 \n",
" 2.075187 \n",
" 4.820950 \n",
" 10.004373 \n",
" 2.966141 \n",
" 3.869795 \n",
" -0.902688 \n",
" 1 \n",
" \n",
" \n",
" 6 \n",
" -0.457981 \n",
" 1.734305 \n",
" 2.350419 \n",
" 4.084725 \n",
" 1.172031 \n",
" 1.163910 \n",
" 1.137204 \n",
" 1.373656 \n",
" 2.005424 \n",
" -2.559126 \n",
" -5.132134 \n",
" 2.667226 \n",
" 2.835863 \n",
" 0.415684 \n",
" 1 \n",
" \n",
" \n",
" 7 \n",
" 0.215078 \n",
" 0.896437 \n",
" 0.896437 \n",
" 1.469767 \n",
" 0.571965 \n",
" 0.280886 \n",
" 0.558655 \n",
" 0.327144 \n",
" 1.567293 \n",
" 2.659343 \n",
" 4.167969 \n",
" 1.377281 \n",
" 1.443894 \n",
" 0.016273 \n",
" 1 \n",
" \n",
" \n",
" 8 \n",
" -0.239766 \n",
" 2.871613 \n",
" 2.871613 \n",
" 4.679464 \n",
" 1.228949 \n",
" 1.452829 \n",
" 1.270533 \n",
" 1.510317 \n",
" 2.336641 \n",
" -5.125629 \n",
" -11.976753 \n",
" 3.280131 \n",
" 4.816155 \n",
" 1.698122 \n",
" 1 \n",
" \n",
" \n",
" 9 \n",
" -0.803142 \n",
" 0.470248 \n",
" 2.826202 \n",
" 3.296450 \n",
" 1.313970 \n",
" 1.081479 \n",
" 1.096195 \n",
" 1.726517 \n",
" 2.150888 \n",
" -1.636036 \n",
" -3.518930 \n",
" 3.158243 \n",
" 2.329370 \n",
" -0.753923 \n",
" 1 \n",
" \n",
" \n",
" 10 \n",
" -0.077538 \n",
" 1.097114 \n",
" 1.097114 \n",
" 2.101327 \n",
" 0.739722 \n",
" 0.541177 \n",
" 0.775441 \n",
" 0.547189 \n",
" 1.483142 \n",
" -9.540155 \n",
" -14.149410 \n",
" 1.512813 \n",
" 1.662770 \n",
" 0.379036 \n",
" 2 \n",
" \n",
" \n",
" 11 \n",
" -0.096567 \n",
" 1.438530 \n",
" 1.737605 \n",
" 3.176134 \n",
" 0.981060 \n",
" 0.953153 \n",
" 1.029106 \n",
" 0.962478 \n",
" 1.771151 \n",
" -10.159348 \n",
" -17.993736 \n",
" 1.973285 \n",
" 1.955739 \n",
" 0.001575 \n",
" 2 \n",
" \n",
" \n",
" 12 \n",
" -0.133844 \n",
" 0.890724 \n",
" 1.226863 \n",
" 2.117587 \n",
" 0.558974 \n",
" 0.294538 \n",
" 0.572070 \n",
" 0.312452 \n",
" 2.194850 \n",
" -4.176314 \n",
" -9.166382 \n",
" 2.018483 \n",
" 3.056050 \n",
" -0.082045 \n",
" 2 \n",
" \n",
" \n",
" 13 \n",
" -0.409095 \n",
" 1.385217 \n",
" 2.209556 \n",
" 3.594773 \n",
" 1.191499 \n",
" 1.252310 \n",
" 1.179600 \n",
" 1.419669 \n",
" 1.854435 \n",
" -2.912522 \n",
" -5.401082 \n",
" 2.322621 \n",
" 1.956418 \n",
" 0.037852 \n",
" 2 \n",
" \n",
" \n",
" 14 \n",
" 0.093017 \n",
" 1.143571 \n",
" 1.305958 \n",
" 2.449528 \n",
" 0.768956 \n",
" 0.582641 \n",
" 0.804598 \n",
" 0.591293 \n",
" 1.698352 \n",
" 8.266830 \n",
" 14.039990 \n",
" 1.747344 \n",
" 2.037027 \n",
" -0.092307 \n",
" 2 \n",
" \n",
" \n",
" 15 \n",
" 0.006811 \n",
" 1.481453 \n",
" 2.196841 \n",
" 3.678293 \n",
" 0.966842 \n",
" 0.934737 \n",
" 1.019116 \n",
" 0.934783 \n",
" 2.272182 \n",
" 141.947952 \n",
" 322.531599 \n",
" 2.722795 \n",
" 3.366854 \n",
" -0.865494 \n",
" 2 \n",
" \n",
" \n",
" 16 \n",
" 0.461118 \n",
" 1.397349 \n",
" 1.397349 \n",
" 2.395587 \n",
" 0.846020 \n",
" 0.503119 \n",
" 0.747677 \n",
" 0.715749 \n",
" 1.651675 \n",
" 1.834714 \n",
" 3.030352 \n",
" 1.652942 \n",
" 2.671065 \n",
" -0.817120 \n",
" 2 \n",
" \n",
" \n",
" 17 \n",
" -0.491342 \n",
" 2.337485 \n",
" 2.337485 \n",
" 4.086374 \n",
" 1.241553 \n",
" 1.300038 \n",
" 1.201868 \n",
" 1.541455 \n",
" 1.882710 \n",
" -2.526863 \n",
" -4.757349 \n",
" 2.341196 \n",
" 4.119487 \n",
" 1.615029 \n",
" 2 \n",
" \n",
" \n",
" 18 \n",
" 0.330859 \n",
" 1.466641 \n",
" 1.466641 \n",
" 2.082146 \n",
" 0.766005 \n",
" 0.477296 \n",
" 0.728237 \n",
" 0.586763 \n",
" 1.914663 \n",
" 2.315203 \n",
" 4.432833 \n",
" 2.001873 \n",
" 1.718136 \n",
" 0.337674 \n",
" 2 \n",
" \n",
" \n",
" 19 \n",
" 0.194496 \n",
" 1.707591 \n",
" 1.707591 \n",
" 3.018449 \n",
" 0.933345 \n",
" 0.833304 \n",
" 0.962234 \n",
" 0.871133 \n",
" 1.829539 \n",
" 4.798777 \n",
" 8.779550 \n",
" 2.044022 \n",
" 2.116626 \n",
" -0.119106 \n",
" 2 \n",
" \n",
" \n",
" 20 \n",
" -0.072633 \n",
" 1.824907 \n",
" 1.824907 \n",
" 3.170507 \n",
" 1.076143 \n",
" 1.152809 \n",
" 1.131768 \n",
" 1.158084 \n",
" 1.695784 \n",
" -14.816250 \n",
" -25.125165 \n",
" 2.041225 \n",
" 2.044118 \n",
" 0.714494 \n",
" 3 \n",
" \n",
" \n",
" 21 \n",
" 0.185105 \n",
" 1.293976 \n",
" 1.293976 \n",
" 2.550155 \n",
" 0.846136 \n",
" 0.681682 \n",
" 0.870301 \n",
" 0.715946 \n",
" 1.529278 \n",
" 4.571117 \n",
" 6.990506 \n",
" 1.515285 \n",
" 1.902752 \n",
" -0.658599 \n",
" 3 \n",
" \n",
" \n",
" 22 \n",
" -0.353429 \n",
" 1.440146 \n",
" 1.707491 \n",
" 3.147636 \n",
" 1.043411 \n",
" 0.963794 \n",
" 1.034834 \n",
" 1.088706 \n",
" 1.636451 \n",
" -2.952248 \n",
" -4.831211 \n",
" 1.903056 \n",
" 2.042762 \n",
" 0.306445 \n",
" 3 \n",
" \n",
" \n",
" 23 \n",
" 0.411200 \n",
" 1.713564 \n",
" 1.713564 \n",
" 2.571010 \n",
" 0.820975 \n",
" 0.504914 \n",
" 0.749010 \n",
" 0.673999 \n",
" 2.087231 \n",
" 1.996533 \n",
" 4.167227 \n",
" 2.167624 \n",
" 2.571401 \n",
" -0.087456 \n",
" 3 \n",
" \n",
" \n",
" 24 \n",
" 0.426956 \n",
" 1.430148 \n",
" 1.430148 \n",
" 2.104040 \n",
" 0.657249 \n",
" 0.249685 \n",
" 0.526714 \n",
" 0.431976 \n",
" 2.175961 \n",
" 1.539384 \n",
" 3.349638 \n",
" 1.986105 \n",
" 4.027795 \n",
" -0.264895 \n",
" 3 \n",
" \n",
" \n",
" 25 \n",
" 0.070670 \n",
" 1.608378 \n",
" 2.633574 \n",
" 4.241952 \n",
" 1.154883 \n",
" 1.328761 \n",
" 1.215072 \n",
" 1.333755 \n",
" 2.280381 \n",
" 16.341990 \n",
" 37.265969 \n",
" 3.076828 \n",
" 3.605941 \n",
" -1.105285 \n",
" 3 \n",
" \n",
" \n",
" 26 \n",
" 0.309727 \n",
" 1.816516 \n",
" 1.816516 \n",
" 3.234134 \n",
" 1.196945 \n",
" 1.336747 \n",
" 1.218718 \n",
" 1.432677 \n",
" 1.517627 \n",
" 3.864520 \n",
" 5.864902 \n",
" 1.854436 \n",
" 1.547268 \n",
" -0.146616 \n",
" 3 \n",
" \n",
" \n",
" 27 \n",
" -0.156286 \n",
" 1.214420 \n",
" 1.725395 \n",
" 2.939815 \n",
" 0.974539 \n",
" 0.925302 \n",
" 1.013959 \n",
" 0.949727 \n",
" 1.770472 \n",
" -6.235606 \n",
" -11.039968 \n",
" 1.990651 \n",
" 1.960302 \n",
" -0.056378 \n",
" 3 \n",
" \n",
" \n",
" 28 \n",
" 0.245548 \n",
" 1.843489 \n",
" 1.843489 \n",
" 2.970403 \n",
" 0.995723 \n",
" 0.931171 \n",
" 1.017170 \n",
" 0.991464 \n",
" 1.851408 \n",
" 4.055114 \n",
" 7.507669 \n",
" 2.194454 \n",
" 1.988498 \n",
" 0.455854 \n",
" 3 \n",
" \n",
" \n",
" 29 \n",
" -0.163872 \n",
" 1.717014 \n",
" 1.717014 \n",
" 3.251762 \n",
" 0.945954 \n",
" 0.867976 \n",
" 0.982048 \n",
" 0.894830 \n",
" 1.815113 \n",
" -5.772514 \n",
" -10.477762 \n",
" 1.982568 \n",
" 2.421706 \n",
" 0.618263 \n",
" 3 \n",
" \n",
" \n",
" 30 \n",
" 0.290341 \n",
" 2.805732 \n",
" 2.805732 \n",
" 4.568940 \n",
" 1.090652 \n",
" 1.105224 \n",
" 1.108164 \n",
" 1.189522 \n",
" 2.572527 \n",
" 3.756450 \n",
" 9.663571 \n",
" 4.235948 \n",
" 4.736813 \n",
" 0.733360 \n",
" 4 \n",
" \n",
" \n",
" 31 \n",
" 0.368252 \n",
" 2.171867 \n",
" 2.171867 \n",
" 2.975510 \n",
" 1.005940 \n",
" 0.876305 \n",
" 0.986748 \n",
" 1.011914 \n",
" 2.159043 \n",
" 2.731659 \n",
" 5.897770 \n",
" 2.738407 \n",
" 2.098044 \n",
" 0.662744 \n",
" 4 \n",
" \n",
" \n",
" 32 \n",
" -0.126842 \n",
" 1.426012 \n",
" 2.027936 \n",
" 3.453949 \n",
" 1.158883 \n",
" 1.326920 \n",
" 1.214230 \n",
" 1.343009 \n",
" 1.749907 \n",
" -9.136443 \n",
" -15.987922 \n",
" 2.230636 \n",
" 1.819980 \n",
" -0.169432 \n",
" 4 \n",
" \n",
" \n",
" 33 \n",
" 0.182933 \n",
" 1.886090 \n",
" 1.886090 \n",
" 2.946085 \n",
" 1.174639 \n",
" 1.346313 \n",
" 1.223071 \n",
" 1.379777 \n",
" 1.605676 \n",
" 6.421152 \n",
" 10.310290 \n",
" 1.908943 \n",
" 1.350773 \n",
" 0.374683 \n",
" 4 \n",
" \n",
" \n",
" 34 \n",
" 0.028416 \n",
" 0.804074 \n",
" 2.324715 \n",
" 3.128789 \n",
" 0.826622 \n",
" 0.682497 \n",
" 0.870821 \n",
" 0.683304 \n",
" 2.812306 \n",
" 29.089795 \n",
" 81.809407 \n",
" 3.671443 \n",
" 6.699388 \n",
" -2.575927 \n",
" 4 \n",
" \n",
" \n",
" 35 \n",
" 0.410012 \n",
" 1.860993 \n",
" 1.860993 \n",
" 2.412173 \n",
" 0.798844 \n",
" 0.470041 \n",
" 0.722681 \n",
" 0.638151 \n",
" 2.329609 \n",
" 1.948342 \n",
" 4.538875 \n",
" 2.577597 \n",
" 2.619845 \n",
" 0.685435 \n",
" 4 \n",
" \n",
" \n",
" 36 \n",
" 0.123182 \n",
" 0.879707 \n",
" 0.963551 \n",
" 1.843258 \n",
" 0.672072 \n",
" 0.436507 \n",
" 0.696425 \n",
" 0.451681 \n",
" 1.433702 \n",
" 5.455915 \n",
" 7.822156 \n",
" 1.376120 \n",
" 1.840085 \n",
" -0.458379 \n",
" 4 \n",
" \n",
" \n",
" 37 \n",
" 0.375184 \n",
" 2.026194 \n",
" 2.026194 \n",
" 3.030474 \n",
" 1.099377 \n",
" 1.067868 \n",
" 1.089275 \n",
" 1.208631 \n",
" 1.843038 \n",
" 2.930236 \n",
" 5.400536 \n",
" 2.139008 \n",
" 1.505134 \n",
" 0.203997 \n",
" 4 \n",
" \n",
" \n",
" 38 \n",
" 0.272510 \n",
" 1.626806 \n",
" 1.626806 \n",
" 2.623528 \n",
" 0.832926 \n",
" 0.619505 \n",
" 0.829662 \n",
" 0.693766 \n",
" 1.953121 \n",
" 3.056501 \n",
" 5.969715 \n",
" 2.176450 \n",
" 2.037504 \n",
" 0.105265 \n",
" 4 \n",
" \n",
" \n",
" 39 \n",
" 0.089469 \n",
" 2.805872 \n",
" 2.805872 \n",
" 4.196399 \n",
" 1.265974 \n",
" 1.594684 \n",
" 1.331117 \n",
" 1.602689 \n",
" 2.216375 \n",
" 14.149812 \n",
" 31.361290 \n",
" 3.031931 \n",
" 2.752088 \n",
" 1.117661 \n",
" 4 \n",
" \n",
" \n",
" 40 \n",
" 0.405564 \n",
" 1.890427 \n",
" 1.899381 \n",
" 3.789808 \n",
" 1.131163 \n",
" 1.115047 \n",
" 1.113077 \n",
" 1.279529 \n",
" 1.679140 \n",
" 2.789110 \n",
" 4.683307 \n",
" 2.015794 \n",
" 2.869595 \n",
" -0.887572 \n",
" 5 \n",
" \n",
" \n",
" 41 \n",
" -0.382201 \n",
" 1.409814 \n",
" 1.689741 \n",
" 3.099555 \n",
" 1.034171 \n",
" 0.923431 \n",
" 1.012934 \n",
" 1.069509 \n",
" 1.633909 \n",
" -2.705827 \n",
" -4.421076 \n",
" 1.821772 \n",
" 2.159802 \n",
" 0.696955 \n",
" 5 \n",
" \n",
" \n",
" 42 \n",
" 0.686207 \n",
" 2.440720 \n",
" 2.440720 \n",
" 3.062273 \n",
" 1.186893 \n",
" 0.937835 \n",
" 1.020803 \n",
" 1.408715 \n",
" 2.056395 \n",
" 1.729644 \n",
" 3.556829 \n",
" 2.661141 \n",
" 1.932817 \n",
" 0.271585 \n",
" 5 \n",
" \n",
" \n",
" 43 \n",
" -0.273404 \n",
" 1.662726 \n",
" 1.923471 \n",
" 3.586197 \n",
" 1.096500 \n",
" 1.127564 \n",
" 1.119307 \n",
" 1.202313 \n",
" 1.754191 \n",
" -4.010556 \n",
" -7.035281 \n",
" 2.149053 \n",
" 2.325438 \n",
" 0.576747 \n",
" 5 \n",
" \n",
" \n",
" 44 \n",
" 0.130780 \n",
" 1.552678 \n",
" 1.552678 \n",
" 2.884352 \n",
" 1.081623 \n",
" 1.152806 \n",
" 1.131767 \n",
" 1.169909 \n",
" 1.435506 \n",
" 8.270582 \n",
" 11.872473 \n",
" 1.568647 \n",
" 1.424831 \n",
" -0.230916 \n",
" 5 \n",
" \n",
" \n",
" 45 \n",
" 0.173259 \n",
" 1.919244 \n",
" 1.919244 \n",
" 2.974637 \n",
" 0.946662 \n",
" 0.866150 \n",
" 0.981014 \n",
" 0.896169 \n",
" 2.027381 \n",
" 5.463853 \n",
" 11.077313 \n",
" 2.366635 \n",
" 1.942654 \n",
" 0.484749 \n",
" 5 \n",
" \n",
" \n",
" 46 \n",
" -0.088553 \n",
" 1.563099 \n",
" 1.563099 \n",
" 3.085460 \n",
" 0.930792 \n",
" 0.858532 \n",
" 0.976691 \n",
" 0.866374 \n",
" 1.679321 \n",
" -10.511085 \n",
" -17.651485 \n",
" 1.805139 \n",
" 1.945504 \n",
" 0.267165 \n",
" 5 \n",
" \n",
" \n",
" 47 \n",
" 0.105141 \n",
" 1.514644 \n",
" 1.514644 \n",
" 2.406752 \n",
" 0.699770 \n",
" 0.478623 \n",
" 0.729249 \n",
" 0.489678 \n",
" 2.164489 \n",
" 6.655515 \n",
" 14.405787 \n",
" 2.378582 \n",
" 2.613486 \n",
" 0.517488 \n",
" 5 \n",
" \n",
" \n",
" 48 \n",
" 0.269479 \n",
" 1.726507 \n",
" 1.726507 \n",
" 2.690486 \n",
" 0.865455 \n",
" 0.676393 \n",
" 0.866918 \n",
" 0.749012 \n",
" 1.994913 \n",
" 3.211582 \n",
" 6.406827 \n",
" 2.463647 \n",
" 2.393938 \n",
" 0.624468 \n",
" 5 \n",
" \n",
" \n",
" 49 \n",
" 0.069012 \n",
" 1.123153 \n",
" 1.123153 \n",
" 2.043454 \n",
" 0.536581 \n",
" 0.283157 \n",
" 0.560909 \n",
" 0.287919 \n",
" 2.093164 \n",
" 7.775183 \n",
" 16.274733 \n",
" 1.896352 \n",
" 2.880336 \n",
" 0.208763 \n",
" 5 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Mean Max Peak (Pm) Peak-to-Peak (Pk) RMS Variance \\\n",
"0 -0.179611 1.397586 2.100568 3.498154 1.014916 0.997795 \n",
"1 -0.252972 1.190946 1.365320 2.556266 0.797160 0.571470 \n",
"2 0.082731 2.025532 2.114413 4.139945 1.137345 1.286709 \n",
"3 0.229025 1.369192 1.369192 2.433417 0.873569 0.710670 \n",
"4 0.563738 1.700555 1.700555 2.171556 0.888985 0.472494 \n",
"5 0.241972 2.160772 2.420774 4.581546 1.166533 1.302249 \n",
"6 -0.457981 1.734305 2.350419 4.084725 1.172031 1.163910 \n",
"7 0.215078 0.896437 0.896437 1.469767 0.571965 0.280886 \n",
"8 -0.239766 2.871613 2.871613 4.679464 1.228949 1.452829 \n",
"9 -0.803142 0.470248 2.826202 3.296450 1.313970 1.081479 \n",
"10 -0.077538 1.097114 1.097114 2.101327 0.739722 0.541177 \n",
"11 -0.096567 1.438530 1.737605 3.176134 0.981060 0.953153 \n",
"12 -0.133844 0.890724 1.226863 2.117587 0.558974 0.294538 \n",
"13 -0.409095 1.385217 2.209556 3.594773 1.191499 1.252310 \n",
"14 0.093017 1.143571 1.305958 2.449528 0.768956 0.582641 \n",
"15 0.006811 1.481453 2.196841 3.678293 0.966842 0.934737 \n",
"16 0.461118 1.397349 1.397349 2.395587 0.846020 0.503119 \n",
"17 -0.491342 2.337485 2.337485 4.086374 1.241553 1.300038 \n",
"18 0.330859 1.466641 1.466641 2.082146 0.766005 0.477296 \n",
"19 0.194496 1.707591 1.707591 3.018449 0.933345 0.833304 \n",
"20 -0.072633 1.824907 1.824907 3.170507 1.076143 1.152809 \n",
"21 0.185105 1.293976 1.293976 2.550155 0.846136 0.681682 \n",
"22 -0.353429 1.440146 1.707491 3.147636 1.043411 0.963794 \n",
"23 0.411200 1.713564 1.713564 2.571010 0.820975 0.504914 \n",
"24 0.426956 1.430148 1.430148 2.104040 0.657249 0.249685 \n",
"25 0.070670 1.608378 2.633574 4.241952 1.154883 1.328761 \n",
"26 0.309727 1.816516 1.816516 3.234134 1.196945 1.336747 \n",
"27 -0.156286 1.214420 1.725395 2.939815 0.974539 0.925302 \n",
"28 0.245548 1.843489 1.843489 2.970403 0.995723 0.931171 \n",
"29 -0.163872 1.717014 1.717014 3.251762 0.945954 0.867976 \n",
"30 0.290341 2.805732 2.805732 4.568940 1.090652 1.105224 \n",
"31 0.368252 2.171867 2.171867 2.975510 1.005940 0.876305 \n",
"32 -0.126842 1.426012 2.027936 3.453949 1.158883 1.326920 \n",
"33 0.182933 1.886090 1.886090 2.946085 1.174639 1.346313 \n",
"34 0.028416 0.804074 2.324715 3.128789 0.826622 0.682497 \n",
"35 0.410012 1.860993 1.860993 2.412173 0.798844 0.470041 \n",
"36 0.123182 0.879707 0.963551 1.843258 0.672072 0.436507 \n",
"37 0.375184 2.026194 2.026194 3.030474 1.099377 1.067868 \n",
"38 0.272510 1.626806 1.626806 2.623528 0.832926 0.619505 \n",
"39 0.089469 2.805872 2.805872 4.196399 1.265974 1.594684 \n",
"40 0.405564 1.890427 1.899381 3.789808 1.131163 1.115047 \n",
"41 -0.382201 1.409814 1.689741 3.099555 1.034171 0.923431 \n",
"42 0.686207 2.440720 2.440720 3.062273 1.186893 0.937835 \n",
"43 -0.273404 1.662726 1.923471 3.586197 1.096500 1.127564 \n",
"44 0.130780 1.552678 1.552678 2.884352 1.081623 1.152806 \n",
"45 0.173259 1.919244 1.919244 2.974637 0.946662 0.866150 \n",
"46 -0.088553 1.563099 1.563099 3.085460 0.930792 0.858532 \n",
"47 0.105141 1.514644 1.514644 2.406752 0.699770 0.478623 \n",
"48 0.269479 1.726507 1.726507 2.690486 0.865455 0.676393 \n",
"49 0.069012 1.123153 1.123153 2.043454 0.536581 0.283157 \n",
"\n",
" Standard Deviation Power Crest Factor Form Factor Pulse Indicator \\\n",
"0 1.052930 1.030055 2.069696 -5.650644 -11.695112 \n",
"1 0.796848 0.635465 1.712729 -3.151180 -5.397117 \n",
"2 1.195691 1.293553 1.859078 13.747427 25.557543 \n",
"3 0.888613 0.763122 1.567354 3.814302 5.978361 \n",
"4 0.724564 0.790294 1.912918 1.576946 3.016569 \n",
"5 1.202889 1.360799 2.075187 4.820950 10.004373 \n",
"6 1.137204 1.373656 2.005424 -2.559126 -5.132134 \n",
"7 0.558655 0.327144 1.567293 2.659343 4.167969 \n",
"8 1.270533 1.510317 2.336641 -5.125629 -11.976753 \n",
"9 1.096195 1.726517 2.150888 -1.636036 -3.518930 \n",
"10 0.775441 0.547189 1.483142 -9.540155 -14.149410 \n",
"11 1.029106 0.962478 1.771151 -10.159348 -17.993736 \n",
"12 0.572070 0.312452 2.194850 -4.176314 -9.166382 \n",
"13 1.179600 1.419669 1.854435 -2.912522 -5.401082 \n",
"14 0.804598 0.591293 1.698352 8.266830 14.039990 \n",
"15 1.019116 0.934783 2.272182 141.947952 322.531599 \n",
"16 0.747677 0.715749 1.651675 1.834714 3.030352 \n",
"17 1.201868 1.541455 1.882710 -2.526863 -4.757349 \n",
"18 0.728237 0.586763 1.914663 2.315203 4.432833 \n",
"19 0.962234 0.871133 1.829539 4.798777 8.779550 \n",
"20 1.131768 1.158084 1.695784 -14.816250 -25.125165 \n",
"21 0.870301 0.715946 1.529278 4.571117 6.990506 \n",
"22 1.034834 1.088706 1.636451 -2.952248 -4.831211 \n",
"23 0.749010 0.673999 2.087231 1.996533 4.167227 \n",
"24 0.526714 0.431976 2.175961 1.539384 3.349638 \n",
"25 1.215072 1.333755 2.280381 16.341990 37.265969 \n",
"26 1.218718 1.432677 1.517627 3.864520 5.864902 \n",
"27 1.013959 0.949727 1.770472 -6.235606 -11.039968 \n",
"28 1.017170 0.991464 1.851408 4.055114 7.507669 \n",
"29 0.982048 0.894830 1.815113 -5.772514 -10.477762 \n",
"30 1.108164 1.189522 2.572527 3.756450 9.663571 \n",
"31 0.986748 1.011914 2.159043 2.731659 5.897770 \n",
"32 1.214230 1.343009 1.749907 -9.136443 -15.987922 \n",
"33 1.223071 1.379777 1.605676 6.421152 10.310290 \n",
"34 0.870821 0.683304 2.812306 29.089795 81.809407 \n",
"35 0.722681 0.638151 2.329609 1.948342 4.538875 \n",
"36 0.696425 0.451681 1.433702 5.455915 7.822156 \n",
"37 1.089275 1.208631 1.843038 2.930236 5.400536 \n",
"38 0.829662 0.693766 1.953121 3.056501 5.969715 \n",
"39 1.331117 1.602689 2.216375 14.149812 31.361290 \n",
"40 1.113077 1.279529 1.679140 2.789110 4.683307 \n",
"41 1.012934 1.069509 1.633909 -2.705827 -4.421076 \n",
"42 1.020803 1.408715 2.056395 1.729644 3.556829 \n",
"43 1.119307 1.202313 1.754191 -4.010556 -7.035281 \n",
"44 1.131767 1.169909 1.435506 8.270582 11.872473 \n",
"45 0.981014 0.896169 2.027381 5.463853 11.077313 \n",
"46 0.976691 0.866374 1.679321 -10.511085 -17.651485 \n",
"47 0.729249 0.489678 2.164489 6.655515 14.405787 \n",
"48 0.866918 0.749012 1.994913 3.211582 6.406827 \n",
"49 0.560909 0.287919 2.093164 7.775183 16.274733 \n",
"\n",
" Margin Kurtosis Skewness label \n",
"0 2.427527 2.383707 -0.267759 1 \n",
"1 1.664761 2.105998 0.534903 1 \n",
"2 2.346379 2.538671 -0.241613 1 \n",
"3 1.638536 1.755856 -0.261205 1 \n",
"4 2.222567 2.102568 0.440846 1 \n",
"5 2.966141 3.869795 -0.902688 1 \n",
"6 2.667226 2.835863 0.415684 1 \n",
"7 1.377281 1.443894 0.016273 1 \n",
"8 3.280131 4.816155 1.698122 1 \n",
"9 3.158243 2.329370 -0.753923 1 \n",
"10 1.512813 1.662770 0.379036 2 \n",
"11 1.973285 1.955739 0.001575 2 \n",
"12 2.018483 3.056050 -0.082045 2 \n",
"13 2.322621 1.956418 0.037852 2 \n",
"14 1.747344 2.037027 -0.092307 2 \n",
"15 2.722795 3.366854 -0.865494 2 \n",
"16 1.652942 2.671065 -0.817120 2 \n",
"17 2.341196 4.119487 1.615029 2 \n",
"18 2.001873 1.718136 0.337674 2 \n",
"19 2.044022 2.116626 -0.119106 2 \n",
"20 2.041225 2.044118 0.714494 3 \n",
"21 1.515285 1.902752 -0.658599 3 \n",
"22 1.903056 2.042762 0.306445 3 \n",
"23 2.167624 2.571401 -0.087456 3 \n",
"24 1.986105 4.027795 -0.264895 3 \n",
"25 3.076828 3.605941 -1.105285 3 \n",
"26 1.854436 1.547268 -0.146616 3 \n",
"27 1.990651 1.960302 -0.056378 3 \n",
"28 2.194454 1.988498 0.455854 3 \n",
"29 1.982568 2.421706 0.618263 3 \n",
"30 4.235948 4.736813 0.733360 4 \n",
"31 2.738407 2.098044 0.662744 4 \n",
"32 2.230636 1.819980 -0.169432 4 \n",
"33 1.908943 1.350773 0.374683 4 \n",
"34 3.671443 6.699388 -2.575927 4 \n",
"35 2.577597 2.619845 0.685435 4 \n",
"36 1.376120 1.840085 -0.458379 4 \n",
"37 2.139008 1.505134 0.203997 4 \n",
"38 2.176450 2.037504 0.105265 4 \n",
"39 3.031931 2.752088 1.117661 4 \n",
"40 2.015794 2.869595 -0.887572 5 \n",
"41 1.821772 2.159802 0.696955 5 \n",
"42 2.661141 1.932817 0.271585 5 \n",
"43 2.149053 2.325438 0.576747 5 \n",
"44 1.568647 1.424831 -0.230916 5 \n",
"45 2.366635 1.942654 0.484749 5 \n",
"46 1.805139 1.945504 0.267165 5 \n",
"47 2.378582 2.613486 0.517488 5 \n",
"48 2.463647 2.393938 0.624468 5 \n",
"49 1.896352 2.880336 0.208763 5 "
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.10.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}