diff --git a/.ipynb_checkpoints/Matplotlib-checkpoint.ipynb b/.ipynb_checkpoints/Matplotlib-checkpoint.ipynb
new file mode 100644
index 0000000..0a7d777
--- /dev/null
+++ b/.ipynb_checkpoints/Matplotlib-checkpoint.ipynb
@@ -0,0 +1,5916 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "56f01da0",
+ "metadata": {},
+ "source": [
+ "## Визуализация данных в Matplotlib"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "109e804b",
+ "metadata": {},
+ "source": [
+ "##### Задание 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "49673dbc",
+ "metadata": {},
+ "source": [
+ "Загрузите модуль pyplot библиотеки matplotlib с псевдонимом plt, а также библиотеку numpy с\n",
+ "псевдонимом np.\n",
+ "\n",
+ "Примените магическую функцию %matplotlib inline для отображения графиков в Jupyter Notebook и\n",
+ "настройки конфигурации ноутбука со значением 'svg' для более четкого отображения графиков.\n",
+ "\n",
+ "Создайте список под названием x с числами 1, 2, 3, 4, 5, 6, 7 и список y с числами 3.5, 3.8, 4.2, 4.5, 5,\n",
+ "5.5, 7.\n",
+ "\n",
+ "С помощью функции plot постройте график, соединяющий линиями точки с горизонтальными\n",
+ "координатами из списка x и вертикальными - из списка y.\n",
+ "\n",
+ "Затем в следующей ячейке постройте диаграмму рассеяния (другие названия - диаграмма разброса,\n",
+ "scatter plot)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "f5482e99",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "\n",
+ "from matplotlib import pyplot as plt "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "d7e4a2eb",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "%config InlineBackend.figure_format = 'svg'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "0daf2675",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "x = np.arange(1, 8)\n",
+ "y = [3.5, 3.8, 4.2, 4.5, 5, 5.5, 7]\n",
+ "\n",
+ "plt.plot(x, y)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "8bea4305",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(x,y)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4de1f814",
+ "metadata": {},
+ "source": [
+ "##### Задание 2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1be23321",
+ "metadata": {},
+ "source": [
+ "С помощью функции linspace из библиотеки Numpy создайте массив t из 51 числа от 0 до 10\n",
+ "включительно.\n",
+ "\n",
+ "Создайте массив Numpy под названием f, содержащий косинусы элементов массива t.\n",
+ "\n",
+ "Постройте линейную диаграмму, используя массив t для координат по горизонтали,а массив f - для\n",
+ "координат по вертикали. Линия графика должна быть зеленого цвета.\n",
+ "\n",
+ "Выведите название диаграммы - 'График f(t)'. Также добавьте названия для горизонтальной оси -\n",
+ "'Значения t' и для вертикальной - 'Значения f'.\n",
+ "\n",
+ "Ограничьте график по оси x значениями 0.5 и 9.5, а по оси y - значениями -2.5 и 2.5."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "997f5a56",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "t = np.linspace(0, 10, 51)\n",
+ "f = np.cos(t)\n",
+ "plt.plot(t, f, color='green')\n",
+ "plt.title('График f(t)')\n",
+ "plt.xlabel('Значения t')\n",
+ "plt.ylabel('Значения f')\n",
+ "plt.axis([0.5, 9.5, -2.5, 2.5])\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7fcd7c5a",
+ "metadata": {},
+ "source": [
+ "##### Задание 3*"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "23e6f84c",
+ "metadata": {},
+ "source": [
+ "С помощью функции linspace библиотеки Numpy создайте массив x из 51 числа от -3 до 3\n",
+ "включительно.\n",
+ "\n",
+ "Создайте массивы y1, y2, y3, y4 по следующим формулам:\n",
+ "\n",
+ "y1 = x**2\n",
+ "\n",
+ "y2 = 2 * x + 0.5\n",
+ "\n",
+ "y3 = -3 * x - 1.5\n",
+ "\n",
+ "y4 = sin(x)\n",
+ "\n",
+ "Используя функцию subplots модуля matplotlib.pyplot, создайте объект matplotlib.figure.Figure с\n",
+ "названием fig и массив объектов Axes под названием ax,причем так, чтобы у вас было 4 отдельных\n",
+ "графика в сетке, состоящей из двух строк и двух столбцов. В каждом графике массив x используется\n",
+ "для координат по горизонтали.В левом верхнем графике для координат по вертикали используйте\n",
+ "y1,в правом верхнем - y2, в левом нижнем - y3, в правом нижнем - y4.\n",
+ "\n",
+ "Дайте название графикам:\n",
+ "'График y1', 'График y2' и т.д.\n",
+ "\n",
+ "Для графика в левом верхнем углу установите границы по оси x от -5 до 5.\n",
+ "\n",
+ "Установите размеры фигуры 8 дюймов по горизонтали и 6 дюймов по вертикали.\n",
+ "\n",
+ "Вертикальные и горизонтальные зазоры между графиками должны составлять 0.3."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "e3bc1f27",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x = np.linspace(-3, 3, 51)\n",
+ "\n",
+ "y1 = x**2\n",
+ "y2 = 2*x + 0.5\n",
+ "y3 = -3*x - 1.5\n",
+ "y4 = np.sin(x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "id": "a7e38757",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots(nrows=2, ncols=2)\n",
+ "ax1, ax2, ax3, ax4 = ax.flatten()\n",
+ "ax1.plot(x, y1)\n",
+ "ax2.plot(x, y2)\n",
+ "ax3.plot(x, y3)\n",
+ "ax4.plot(x, y4)\n",
+ "ax1.set_title(\"График x^2\")\n",
+ "ax2.set_title(\"График 2*x + 0.5\")\n",
+ "ax3.set_title(\"График -3*x - 1.5\")\n",
+ "ax4.set_title(\"График sin(x)\")\n",
+ "ax1.set_xlim(-5, 5)\n",
+ "fig.set_size_inches(8, 6)\n",
+ "fig.subplots_adjust(wspace=0.3, hspace=0.3)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "61bedd2b",
+ "metadata": {},
+ "source": [
+ "##### Задание 4*"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "50e90c1e",
+ "metadata": {},
+ "source": [
+ "Импортируйте библиотеку Pandas, а также используйте для графиков стиль “fivethirtyeight”.\n",
+ "\n",
+ "Посчитайте с помощью метода value_counts количество наблюдений для каждого значения целевой\n",
+ "переменной Class и примените к полученным данным метод plot, чтобы построить столбчатую\n",
+ "диаграмму. Затем постройте такую же диаграмму, используя логарифмический масштаб.\n",
+ "\n",
+ "На следующем графике постройте две гистограммы по значениям признака V1 - одну для\n",
+ "мошеннических транзакций (Class равен 1) и другую - для обычных (Class равен 0). Подберите\n",
+ "значение аргумента density так, чтобы по вертикали графика было расположено не число\n",
+ "наблюдений, а плотность распределения. Число бинов должно равняться 20 для обеих гистограмм, а\n",
+ "коэффициент alpha сделайте равным 0.5, чтобы гистограммы были полупрозрачными и не\n",
+ "загораживали друг друга. Создайте легенду с двумя значениями: “Class 0” и “Class 1”. Гистограмма\n",
+ "обычных транзакций должна быть серого цвета, а мошеннических - красного. Горизонтальной оси\n",
+ "дайте название “V1”."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "9650517d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "DATASET_PATH = './creditcard.csv'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "id": "196a8ea7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Time | \n",
+ " V1 | \n",
+ " V2 | \n",
+ " V3 | \n",
+ " V4 | \n",
+ " V5 | \n",
+ " V6 | \n",
+ " V7 | \n",
+ " V8 | \n",
+ " V9 | \n",
+ " ... | \n",
+ " V21 | \n",
+ " V22 | \n",
+ " V23 | \n",
+ " V24 | \n",
+ " V25 | \n",
+ " V26 | \n",
+ " V27 | \n",
+ " V28 | \n",
+ " Amount | \n",
+ " Class | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0.0 | \n",
+ " -1.359807 | \n",
+ " -0.072781 | \n",
+ " 2.536347 | \n",
+ " 1.378155 | \n",
+ " -0.338321 | \n",
+ " 0.462388 | \n",
+ " 0.239599 | \n",
+ " 0.098698 | \n",
+ " 0.363787 | \n",
+ " ... | \n",
+ " -0.018307 | \n",
+ " 0.277838 | \n",
+ " -0.110474 | \n",
+ " 0.066928 | \n",
+ " 0.128539 | \n",
+ " -0.189115 | \n",
+ " 0.133558 | \n",
+ " -0.021053 | \n",
+ " 149.62 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 1.191857 | \n",
+ " 0.266151 | \n",
+ " 0.166480 | \n",
+ " 0.448154 | \n",
+ " 0.060018 | \n",
+ " -0.082361 | \n",
+ " -0.078803 | \n",
+ " 0.085102 | \n",
+ " -0.255425 | \n",
+ " ... | \n",
+ " -0.225775 | \n",
+ " -0.638672 | \n",
+ " 0.101288 | \n",
+ " -0.339846 | \n",
+ " 0.167170 | \n",
+ " 0.125895 | \n",
+ " -0.008983 | \n",
+ " 0.014724 | \n",
+ " 2.69 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " -1.358354 | \n",
+ " -1.340163 | \n",
+ " 1.773209 | \n",
+ " 0.379780 | \n",
+ " -0.503198 | \n",
+ " 1.800499 | \n",
+ " 0.791461 | \n",
+ " 0.247676 | \n",
+ " -1.514654 | \n",
+ " ... | \n",
+ " 0.247998 | \n",
+ " 0.771679 | \n",
+ " 0.909412 | \n",
+ " -0.689281 | \n",
+ " -0.327642 | \n",
+ " -0.139097 | \n",
+ " -0.055353 | \n",
+ " -0.059752 | \n",
+ " 378.66 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " -0.966272 | \n",
+ " -0.185226 | \n",
+ " 1.792993 | \n",
+ " -0.863291 | \n",
+ " -0.010309 | \n",
+ " 1.247203 | \n",
+ " 0.237609 | \n",
+ " 0.377436 | \n",
+ " -1.387024 | \n",
+ " ... | \n",
+ " -0.108300 | \n",
+ " 0.005274 | \n",
+ " -0.190321 | \n",
+ " -1.175575 | \n",
+ " 0.647376 | \n",
+ " -0.221929 | \n",
+ " 0.062723 | \n",
+ " 0.061458 | \n",
+ " 123.50 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
4 rows × 31 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Time V1 V2 V3 V4 V5 V6 V7 \\\n",
+ "0 0.0 -1.359807 -0.072781 2.536347 1.378155 -0.338321 0.462388 0.239599 \n",
+ "1 0.0 1.191857 0.266151 0.166480 0.448154 0.060018 -0.082361 -0.078803 \n",
+ "2 1.0 -1.358354 -1.340163 1.773209 0.379780 -0.503198 1.800499 0.791461 \n",
+ "3 1.0 -0.966272 -0.185226 1.792993 -0.863291 -0.010309 1.247203 0.237609 \n",
+ "\n",
+ " V8 V9 ... V21 V22 V23 V24 V25 \\\n",
+ "0 0.098698 0.363787 ... -0.018307 0.277838 -0.110474 0.066928 0.128539 \n",
+ "1 0.085102 -0.255425 ... -0.225775 -0.638672 0.101288 -0.339846 0.167170 \n",
+ "2 0.247676 -1.514654 ... 0.247998 0.771679 0.909412 -0.689281 -0.327642 \n",
+ "3 0.377436 -1.387024 ... -0.108300 0.005274 -0.190321 -1.175575 0.647376 \n",
+ "\n",
+ " V26 V27 V28 Amount Class \n",
+ "0 -0.189115 0.133558 -0.021053 149.62 0 \n",
+ "1 0.125895 -0.008983 0.014724 2.69 0 \n",
+ "2 -0.139097 -0.055353 -0.059752 378.66 0 \n",
+ "3 -0.221929 0.062723 0.061458 123.50 0 \n",
+ "\n",
+ "[4 rows x 31 columns]"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df = pd.read_csv(DATASET_PATH, sep=',')\n",
+ "df.head(4)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "id": "a8736e10",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 284315\n",
+ "1 492\n",
+ "Name: Class, dtype: int64\n"
+ ]
+ }
+ ],
+ "source": [
+ "Class = df['Class'].value_counts()\n",
+ "print(Class)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "id": "1d21bd9d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "Class.plot(kind='bar')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "8f491357",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "Class.plot(kind='bar', logy=True)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "86141eee",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "V1 = df[['V1', 'Class']]\n",
+ "\n",
+ "Class0 = df[df['Class'] == 0]\n",
+ "Class1 = df[df['Class'] == 1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "id": "7164ad38",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "Class0['V1'].hist(density=True, bins=20, alpha=0.5, color=\"grey\")\n",
+ "Class1['V1'].hist(density=True, bins=20, alpha=0.5, color=\"red\")\n",
+ "plt.legend(labels=[\"Class 0\", \"Class 1\"], frameon=False)\n",
+ "plt.xlabel(\"V1\")\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "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.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Lesson 1. numpy and pandas.ipynb b/Lesson 1. numpy and pandas.ipynb
index 0d8d372..5a0c689 100644
--- a/Lesson 1. numpy and pandas.ipynb
+++ b/Lesson 1. numpy and pandas.ipynb
@@ -5,7 +5,7 @@
"id": "f4dbe7bf",
"metadata": {},
"source": [
- "### Вычисления с помощью Numpy"
+ "### Вычисления с помощью Numpy_"
]
},
{
diff --git a/Lesson 1. numpy and pandas.ipynb.bak b/Lesson 1. numpy and pandas.ipynb.bak
new file mode 100644
index 0000000..0d8d372
--- /dev/null
+++ b/Lesson 1. numpy and pandas.ipynb.bak
@@ -0,0 +1,567 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "f4dbe7bf",
+ "metadata": {},
+ "source": [
+ "### Вычисления с помощью Numpy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "152a7550",
+ "metadata": {},
+ "source": [
+ "##### Задание 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1d71707a",
+ "metadata": {},
+ "source": [
+ "Создайте массив Numpy под названием a размером 5x2, то есть состоящий из 5 строк и 2\n",
+ "столбцов. Первый столбец должен содержать числа 1, 2, 3, 3, 1, а второй - числа 6, 8, 11, 10, 7.\n",
+ "Будем считать, что каждый столбец - это признак, а строка - наблюдение. Затем найдите\n",
+ "среднее значение по каждому признаку, используя метод mean массива Numpy. Результат\n",
+ "запишите в массив mean_a, в нем должно быть 2 элемента."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "3133f87a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "2882ac7f",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = np.array([[1, 6], \n",
+ " [2, 8],\n",
+ " [3, 11],\n",
+ " [3, 10], \n",
+ " [1, 7]])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "2704119b",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[2. 8.4]\n"
+ ]
+ }
+ ],
+ "source": [
+ "mean_a = a.mean(axis=0)\n",
+ "\n",
+ "print(mean_a)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "acbfc41b",
+ "metadata": {},
+ "source": [
+ "##### Задание 2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "25904d47",
+ "metadata": {},
+ "source": [
+ "Вычислите массив a_centered, отняв от значений массива “а” средние значения\n",
+ "соответствующих признаков, содержащиеся в массиве mean_a. Вычисление должно\n",
+ "производиться в одно действие. Получившийся массив должен иметь размер 5x2."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "27cdd05b",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[-1. -2.4]\n",
+ " [ 0. -0.4]\n",
+ " [ 1. 2.6]\n",
+ " [ 1. 1.6]\n",
+ " [-1. -1.4]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "a_centered = np.subtract(a, mean_a)\n",
+ "\n",
+ "print(a_centered)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1b59ec21",
+ "metadata": {},
+ "source": [
+ "##### Задание 3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5dd93cdc",
+ "metadata": {},
+ "source": [
+ "Найдите скалярное произведение столбцов массива a_centered. В результате должна\n",
+ "получиться величина a_centered_sp. Затем поделите a_centered_sp на N-1, где N - число\n",
+ "наблюдений."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "a0d86cb6",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "x1 = a_centered[:, 0]\n",
+ "x2 = a_centered[:, 1]\n",
+ "a_centered_sp = x1 @ x2\n",
+ "\n",
+ "N = x1.size - 1\n",
+ "\n",
+ "print(a_centered_sp/N)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "58e42aae",
+ "metadata": {},
+ "source": [
+ "### Работа с данными в Pandas"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7210ca04",
+ "metadata": {},
+ "source": [
+ "##### Задание 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c68001c4",
+ "metadata": {},
+ "source": [
+ "Импортируйте библиотеку Pandas и дайте ей псевдоним pd. Создайте датафрейм authors со\n",
+ "столбцами author_id и author_name, в которых соответственно содержатся данные: [1, 2, 3] и\n",
+ "['Тургенев', 'Чехов', 'Островский'].\n",
+ "\n",
+ "Затем создайте датафрейм book cо столбцами author_id, book_title и price, в которых соответственно\n",
+ "содержатся данные:\n",
+ "\n",
+ "[1, 1, 1, 2, 2, 3, 3],\n",
+ "\n",
+ "['Отцы и дети', 'Рудин', 'Дворянское гнездо', 'Толстый и тонкий', 'Дама с собачкой', 'Гроза', 'Таланты и\n",
+ "поклонники']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "830f9b35",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "id": "89b8bfbf",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "authors = pd.DataFrame({'author_id': [1, 2, 3],\n",
+ " 'author_name': ['Тургенев', 'Чехов', 'Островский']})\n",
+ "\n",
+ "book = pd.DataFrame({'author_id': [1, 1, 1, 2, 2, 3, 3],\n",
+ " 'book_title': ['Отцы и дети', 'Рудин', 'Дворянское гнездо', 'Толстый и тонкий', 'Дама с собачкой', 'Гроза', 'Таланты и поклонники'],\n",
+ " 'price': [200, 321, 100, 130, 300, 210, 50]})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "96c593c4",
+ "metadata": {},
+ "source": [
+ "##### Задание 2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6fc836c9",
+ "metadata": {},
+ "source": [
+ "Получите датафрейм authors_price, соединив датафреймы authors и books по полю author_id."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "id": "d4ae9e3b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " author_id | \n",
+ " author_name | \n",
+ " book_title | \n",
+ " price | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1 | \n",
+ " Тургенев | \n",
+ " Отцы и дети | \n",
+ " 200 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " Тургенев | \n",
+ " Рудин | \n",
+ " 321 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1 | \n",
+ " Тургенев | \n",
+ " Дворянское гнездо | \n",
+ " 100 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 2 | \n",
+ " Чехов | \n",
+ " Толстый и тонкий | \n",
+ " 130 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 2 | \n",
+ " Чехов | \n",
+ " Дама с собачкой | \n",
+ " 300 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 3 | \n",
+ " Островский | \n",
+ " Гроза | \n",
+ " 210 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 3 | \n",
+ " Островский | \n",
+ " Таланты и поклонники | \n",
+ " 50 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " author_id author_name book_title price\n",
+ "0 1 Тургенев Отцы и дети 200\n",
+ "1 1 Тургенев Рудин 321\n",
+ "2 1 Тургенев Дворянское гнездо 100\n",
+ "3 2 Чехов Толстый и тонкий 130\n",
+ "4 2 Чехов Дама с собачкой 300\n",
+ "5 3 Островский Гроза 210\n",
+ "6 3 Островский Таланты и поклонники 50"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "authors_price = pd.merge(authors, book, on='author_id', how='outer')\n",
+ "\n",
+ "authors_price"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "afb01de0",
+ "metadata": {},
+ "source": [
+ "##### Задание 3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7c244608",
+ "metadata": {},
+ "source": [
+ "Создайте датафрейм top5, в котором содержатся строки из authors_price с пятью самыми дорогими\n",
+ "книгами."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "id": "b01895ba",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " author_id | \n",
+ " author_name | \n",
+ " book_title | \n",
+ " price | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " Тургенев | \n",
+ " Рудин | \n",
+ " 321 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 2 | \n",
+ " Чехов | \n",
+ " Дама с собачкой | \n",
+ " 300 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 3 | \n",
+ " Островский | \n",
+ " Гроза | \n",
+ " 210 | \n",
+ "
\n",
+ " \n",
+ " | 0 | \n",
+ " 1 | \n",
+ " Тургенев | \n",
+ " Отцы и дети | \n",
+ " 200 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 2 | \n",
+ " Чехов | \n",
+ " Толстый и тонкий | \n",
+ " 130 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " author_id author_name book_title price\n",
+ "1 1 Тургенев Рудин 321\n",
+ "4 2 Чехов Дама с собачкой 300\n",
+ "5 3 Островский Гроза 210\n",
+ "0 1 Тургенев Отцы и дети 200\n",
+ "3 2 Чехов Толстый и тонкий 130"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "top5 = authors_price.nlargest(5, 'price')\n",
+ "\n",
+ "top5"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2609a29d",
+ "metadata": {},
+ "source": [
+ "##### Задание 4"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "db6d24ba",
+ "metadata": {},
+ "source": [
+ "Создайте датафрейм authors_stat на основе информации из authors_price. В датафрейме authors_stat\n",
+ "должны быть четыре столбца:\n",
+ "\n",
+ "author_name, min_price, max_price и mean_price,\n",
+ "\n",
+ "в которых должны содержаться соответственно имя автора, минимальная, максимальная и средняя\n",
+ "цена на книги этого автора."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "id": "78ae5914",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " price | \n",
+ "
\n",
+ " \n",
+ " | author_name | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | Островский | \n",
+ " 50 | \n",
+ "
\n",
+ " \n",
+ " | Тургенев | \n",
+ " 100 | \n",
+ "
\n",
+ " \n",
+ " | Чехов | \n",
+ " 130 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " price\n",
+ "author_name \n",
+ "Островский 50\n",
+ "Тургенев 100\n",
+ "Чехов 130"
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "x1 = authors_price.groupby('author_name').agg({'price':'min'})\n",
+ "x2 = authors_price.groupby('author_name').agg({'price':'max'})\n",
+ "\n"
+ ]
+ }
+ ],
+ "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.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Matplotlib.ipynb b/Matplotlib.ipynb
new file mode 100644
index 0000000..7775f8c
--- /dev/null
+++ b/Matplotlib.ipynb
@@ -0,0 +1,5916 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "56f01da0",
+ "metadata": {},
+ "source": [
+ "## Визуализация данных в Matplotlib."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "109e804b",
+ "metadata": {},
+ "source": [
+ "##### Задание 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "49673dbc",
+ "metadata": {},
+ "source": [
+ "Загрузите модуль pyplot библиотеки matplotlib с псевдонимом plt, а также библиотеку numpy с\n",
+ "псевдонимом np.\n",
+ "\n",
+ "Примените магическую функцию %matplotlib inline для отображения графиков в Jupyter Notebook и\n",
+ "настройки конфигурации ноутбука со значением 'svg' для более четкого отображения графиков.\n",
+ "\n",
+ "Создайте список под названием x с числами 1, 2, 3, 4, 5, 6, 7 и список y с числами 3.5, 3.8, 4.2, 4.5, 5,\n",
+ "5.5, 7.\n",
+ "\n",
+ "С помощью функции plot постройте график, соединяющий линиями точки с горизонтальными\n",
+ "координатами из списка x и вертикальными - из списка y.\n",
+ "\n",
+ "Затем в следующей ячейке постройте диаграмму рассеяния (другие названия - диаграмма разброса,\n",
+ "scatter plot)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "f5482e99",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "\n",
+ "from matplotlib import pyplot as plt "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "d7e4a2eb",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "%config InlineBackend.figure_format = 'svg'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "0daf2675",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "x = np.arange(1, 8)\n",
+ "y = [3.5, 3.8, 4.2, 4.5, 5, 5.5, 7]\n",
+ "\n",
+ "plt.plot(x, y)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "8bea4305",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(x,y)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4de1f814",
+ "metadata": {},
+ "source": [
+ "##### Задание 2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1be23321",
+ "metadata": {},
+ "source": [
+ "С помощью функции linspace из библиотеки Numpy создайте массив t из 51 числа от 0 до 10\n",
+ "включительно.\n",
+ "\n",
+ "Создайте массив Numpy под названием f, содержащий косинусы элементов массива t.\n",
+ "\n",
+ "Постройте линейную диаграмму, используя массив t для координат по горизонтали,а массив f - для\n",
+ "координат по вертикали. Линия графика должна быть зеленого цвета.\n",
+ "\n",
+ "Выведите название диаграммы - 'График f(t)'. Также добавьте названия для горизонтальной оси -\n",
+ "'Значения t' и для вертикальной - 'Значения f'.\n",
+ "\n",
+ "Ограничьте график по оси x значениями 0.5 и 9.5, а по оси y - значениями -2.5 и 2.5."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "997f5a56",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "t = np.linspace(0, 10, 51)\n",
+ "f = np.cos(t)\n",
+ "plt.plot(t, f, color='green')\n",
+ "plt.title('График f(t)')\n",
+ "plt.xlabel('Значения t')\n",
+ "plt.ylabel('Значения f')\n",
+ "plt.axis([0.5, 9.5, -2.5, 2.5])\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7fcd7c5a",
+ "metadata": {},
+ "source": [
+ "##### Задание 3*"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "23e6f84c",
+ "metadata": {},
+ "source": [
+ "С помощью функции linspace библиотеки Numpy создайте массив x из 51 числа от -3 до 3\n",
+ "включительно.\n",
+ "\n",
+ "Создайте массивы y1, y2, y3, y4 по следующим формулам:\n",
+ "\n",
+ "y1 = x**2\n",
+ "\n",
+ "y2 = 2 * x + 0.5\n",
+ "\n",
+ "y3 = -3 * x - 1.5\n",
+ "\n",
+ "y4 = sin(x)\n",
+ "\n",
+ "Используя функцию subplots модуля matplotlib.pyplot, создайте объект matplotlib.figure.Figure с\n",
+ "названием fig и массив объектов Axes под названием ax,причем так, чтобы у вас было 4 отдельных\n",
+ "графика в сетке, состоящей из двух строк и двух столбцов. В каждом графике массив x используется\n",
+ "для координат по горизонтали.В левом верхнем графике для координат по вертикали используйте\n",
+ "y1,в правом верхнем - y2, в левом нижнем - y3, в правом нижнем - y4.\n",
+ "\n",
+ "Дайте название графикам:\n",
+ "'График y1', 'График y2' и т.д.\n",
+ "\n",
+ "Для графика в левом верхнем углу установите границы по оси x от -5 до 5.\n",
+ "\n",
+ "Установите размеры фигуры 8 дюймов по горизонтали и 6 дюймов по вертикали.\n",
+ "\n",
+ "Вертикальные и горизонтальные зазоры между графиками должны составлять 0.3."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "e3bc1f27",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x = np.linspace(-3, 3, 51)\n",
+ "\n",
+ "y1 = x**2\n",
+ "y2 = 2*x + 0.5\n",
+ "y3 = -3*x - 1.5\n",
+ "y4 = np.sin(x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "id": "a7e38757",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots(nrows=2, ncols=2)\n",
+ "ax1, ax2, ax3, ax4 = ax.flatten()\n",
+ "ax1.plot(x, y1)\n",
+ "ax2.plot(x, y2)\n",
+ "ax3.plot(x, y3)\n",
+ "ax4.plot(x, y4)\n",
+ "ax1.set_title(\"График x^2\")\n",
+ "ax2.set_title(\"График 2*x + 0.5\")\n",
+ "ax3.set_title(\"График -3*x - 1.5\")\n",
+ "ax4.set_title(\"График sin(x)\")\n",
+ "ax1.set_xlim(-5, 5)\n",
+ "fig.set_size_inches(8, 6)\n",
+ "fig.subplots_adjust(wspace=0.3, hspace=0.3)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "61bedd2b",
+ "metadata": {},
+ "source": [
+ "##### Задание 4*"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "50e90c1e",
+ "metadata": {},
+ "source": [
+ "Импортируйте библиотеку Pandas, а также используйте для графиков стиль “fivethirtyeight”.\n",
+ "\n",
+ "Посчитайте с помощью метода value_counts количество наблюдений для каждого значения целевой\n",
+ "переменной Class и примените к полученным данным метод plot, чтобы построить столбчатую\n",
+ "диаграмму. Затем постройте такую же диаграмму, используя логарифмический масштаб.\n",
+ "\n",
+ "На следующем графике постройте две гистограммы по значениям признака V1 - одну для\n",
+ "мошеннических транзакций (Class равен 1) и другую - для обычных (Class равен 0). Подберите\n",
+ "значение аргумента density так, чтобы по вертикали графика было расположено не число\n",
+ "наблюдений, а плотность распределения. Число бинов должно равняться 20 для обеих гистограмм, а\n",
+ "коэффициент alpha сделайте равным 0.5, чтобы гистограммы были полупрозрачными и не\n",
+ "загораживали друг друга. Создайте легенду с двумя значениями: “Class 0” и “Class 1”. Гистограмма\n",
+ "обычных транзакций должна быть серого цвета, а мошеннических - красного. Горизонтальной оси\n",
+ "дайте название “V1”."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "9650517d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "DATASET_PATH = './creditcard.csv'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "id": "196a8ea7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Time | \n",
+ " V1 | \n",
+ " V2 | \n",
+ " V3 | \n",
+ " V4 | \n",
+ " V5 | \n",
+ " V6 | \n",
+ " V7 | \n",
+ " V8 | \n",
+ " V9 | \n",
+ " ... | \n",
+ " V21 | \n",
+ " V22 | \n",
+ " V23 | \n",
+ " V24 | \n",
+ " V25 | \n",
+ " V26 | \n",
+ " V27 | \n",
+ " V28 | \n",
+ " Amount | \n",
+ " Class | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0.0 | \n",
+ " -1.359807 | \n",
+ " -0.072781 | \n",
+ " 2.536347 | \n",
+ " 1.378155 | \n",
+ " -0.338321 | \n",
+ " 0.462388 | \n",
+ " 0.239599 | \n",
+ " 0.098698 | \n",
+ " 0.363787 | \n",
+ " ... | \n",
+ " -0.018307 | \n",
+ " 0.277838 | \n",
+ " -0.110474 | \n",
+ " 0.066928 | \n",
+ " 0.128539 | \n",
+ " -0.189115 | \n",
+ " 0.133558 | \n",
+ " -0.021053 | \n",
+ " 149.62 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 1.191857 | \n",
+ " 0.266151 | \n",
+ " 0.166480 | \n",
+ " 0.448154 | \n",
+ " 0.060018 | \n",
+ " -0.082361 | \n",
+ " -0.078803 | \n",
+ " 0.085102 | \n",
+ " -0.255425 | \n",
+ " ... | \n",
+ " -0.225775 | \n",
+ " -0.638672 | \n",
+ " 0.101288 | \n",
+ " -0.339846 | \n",
+ " 0.167170 | \n",
+ " 0.125895 | \n",
+ " -0.008983 | \n",
+ " 0.014724 | \n",
+ " 2.69 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 1.0 | \n",
+ " -1.358354 | \n",
+ " -1.340163 | \n",
+ " 1.773209 | \n",
+ " 0.379780 | \n",
+ " -0.503198 | \n",
+ " 1.800499 | \n",
+ " 0.791461 | \n",
+ " 0.247676 | \n",
+ " -1.514654 | \n",
+ " ... | \n",
+ " 0.247998 | \n",
+ " 0.771679 | \n",
+ " 0.909412 | \n",
+ " -0.689281 | \n",
+ " -0.327642 | \n",
+ " -0.139097 | \n",
+ " -0.055353 | \n",
+ " -0.059752 | \n",
+ " 378.66 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.0 | \n",
+ " -0.966272 | \n",
+ " -0.185226 | \n",
+ " 1.792993 | \n",
+ " -0.863291 | \n",
+ " -0.010309 | \n",
+ " 1.247203 | \n",
+ " 0.237609 | \n",
+ " 0.377436 | \n",
+ " -1.387024 | \n",
+ " ... | \n",
+ " -0.108300 | \n",
+ " 0.005274 | \n",
+ " -0.190321 | \n",
+ " -1.175575 | \n",
+ " 0.647376 | \n",
+ " -0.221929 | \n",
+ " 0.062723 | \n",
+ " 0.061458 | \n",
+ " 123.50 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
4 rows × 31 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Time V1 V2 V3 V4 V5 V6 V7 \\\n",
+ "0 0.0 -1.359807 -0.072781 2.536347 1.378155 -0.338321 0.462388 0.239599 \n",
+ "1 0.0 1.191857 0.266151 0.166480 0.448154 0.060018 -0.082361 -0.078803 \n",
+ "2 1.0 -1.358354 -1.340163 1.773209 0.379780 -0.503198 1.800499 0.791461 \n",
+ "3 1.0 -0.966272 -0.185226 1.792993 -0.863291 -0.010309 1.247203 0.237609 \n",
+ "\n",
+ " V8 V9 ... V21 V22 V23 V24 V25 \\\n",
+ "0 0.098698 0.363787 ... -0.018307 0.277838 -0.110474 0.066928 0.128539 \n",
+ "1 0.085102 -0.255425 ... -0.225775 -0.638672 0.101288 -0.339846 0.167170 \n",
+ "2 0.247676 -1.514654 ... 0.247998 0.771679 0.909412 -0.689281 -0.327642 \n",
+ "3 0.377436 -1.387024 ... -0.108300 0.005274 -0.190321 -1.175575 0.647376 \n",
+ "\n",
+ " V26 V27 V28 Amount Class \n",
+ "0 -0.189115 0.133558 -0.021053 149.62 0 \n",
+ "1 0.125895 -0.008983 0.014724 2.69 0 \n",
+ "2 -0.139097 -0.055353 -0.059752 378.66 0 \n",
+ "3 -0.221929 0.062723 0.061458 123.50 0 \n",
+ "\n",
+ "[4 rows x 31 columns]"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df = pd.read_csv(DATASET_PATH, sep=',')\n",
+ "df.head(4)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "id": "a8736e10",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 284315\n",
+ "1 492\n",
+ "Name: Class, dtype: int64\n"
+ ]
+ }
+ ],
+ "source": [
+ "Class = df['Class'].value_counts()\n",
+ "print(Class)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "id": "1d21bd9d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "Class.plot(kind='bar')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "8f491357",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "Class.plot(kind='bar', logy=True)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "86141eee",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "V1 = df[['V1', 'Class']]\n",
+ "\n",
+ "Class0 = df[df['Class'] == 0]\n",
+ "Class1 = df[df['Class'] == 1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "id": "7164ad38",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "Class0['V1'].hist(density=True, bins=20, alpha=0.5, color=\"grey\")\n",
+ "Class1['V1'].hist(density=True, bins=20, alpha=0.5, color=\"red\")\n",
+ "plt.legend(labels=[\"Class 0\", \"Class 1\"], frameon=False)\n",
+ "plt.xlabel(\"V1\")\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "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.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}