{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Reviewing data\n", "\n", "Author: Martin Horvat, March 2025" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from scipy import io\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "suv_filename = \"../data/suv_percentilesSLOthenUWM.mat\"\n", "flags_filename=\"../data/flags_combined.mat\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", "Loading all data\n", "\"\"\"\n", "suv_dict = io.loadmat(suv_filename)\n", "flags_dict = io.loadmat(flags_filename)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['__header__', '__version__', '__globals__', 'bowel_SUVperc_COMBINED', 'lung_SUVperc_COMBINED', 'thyroid_SUVperc_COMBINED'])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# what is suv dict\n", "suv_dict.keys()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['__header__', '__version__', '__globals__', 'days', 'flags', 'patients'])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "flags_dict.keys()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
suv_nameflag_idx
organ
bowelbowel_SUVperc_COMBINED1
lunglung_SUVperc_COMBINED3
thyroidthyroid_SUVperc_COMBINED5
\n", "
" ], "text/plain": [ " suv_name flag_idx\n", "organ \n", "bowel bowel_SUVperc_COMBINED 1\n", "lung lung_SUVperc_COMBINED 3\n", "thyroid thyroid_SUVperc_COMBINED 5" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"\n", " Present all data options\n", "\"\"\"\n", "\n", "choices = pd.DataFrame({\"suv_name\":['bowel_SUVperc_COMBINED','lung_SUVperc_COMBINED', 'thyroid_SUVperc_COMBINED'], \n", " \"flag_idx\":[1, 3, 5]}, \n", " index=[\"bowel\",\"lung\", \"thyroid\"])\n", "choices.index.name =\"organ\"\n", "choices" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", " Extracting only data (percentiles) associated to lungs\n", "\"\"\"\n", "Npatients = 58\n", "choice = choices.loc[\"lung\"]\n", "lung_suv = suv_dict[choice[\"suv_name\"]][:Npatients,:]\n", "\n", "# legend: 0 == NC, 1 == AE\n", "flags = flags_dict['flags'][:Npatients,choice[\"flag_idx\"]] " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", " Getting data we are interested in:\n", " for each patient we get maximal the pth percentail SUV \n", "\"\"\"\n", "\n", "p = 95 # percentile of interest\n", "X = np.nanmax(lung_suv[:,:,p], axis=1) # taking SUV max and ignoring NaNs" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", " Get data points associated to both groups\n", "\"\"\"\n", "\n", "X_NC = X[flags == 0]\n", "X_AE = X[flags == 1]" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGgCAYAAACJ7TzXAAAAP3RFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMS5wb3N0MSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8kixA/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAtDklEQVR4nO3df1iVdZ7/8ReiHLSJo6byo0goDdMESpNwatTtFLKuK7O7pU6lsWWTq3PpMNVCV4lWV2g/zNrY6AeGzmZqW9JVOphR6GWRJsqmjrrqoGJy0Fw9R3CCgvv7R1/PdASUg8L5eHg+rutzTedzf+4P7w/36Hl5n/u+T5BlWZYAAAAM1sXfBQAAAJwPgQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGM+nwJKTk6Obb75Zl19+ufr166e0tDTt2bPnvPu99957GjRokEJDQzV06FCtWbPGa7tlWZozZ44iIyPVvXt3ORwO7d2717eVAACAgBXky3cJjR07VpMmTdLNN9+sH3/8UY8//rh27NihP//5z7rsssua3efLL7/Ur371K+Xk5Ogf/uEftGzZMi1YsEBbt27VDTfcIElasGCBcnJytGTJEsXGxurJJ5/U9u3b9ec//1mhoaHnrauxsVFHjhzR5ZdfrqCgoNYuBwAA+JFlWTp16pSioqLUpct5zqFYF+Do0aOWJGv9+vUtjrn77rutcePGefUlJSVZv/3tby3LsqzGxkYrIiLCev755z3bT548adlsNuvdd99tVR2VlZWWJBqNRqPRaJdgq6ysPO97fVddAJfLJUnq3bt3i2NKS0uVkZHh1ZeSkqLCwkJJUkVFhZxOpxwOh2e73W5XUlKSSktLNWnSpCZz1tXVqa6uzvPa+v8niSorKxUWFtbm9QAAgI7jdrsVHR2tyy+//Lxj2xxYGhsbNXv2bP3yl7/0fLTTHKfTqfDwcK++8PBwOZ1Oz/YzfS2NOVtOTo7mzZvXpD8sLIzAAgDAJaY1l3O0+S6hGTNmaMeOHVq+fHlbp2izrKwsuVwuT6usrOzwGgAAQMdp0xmWmTNn6uOPP9aGDRt01VVXnXNsRESEqqurvfqqq6sVERHh2X6mLzIy0mtMYmJis3PabDbZbLa2lA4AAC5BPp1hsSxLM2fO1KpVq/TZZ58pNjb2vPskJyeruLjYq2/dunVKTk6WJMXGxioiIsJrjNvt1qZNmzxjAABA5+bTGZYZM2Zo2bJl+vDDD3X55Zd7rjGx2+3q3r27JGnKlCm68sorlZOTI0maNWuWRo0apRdffFHjxo3T8uXLtWXLFr3xxhuSfvrcavbs2XrmmWc0cOBAz23NUVFRSktLu4hLBQCg/VmWpR9//FENDQ3+LsUIwcHB6tq16wU/dsSnwPLaa69JkkaPHu3V//bbb+v++++XJB06dMjrXuqRI0dq2bJleuKJJ/T4449r4MCBKiws9LpQ97HHHlNtba0eeughnTx5UrfeequKiopa9QwWAABMUV9fr6qqKp0+fdrfpRilR48eioyMVEhISJvn8OnBcaZyu92y2+1yuVzcJQQA8IvGxkbt3btXwcHB6tu3r0JCQjr9w0wty1J9fb2OHTumhoYGDRw40Oukhi/v3xf0HBYAAPCT+vp6NTY2Kjo6Wj169PB3Ocbo3r27unXrpoMHD6q+vr7Nn57w5YcAAFxE533EfCd0MX4n/FYBAIDxCCwAAMB4XMMCAEA7i8lc3aE/78D8cT6Nv//++7VkyRLl5OQoMzPT019YWKhf//rXnu/ssyxLb775pvLz87Vz50517dpVAwYM0L333quHHnqoXa/d4QwLAABQaGioFixYoBMnTrQ45r777tPs2bM1YcIEff755yovL9eTTz6pDz/8UJ988km71scZFgAAIIfDoX379iknJ0fPPfdck+0rV67UO++8o8LCQk2YMMHTHxMTo3/8x3+U2+1u1/o4wwIAABQcHKxnn31W//Ef/6HDhw832f7OO+8oLi7OK6ycERQUJLvd3q71cYYlALXXZ6W+fiYKALi0/PrXv1ZiYqKys7OVn5/vtW3v3r2Ki4vzU2WcYQEAAD+zYMECLVmyRLt27fLq9/eD8QksAADA41e/+pVSUlKUlZXl1X/ddddp9+7dfqqKwAIAAM4yf/58ffTRRyotLfX0/eY3v9H//u//6sMPP2wy3rIsuVyudq2JwAIAALwMHTpU99xzj1555RVP3913362JEydq8uTJevbZZ7VlyxYdPHhQH3/8sRwOhz7//PN2rYnAAgAAmnjqqafU2NjoeR0UFKRly5Zp4cKFKiws1KhRoxQfH6+5c+dqwoQJSklJadd6uEsIAIB2ZvpdlgUFBU36YmJiVFdX59XXpUsXPfzww3r44Yc7qLKf/ewO/4kAAAA+IrAAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOPxaH4AANrbXHsH/7y2fXNyaWmpbr31Vo0dO1arV6/29B84cECxsbEt7nPLLbe06ef5gsACAAAkSfn5+frd736n/Px8HTlyRFFRUV7bP/30Uw0ZMsSr74orruiQ2ggsAABANTU1WrFihbZs2SKn06mCggI9/vjjXmOuuOIKRURE+KU+rmEBAABauXKlBg0apLi4ON17771avHixLMvyd1keBBYAAKD8/Hzde++9kqSxY8fK5XJp/fr1XmNGjhypX/ziF16to/CREAAAndyePXu0efNmrVq1SpLUtWtXTZw4Ufn5+Ro9erRn3IoVK3T99df7pUYCCwAAnVx+fr5+/PFHr4tsLcuSzWbTq6++6umLjo7WgAED/FEiHwkBANCZ/fjjj1q6dKlefPFFlZeXe9r//M//KCoqSu+++66/S5TEGRYAADq1jz/+WCdOnNADDzwgu937eTH//M//rPz8fI0dO1aSdPz4cTmdTq8xPXv2VGhoaLvXyRkWAAA6sfz8fDkcjiZhRfopsGzZskVut1uS5HA4FBkZ6dUKCws7pE6fz7Bs2LBBzz//vMrKylRVVaVVq1YpLS2txfH333+/lixZ0qR/8ODB2rlzpyRp7ty5mjdvntf2uLg47d6929fyAAAwTxufPNsRPvrooxa3jRgxwnNrs79vcfb5DEttba0SEhKUm5vbqvEvv/yyqqqqPK2yslK9e/fWXXfd5TVuyJAhXuM2btzoa2kAACBA+XyGJTU1Vampqa0eb7fbvU4zFRYW6sSJE0pPT/cupGtXvz09DwAAmK3Dr2E581lZ//79vfr37t2rqKgoXXPNNbrnnnt06NChFueoq6uT2+32agAAIHB1aGA5cuSI/vSnP+nBBx/06k9KSlJBQYGKior02muvqaKiQrfddptOnTrV7Dw5OTmeMzd2u13R0dEdUT4AAPCTDg0sS5YsUc+ePZtcpJuamqq77rpL8fHxSklJ0Zo1a3Ty5EmtXLmy2XmysrLkcrk8rbKysgOqBwAA/tJhz2GxLEuLFy/Wfffdp5CQkHOO7dmzp6677jrt27ev2e02m002m609ygQA4IL4+24aE12M30mHnWFZv3699u3bpwceeOC8Y2tqarR//35FRkZ2QGUAAFy4bt26SZJOnz7t50rMc+Z3cuZ31BY+n2GpqanxOvNRUVGh8vJy9e7dW1dffbWysrL07bffaunSpV775efnKykpSTfccEOTOR955BGNHz9e/fv315EjR5Sdna3g4GBNnjy5DUsCAKDjBQcHq2fPnjp69KgkqUePHgoKCvJzVf5lWZZOnz6to0ePqmfPngoODm7zXD4Hli1btmjMmDGe1xkZGZKkqVOnqqCgQFVVVU3u8HG5XHr//ff18ssvNzvn4cOHNXnyZB0/flx9+/bVrbfeqq+++kp9+/b1tTwAAPzmzOM5zoQW/KRnz54X/OiSICsAPmxzu92y2+1yuVwKCwvzdzl+F5O5ul3mPTB/XLvMCwCBpqGhQT/88IO/yzBCt27dWjyz4sv7N19+CADARRYcHHxBH3+gKb78EAAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACM53Ng2bBhg8aPH6+oqCgFBQWpsLDwnONLSkoUFBTUpDmdTq9xubm5iomJUWhoqJKSkrR582ZfSwMAAAHK58BSW1urhIQE5ebm+rTfnj17VFVV5Wn9+vXzbFuxYoUyMjKUnZ2trVu3KiEhQSkpKTp69Kiv5QEAgADU1dcdUlNTlZqa6vMP6tevn3r27NnstoULF2ratGlKT0+XJOXl5Wn16tVavHixMjMzff5ZAAAgsHTYNSyJiYmKjIzUHXfcoS+++MLTX19fr7KyMjkcjr8V1aWLHA6HSktLm52rrq5ObrfbqwEAgMDV7oElMjJSeXl5ev/99/X+++8rOjpao0eP1tatWyVJ3333nRoaGhQeHu61X3h4eJPrXM7IycmR3W73tOjo6PZeBgAA8COfPxLyVVxcnOLi4jyvR44cqf379+ull17SH//4xzbNmZWVpYyMDM9rt9tNaOkAMZmr22XeA/PHtcu8AIDA0e6BpTkjRozQxo0bJUl9+vRRcHCwqqurvcZUV1crIiKi2f1tNptsNlu71wl0GnPt/q7gJ3Nd/q4AgKH88hyW8vJyRUZGSpJCQkI0bNgwFRcXe7Y3NjaquLhYycnJ/igPAAAYxuczLDU1Ndq3b5/ndUVFhcrLy9W7d29dffXVysrK0rfffqulS5dKkhYtWqTY2FgNGTJE33//vd566y199tln+uSTTzxzZGRkaOrUqRo+fLhGjBihRYsWqba21nPXEAAA6Nx8DixbtmzRmDFjPK/PXEsydepUFRQUqKqqSocOHfJsr6+v1x/+8Ad9++236tGjh+Lj4/Xpp596zTFx4kQdO3ZMc+bMkdPpVGJiooqKippciAsAADqnIMuyLH8XcaHcbrfsdrtcLpfCwsL8XY7ftdfFse2Fi24NwDUsAPzAl/dvvksIAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMbzObBs2LBB48ePV1RUlIKCglRYWHjO8R988IHuuOMO9e3bV2FhYUpOTtbatWu9xsydO1dBQUFebdCgQb6WBgAAApTPgaW2tlYJCQnKzc1t1fgNGzbojjvu0Jo1a1RWVqYxY8Zo/Pjx2rZtm9e4IUOGqKqqytM2btzoa2kAACBAdfV1h9TUVKWmprZ6/KJFi7xeP/vss/rwww/10Ucf6cYbb/xbIV27KiIiwtdyAABAJ9Dh17A0Njbq1KlT6t27t1f/3r17FRUVpWuuuUb33HOPDh061OIcdXV1crvdXg0AAASuDg8sL7zwgmpqanT33Xd7+pKSklRQUKCioiK99tprqqio0G233aZTp041O0dOTo7sdrunRUdHd1T5AADADzo0sCxbtkzz5s3TypUr1a9fP09/amqq7rrrLsXHxyslJUVr1qzRyZMntXLlymbnycrKksvl8rTKysqOWgIAAPADn69haavly5frwQcf1HvvvSeHw3HOsT179tR1112nffv2NbvdZrPJZrO1R5kAAMBAHXKG5d1331V6erreffddjRs37rzja2pqtH//fkVGRnZAdQAAwHQ+n2GpqanxOvNRUVGh8vJy9e7dW1dffbWysrL07bffaunSpZJ++hho6tSpevnll5WUlCSn0ylJ6t69u+x2uyTpkUce0fjx49W/f38dOXJE2dnZCg4O1uTJky/GGgEAwCXO5zMsW7Zs0Y033ui5JTkjI0M33nij5syZI0mqqqryusPnjTfe0I8//qgZM2YoMjLS02bNmuUZc/jwYU2ePFlxcXG6++67dcUVV+irr75S3759L3R9AAAgAPh8hmX06NGyLKvF7QUFBV6vS0pKzjvn8uXLfS0DAAB0InyXEAAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeB32XUJAS2IyV1/0OQ/MP/9XQAAALh2cYQEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOP5HFg2bNig8ePHKyoqSkFBQSosLDzvPiUlJbrppptks9k0YMAAFRQUNBmTm5urmJgYhYaGKikpSZs3b/a1NAAAEKB8Diy1tbVKSEhQbm5uq8ZXVFRo3LhxGjNmjMrLyzV79mw9+OCDWrt2rWfMihUrlJGRoezsbG3dulUJCQlKSUnR0aNHfS0PAAAEoK6+7pCamqrU1NRWj8/Ly1NsbKxefPFFSdL111+vjRs36qWXXlJKSookaeHChZo2bZrS09M9+6xevVqLFy9WZmamryUCAIAA0+7XsJSWlsrhcHj1paSkqLS0VJJUX1+vsrIyrzFdunSRw+HwjAEAAJ2bz2dYfOV0OhUeHu7VFx4eLrfbrb/+9a86ceKEGhoamh2ze/fuZuesq6tTXV2d57Xb7b74hQMAAGNckncJ5eTkyG63e1p0dLS/SwIAAO2o3QNLRESEqqurvfqqq6sVFham7t27q0+fPgoODm52TERERLNzZmVlyeVyeVplZWW71Q8AAPyv3QNLcnKyiouLvfrWrVun5ORkSVJISIiGDRvmNaaxsVHFxcWeMWez2WwKCwvzagAAIHD5HFhqampUXl6u8vJyST/dtlxeXq5Dhw5J+unsx5QpUzzjH374Yf3lL3/RY489pt27d+s///M/tXLlSv3+97/3jMnIyNCbb76pJUuWaNeuXZo+fbpqa2s9dw0BAIDOzeeLbrds2aIxY8Z4XmdkZEiSpk6dqoKCAlVVVXnCiyTFxsZq9erV+v3vf6+XX35ZV111ld566y3PLc2SNHHiRB07dkxz5syR0+lUYmKiioqKmlyICwAAOqcgy7Isfxdxodxut+x2u1wuFx8PSYrJXO3vEvzuwPxx/i7h0jLX7u8KfjLX5e8KAHQgX96/L8m7hAAAQOdCYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA47UpsOTm5iomJkahoaFKSkrS5s2bWxw7evRoBQUFNWnjxo3zjLn//vubbB87dmxbSgMAAAGoq687rFixQhkZGcrLy1NSUpIWLVqklJQU7dmzR/369Wsy/oMPPlB9fb3n9fHjx5WQkKC77rrLa9zYsWP19ttve17bbDZfSwMAAAHK5zMsCxcu1LRp05Senq7BgwcrLy9PPXr00OLFi5sd37t3b0VERHjaunXr1KNHjyaBxWazeY3r1atX21YEAAACjk+Bpb6+XmVlZXI4HH+boEsXORwOlZaWtmqO/Px8TZo0SZdddplXf0lJifr166e4uDhNnz5dx48f96U0AAAQwHz6SOi7775TQ0ODwsPDvfrDw8O1e/fu8+6/efNm7dixQ/n5+V79Y8eO1T/90z8pNjZW+/fv1+OPP67U1FSVlpYqODi4yTx1dXWqq6vzvHa73b4sAwAAXGJ8voblQuTn52vo0KEaMWKEV/+kSZM8/z106FDFx8fr2muvVUlJiW6//fYm8+Tk5GjevHntXi8AADCDT4GlT58+Cg4OVnV1tVd/dXW1IiIizrlvbW2tli9frqeeeuq8P+eaa65Rnz59tG/fvmYDS1ZWljIyMjyv3W63oqOjW7kK4Gfm2v1dAQCcnwl/V811+fXH+3QNS0hIiIYNG6bi4mJPX2Njo4qLi5WcnHzOfd977z3V1dXp3nvvPe/POXz4sI4fP67IyMhmt9tsNoWFhXk1AAAQuHy+SygjI0NvvvmmlixZol27dmn69Omqra1Venq6JGnKlCnKyspqsl9+fr7S0tJ0xRVXePXX1NTo0Ucf1VdffaUDBw6ouLhYEyZM0IABA5SSktLGZQEAgEDi8zUsEydO1LFjxzRnzhw5nU4lJiaqqKjIcyHuoUOH1KWLdw7as2ePNm7cqE8++aTJfMHBwfrmm2+0ZMkSnTx5UlFRUbrzzjv19NNP8ywWAAAgqY0X3c6cOVMzZ85sdltJSUmTvri4OFmW1ez47t27a+3atW0pAwAAdBJ8lxAAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8br6u4DOLCZztb9LAADgksAZFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIzXpsCSm5urmJgYhYaGKikpSZs3b25xbEFBgYKCgrxaaGio1xjLsjRnzhxFRkaqe/fucjgc2rt3b1tKAwAAAcjnwLJixQplZGQoOztbW7duVUJCglJSUnT06NEW9wkLC1NVVZWnHTx40Gv7c889p1deeUV5eXnatGmTLrvsMqWkpOj777/3fUUAACDg+BxYFi5cqGnTpik9PV2DBw9WXl6eevToocWLF7e4T1BQkCIiIjwtPDzcs82yLC1atEhPPPGEJkyYoPj4eC1dulRHjhxRYWFhmxYFAAACi0+Bpb6+XmVlZXI4HH+boEsXORwOlZaWtrhfTU2N+vfvr+joaE2YMEE7d+70bKuoqJDT6fSa0263Kykp6ZxzAgCAzsOnwPLdd9+poaHB6wyJJIWHh8vpdDa7T1xcnBYvXqwPP/xQ//Vf/6XGxkaNHDlShw8fliTPfr7MWVdXJ7fb7dUAAEDgave7hJKTkzVlyhQlJiZq1KhR+uCDD9S3b1+9/vrrbZ4zJydHdrvd06Kjoy9ixQAAwDQ+BZY+ffooODhY1dXVXv3V1dWKiIho1RzdunXTjTfeqH379kmSZz9f5szKypLL5fK0yspKX5YBAAAuMT4FlpCQEA0bNkzFxcWevsbGRhUXFys5OblVczQ0NGj79u2KjIyUJMXGxioiIsJrTrfbrU2bNrU4p81mU1hYmFcDAACBq6uvO2RkZGjq1KkaPny4RowYoUWLFqm2tlbp6emSpClTpujKK69UTk6OJOmpp57SLbfcogEDBujkyZN6/vnndfDgQT344IOSfrqDaPbs2XrmmWc0cOBAxcbG6sknn1RUVJTS0tIu3koBAMAly+fAMnHiRB07dkxz5syR0+lUYmKiioqKPBfNHjp0SF26/O3EzYkTJzRt2jQ5nU716tVLw4YN05dffqnBgwd7xjz22GOqra3VQw89pJMnT+rWW29VUVFRkwfMAQCAzinIsizL30VcKLfbLbvdLpfLdUl9PBSTudrfJQSsA/PHtW7gXHv7FgLfzHX5uwLATCb8XdUOfz59ef/mu4QAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYLw2BZbc3FzFxMQoNDRUSUlJ2rx5c4tj33zzTd12223q1auXevXqJYfD0WT8/fffr6CgIK82duzYtpQGAAACkM+BZcWKFcrIyFB2dra2bt2qhIQEpaSk6OjRo82OLykp0eTJk/X555+rtLRU0dHRuvPOO/Xtt996jRs7dqyqqqo87d13323bigAAQMDxObAsXLhQ06ZNU3p6ugYPHqy8vDz16NFDixcvbnb8O++8o3/7t39TYmKiBg0apLfeekuNjY0qLi72Gmez2RQREeFpvXr1atuKAABAwPEpsNTX16usrEwOh+NvE3TpIofDodLS0lbNcfr0af3www/q3bu3V39JSYn69eunuLg4TZ8+XcePH29xjrq6Orndbq8GAAACl0+B5bvvvlNDQ4PCw8O9+sPDw+V0Ols1x7//+78rKirKK/SMHTtWS5cuVXFxsRYsWKD169crNTVVDQ0Nzc6Rk5Mju93uadHR0b4sAwAAXGK6duQPmz9/vpYvX66SkhKFhoZ6+idNmuT576FDhyo+Pl7XXnutSkpKdPvttzeZJysrSxkZGZ7Xbreb0AIAQADz6QxLnz59FBwcrOrqaq/+6upqRUREnHPfF154QfPnz9cnn3yi+Pj4c4695ppr1KdPH+3bt6/Z7TabTWFhYV4NAAAELp8CS0hIiIYNG+Z1weyZC2iTk5Nb3O+5557T008/raKiIg0fPvy8P+fw4cM6fvy4IiMjfSkPAAAEKJ/vEsrIyNCbb76pJUuWaNeuXZo+fbpqa2uVnp4uSZoyZYqysrI84xcsWKAnn3xSixcvVkxMjJxOp5xOp2pqaiRJNTU1evTRR/XVV1/pwIEDKi4u1oQJEzRgwAClpKRcpGUCAIBLmc/XsEycOFHHjh3TnDlz5HQ6lZiYqKKiIs+FuIcOHVKXLn/LQa+99prq6+v1L//yL17zZGdna+7cuQoODtY333yjJUuW6OTJk4qKitKdd96pp59+Wjab7QKXBwAAAkGbLrqdOXOmZs6c2ey2kpISr9cHDhw451zdu3fX2rVr21IGAADoJDr0LqFLVUzman+XAABAp8aXHwIAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4Xf1dANAeYjJXt2rcgdB2LgQAcFFwhgUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeG0KLLm5uYqJiVFoaKiSkpK0efPmc45/7733NGjQIIWGhmro0KFas2aN13bLsjRnzhxFRkaqe/fucjgc2rt3b1tKAwAAAcjnwLJixQplZGQoOztbW7duVUJCglJSUnT06NFmx3/55ZeaPHmyHnjgAW3btk1paWlKS0vTjh07PGOee+45vfLKK8rLy9OmTZt02WWXKSUlRd9//33bVwYAAAJGkGVZli87JCUl6eabb9arr74qSWpsbFR0dLR+97vfKTMzs8n4iRMnqra2Vh9//LGn75ZbblFiYqLy8vJkWZaioqL0hz/8QY888ogkyeVyKTw8XAUFBZo0adJ5a3K73bLb7XK5XAoLC/NlOa0Sk7n6os8JMxwI/Y2/S8DPzXX5uwLATHPt/q6gXf58+vL+3dWXievr61VWVqasrCxPX5cuXeRwOFRaWtrsPqWlpcrIyPDqS0lJUWFhoSSpoqJCTqdTDofDs91utyspKUmlpaXNBpa6ujrV1dV5XrtcP/0S3W63L8tptca60+0yL/zPHeRTXkd7a6c/w8Alr86Av6va4c/nmfft1pw78SmwfPfdd2poaFB4eLhXf3h4uHbv3t3sPk6ns9nxTqfTs/1MX0tjzpaTk6N58+Y16Y+Ojm7dQoD/z4B/s+Dn5nNEAGO145/PU6dOyW4/9/w+BRZTZGVleZ21aWxs1P/93//piiuuUFBQkB8raz23263o6GhVVla2y8dYpuqM6+6Ma5ZYN+vuHFj3ha3bsiydOnVKUVFR5x3rU2Dp06ePgoODVV1d7dVfXV2tiIiIZveJiIg45/gz/1tdXa3IyEivMYmJic3OabPZZLPZvPp69uzpy1KMERYW1qn+T35GZ1x3Z1yzxLo7G9bduVyMdZ/vzMoZPt0lFBISomHDhqm4uNjT19jYqOLiYiUnJze7T3Jystd4SVq3bp1nfGxsrCIiIrzGuN1ubdq0qcU5AQBA5+LzR0IZGRmaOnWqhg8frhEjRmjRokWqra1Venq6JGnKlCm68sorlZOTI0maNWuWRo0apRdffFHjxo3T8uXLtWXLFr3xxhuSpKCgIM2ePVvPPPOMBg4cqNjYWD355JOKiopSWlraxVspAAC4ZPkcWCZOnKhjx45pzpw5cjqdSkxMVFFRkeei2UOHDqlLl7+duBk5cqSWLVumJ554Qo8//rgGDhyowsJC3XDDDZ4xjz32mGpra/XQQw/p5MmTuvXWW1VUVKTQ0NCLsEQz2Ww2ZWdnN/loK9B1xnV3xjVLrJt1dw6su+PW7fNzWAAAADoa3yUEAACMR2ABAADGI7AAAADjEVgAAIDxCCztYMOGDRo/fryioqIUFBTk+d6kcykpKdFNN90km82mAQMGqKCgoN3rvNh8XXdJSYmCgoKatJa+ksFEOTk5uvnmm3X55ZerX79+SktL0549e86733vvvadBgwYpNDRUQ4cO1Zo1azqg2ounLesuKChocqwvtTsBX3vtNcXHx3selpWcnKw//elP59znUj/Wku/rDoRjfbb58+d7HsNxLoFwvH+uNevuqONNYGkHtbW1SkhIUG5ubqvGV1RUaNy4cRozZozKy8s1e/ZsPfjgg1q7dm07V3px+bruM/bs2aOqqipP69evXztVePGtX79eM2bM0FdffaV169bphx9+0J133qna2toW9/nyyy81efJkPfDAA9q2bZvS0tKUlpamHTt2dGDlF6Yt65Z+eirmz4/1wYMHO6jii+Oqq67S/PnzVVZWpi1btujv/u7vNGHCBO3cubPZ8YFwrCXf1y1d+sf6577++mu9/vrrio+PP+e4QDneZ7R23VIHHW8L7UqStWrVqnOOeeyxx6whQ4Z49U2cONFKSUlpx8raV2vW/fnnn1uSrBMnTnRITR3h6NGjliRr/fr1LY65++67rXHjxnn1JSUlWb/97W/bu7x205p1v/3225bdbu+4ojpIr169rLfeeqvZbYF4rM8417oD6VifOnXKGjhwoLVu3Tpr1KhR1qxZs1ocG0jH25d1d9Tx5gyLAUpLS+VwOLz6UlJSVFpa6qeKOlZiYqIiIyN1xx136IsvvvB3ORfE5XJJknr37t3imEA83q1ZtyTV1NSof//+io6OPu+/0E3X0NCg5cuXq7a2tsWvEQnEY92adUuBc6xnzJihcePGNTmOzQmk4+3LuqWOOd6X5Lc1Bxqn0+l5UvAZ4eHhcrvd+utf/6ru3bv7qbL2FRkZqby8PA0fPlx1dXV66623NHr0aG3atEk33XSTv8vzWWNjo2bPnq1f/vKXXk9yPltLx/tSunbn51q77ri4OC1evFjx8fFyuVx64YUXNHLkSO3cuVNXXXVVB1Z8YbZv367k5GR9//33+sUvfqFVq1Zp8ODBzY4NpGPty7oD5VgvX75cW7du1ddff92q8YFyvH1dd0cdbwIL/CYuLk5xcXGe1yNHjtT+/fv10ksv6Y9//KMfK2ubGTNmaMeOHdq4caO/S+lQrV13cnKy17/IR44cqeuvv16vv/66nn766fYu86KJi4tTeXm5XC6X/vu//1tTp07V+vXrW3zzDhS+rDsQjnVlZaVmzZqldevWXfIXDPuiLevuqONNYDFARESEqqurvfqqq6sVFhYWsGdXWjJixIhL8g1/5syZ+vjjj7Vhw4bz/ouipeMdERHRniW2C1/WfbZu3brpxhtv1L59+9qpuvYREhKiAQMGSJKGDRumr7/+Wi+//LJef/31JmMD6Vj7su6zXYrHuqysTEePHvU629vQ0KANGzbo1VdfVV1dnYKDg732CYTj3ZZ1n629jjfXsBggOTlZxcXFXn3r1q075+fDgaq8vFyRkZH+LqPVLMvSzJkztWrVKn322WeKjY097z6BcLzbsu6zNTQ0aPv27ZfU8W5OY2Oj6urqmt0WCMe6Jeda99kuxWN9++23a/v27SovL/e04cOH65577lF5eXmzb9qBcLzbsu6ztdvxbvfLejuhU6dOWdu2bbO2bdtmSbIWLlxobdu2zTp48KBlWZaVmZlp3XfffZ7xf/nLX6wePXpYjz76qLVr1y4rNzfXCg4OtoqKivy1hDbxdd0vvfSSVVhYaO3du9favn27NWvWLKtLly7Wp59+6q8l+Gz69OmW3W63SkpKrKqqKk87ffq0Z8x9991nZWZmel5/8cUXVteuXa0XXnjB2rVrl5WdnW1169bN2r59uz+W0CZtWfe8efOstWvXWvv377fKysqsSZMmWaGhodbOnTv9sYQ2yczMtNavX29VVFRY33zzjZWZmWkFBQVZn3zyiWVZgXmsLcv3dQfCsW7O2XfLBOrxPtv51t1Rx5vA0g7O3K57dps6daplWZY1depUa9SoUU32SUxMtEJCQqxrrrnGevvttzu87gvl67oXLFhgXXvttVZoaKjVu3dva/To0dZnn33mn+LbqLn1SvI6fqNGjfL8Ds5YuXKldd1111khISHWkCFDrNWrV3ds4ReoLeuePXu2dfXVV1shISFWeHi49fd///fW1q1bO774C/Cv//qvVv/+/a2QkBCrb9++1u233+5507aswDzWluX7ugPhWDfn7DfuQD3eZzvfujvqeAdZlmVd3HM2AAAAFxfXsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgvP8HNHFfIbAZg0kAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"\n", " Plotting histograms of data\n", "\"\"\"\n", "plt.hist(X_NC, density = True, label = \"NC\")\n", "plt.hist(X_AE, density = True, label = \"AE\")\n", "plt.legend()" ] } ], "metadata": { "kernelspec": { "display_name": "base", "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.12.3" } }, "nbformat": 4, "nbformat_minor": 2 }