diff --git a/NumPy.ipynb b/NumPy.ipynb index 7f00a7e..b3eafb8 100644 --- a/NumPy.ipynb +++ b/NumPy.ipynb @@ -2,16 +2,15 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, "source": [ "# NumPy\n", "\n", "Numpy stands for Numerical Python. Numpy(Numerical Python) is the core library for scientific computing in Python. It provides a high-performance multidimensional array object, and tools for working with arrays. It contains the data structures needed for storing and accessing arrays. It has simple operations and functions for computation of arrays. In addition to numeric data types, NumPy can store other data types such as strings, boolean, and etc.\n" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## NumPy Installation\n", "It is possible to install numpy on Jupyter notebook or the command prompt using the following command.\n", @@ -19,11 +18,11 @@ "```sh\n", "pip install numpy\n", "```" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Importing NumPy\n", "Numpy can be imported as follows\n", @@ -36,23 +35,22 @@ "```py\n", "import numpy as np\n", "```" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 244, - "metadata": {}, - "outputs": [], "source": [ "# How ot import numpy\n", "import numpy as np" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 245, - "metadata": {}, - "outputs": [], "source": [ "# Let us import matplot.lib and seaborn for data visualization\n", "# installation of matplotlib and seaborn is required\n", @@ -60,47 +58,48 @@ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "sns.set()" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 246, - "metadata": {}, - "outputs": [], "source": [ "## import stats for some statistical methods\n", "from scipy import stats" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## NumPy Version\n", "Checking of the numPy version" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 247, - "metadata": {}, + "source": [ + "# How check the version of numpy package\n", + "print('NumPy:', np.__version__)\n" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "NumPy: 1.19.2\n" ] } ], - "source": [ - "# How check the version of numpy package\n", - "print('NumPy:', np.__version__)\n" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Creating of NumPy Arrays\n", "We can change Python list and tuple to NumPy array.\n", @@ -109,92 +108,96 @@ "lst = [1, 2, 3, 4,5] # list\n", "tpl = (1, 2, 3, 4, 5) # tuple\n", "```" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating NumPy array from Python lists" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 248, - "metadata": {}, + "source": [ + "# creating python list\n", + "lst = [1, 2, 3, 4, 5]\n", + "# Checking data types\n", + "print('Type : ', type(lst))\n", + "print(lst)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Type : \n", "[1, 2, 3, 4, 5]\n" ] } ], - "source": [ - "# creating python list\n", - "lst = [1, 2, 3, 4, 5]\n", - "# Checking data types\n", - "print('Type : ', type(lst))\n", - "print(lst)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 249, - "metadata": {}, + "source": [ + "lst_of_lsts = [[0, 1, 2], [3,4,5],[6,7,8]]\n", + "print(lst_of_lsts)\n", + "print(type(lst_of_lsts))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[0, 1, 2], [3, 4, 5], [6, 7, 8]]\n", "\n" ] } ], - "source": [ - "lst_of_lsts = [[0, 1, 2], [3,4,5],[6,7,8]]\n", - "print(lst_of_lsts)\n", - "print(type(lst_of_lsts))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "The numPy array has a *ndarry* data type which refers to n dimensional array. " - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 250, - "metadata": {}, + "source": [ + "arr = np.array(lst)\n", + "print('Type:', type(arr))\n", + "print(arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Type: \n", "[1 2 3 4 5]\n" ] } ], - "source": [ - "arr = np.array(lst)\n", - "print('Type:', type(arr))\n", - "print(arr)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 251, - "metadata": {}, + "source": [ + "two_dim_arr = np.array(lst_of_lsts)\n", + "print(two_dim_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[0 1 2]\n", " [3 4 5]\n", @@ -202,34 +205,39 @@ ] } ], - "source": [ - "two_dim_arr = np.array(lst_of_lsts)\n", - "print(two_dim_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating NumPy arrays with different data types\n", "It is possible to create a numpy array with different data types with dtype " - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating integer NumPy array" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 252, - "metadata": {}, + "source": [ + "# Python list\n", + "lst = [1,2,3,4,5]\n", + "print(lst)\n", + "\n", + "arr_int = np.array(lst, dtype='int')\n", + "print(arr_int)\n", + "print(type(arr_int))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1, 2, 3, 4, 5]\n", "[1 2 3 4 5]\n", @@ -237,31 +245,31 @@ ] } ], - "source": [ - "# Python list\n", - "lst = [1,2,3,4,5]\n", - "print(lst)\n", - "\n", - "arr_int = np.array(lst, dtype='int')\n", - "print(arr_int)\n", - "print(type(arr_int))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating floating number NumPy array" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 253, - "metadata": {}, + "source": [ + "# Python list\n", + "lst = [1,2,3,4,5]\n", + "print(lst)\n", + "\n", + "arr_float = np.array(python_list, dtype='float')\n", + "print(arr_float)\n", + "print(type(arr_float))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1, 2, 3, 4, 5]\n", "[1. 2. 3. 4. 5.]\n", @@ -269,31 +277,31 @@ ] } ], - "source": [ - "# Python list\n", - "lst = [1,2,3,4,5]\n", - "print(lst)\n", - "\n", - "arr_float = np.array(python_list, dtype='float')\n", - "print(arr_float)\n", - "print(type(arr_float))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating complex NumPy array\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 254, - "metadata": {}, + "source": [ + "# Python list\n", + "lst = [1,2,3,4,5]\n", + "print(lst)\n", + "\n", + "arr_complex = np.array(lst, dtype='complex')\n", + "print(arr_complex)\n", + "print(type(arr_complex))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1, 2, 3, 4, 5]\n", "[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j]\n", @@ -301,31 +309,30 @@ ] } ], - "source": [ - "# Python list\n", - "lst = [1,2,3,4,5]\n", - "print(lst)\n", - "\n", - "arr_complex = np.array(lst, dtype='complex')\n", - "print(arr_complex)\n", - "print(type(arr_complex))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating String NumPy array" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 255, - "metadata": {}, + "source": [ + "# Python list\n", + "lst = [1,2,3,4,5]\n", + "print(lst)\n", + "arr_str = np.array(lst, dtype='str')\n", + "print(arr_str)\n", + "print(type(arr_str))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1, 2, 3, 4, 5]\n", "['1' '2' '3' '4' '5']\n", @@ -333,86 +340,65 @@ ] } ], - "source": [ - "# Python list\n", - "lst = [1,2,3,4,5]\n", - "print(lst)\n", - "arr_str = np.array(lst, dtype='str')\n", - "print(arr_str)\n", - "print(type(arr_str))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 256, - "metadata": {}, + "source": [ + "fruits = ['Apple','Avocado', 'Banana', 'Mango', 'Orange']\n", + "fruits_arr = np.array(fruits)\n", + "print(fruits_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "['Apple' 'Avocado' 'Banana' 'Mango' 'Orange']\n" ] } ], - "source": [ - "fruits = ['Apple','Avocado', 'Banana', 'Mango', 'Orange']\n", - "fruits_arr = np.array(fruits)\n", - "print(fruits_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating Boolean NumPy Arrays\n", "Creating a boolean a NumPy array from list" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 257, - "metadata": {}, + "source": [ + "arr_bool = np.array([0, 1, -1, 0, 0], dtype=bool)\n", + "print(type(arr_bool))\n", + "print(arr_bool)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "\n", "[False True True False False]\n" ] } ], - "source": [ - "arr_bool = np.array([0, 1, -1, 0, 0], dtype=bool)\n", - "print(type(arr_bool))\n", - "print(arr_bool)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "*Summary of creating NumPy array with different data types*" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 258, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1 2 3 4 5]\n", - "[1. 2. 3. 4. 5.]\n", - "[ True True True False True True True True]\n", - "[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j]\n", - "['1' '2' '3' '4' '5.0']\n" - ] - } - ], "source": [ "np_int_arr = np.array([1,2,3,4,5.0], dtype = 'int')\n", "np_float_arr = np.array([1,2,3,4,5.0], dtype = 'float')\n", @@ -425,23 +411,41 @@ "print(np_bool_arr)\n", "print(np_complex_arr)\n", "print(np_str_arr)" - ] + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[1 2 3 4 5]\n", + "[1. 2. 3. 4. 5.]\n", + "[ True True True False True True True True]\n", + "[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j]\n", + "['1' '2' '3' '4' '5.0']\n" + ] + } + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Nested list can create multidimensional numPy arrays. It is possible to create a multidimensional array using Python list of lists" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 259, - "metadata": {}, + "source": [ + "lst_of_lsts = [[0,1,2], [3,4,5], [6,7,8]]\n", + "two_dim_arr = np.array(lst_of_lsts)\n", + "print(two_dim_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[0 1 2]\n", " [3 4 5]\n", @@ -449,15 +453,10 @@ ] } ], - "source": [ - "lst_of_lsts = [[0,1,2], [3,4,5], [6,7,8]]\n", - "two_dim_arr = np.array(lst_of_lsts)\n", - "print(two_dim_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### NumPy array attributes\n", "The numPy array has different attributes that give more information about the array such as *ndim*, *shape*, *size*, *dtype*, *itemsize*\n", @@ -468,16 +467,24 @@ "- itemsize - returns the size in bytes of each elements in the numPy array\n", "\n", "The NumPy *shape* method provide the shape of the array as a tuple. The first is the row and the second is the column. If the array is just one dimensional it returns the size of the array(n,)." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 260, - "metadata": {}, + "source": [ + "arr = np.array([1, 2, 3, 4,5])\n", + "print('NumPy array dimension: ', arr.ndim)\n", + "print('NumPy array shape: ', arr.shape)\n", + "print('NumPy array size: ', arr.size)\n", + "print('NumPy array data type: ', arr.dtype)\n", + "print('NumPy array item size: ', arr.itemsize)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "NumPy array dimension: 1\n", "NumPy array shape: 1\n", @@ -487,83 +494,82 @@ ] } ], - "source": [ - "arr = np.array([1, 2, 3, 4,5])\n", - "print('NumPy array dimension: ', arr.ndim)\n", - "print('NumPy array shape: ', arr.ndim)\n", - "print('NumPy array size: ', arr.size)\n", - "print('NumPy array data type: ', arr.dtype)\n", - "print('NumPy array item size: ', arr.itemsize)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating Multidimensional Array Using NumPy\n", "We can create different dimension numPy array." - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### NumPy array without dimension or zero deminsion" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 261, - "metadata": {}, + "source": [ + "ten = np.array(10)\n", + "print(ten)\n", + "print(f'The numPy n-d:{ten.ndim},shape:{ten.shape}, size:{ten.size}, date type:{ten.dtype}, itemsize:{ten.itemsize}') " + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "10\n", "The numPy n-d:0,shape:(), size:1, date type:int32, itemsize:4\n" ] } ], - "source": [ - "ten = np.array(10)\n", - "print(ten)\n", - "print(f'The numPy n-d:{ten.ndim},shape:{ten.shape}, size:{ten.size}, date type:{ten.dtype}, itemsize:{ten.itemsize}') " - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "We can use simple function that provides information about the numPy array" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 262, - "metadata": {}, - "outputs": [], "source": [ "def get_numpy_array_info(arr):\n", " print(f'The numPy n-d:{arr.ndim},shape:{arr.shape}, size:{arr.size}, date type:{arr.dtype}, itemsize:{arr.itemsize}')" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### One dimension numPy array\n", "A list can create a one dimensional numPy array.\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 263, - "metadata": {}, + "source": [ + "lst = [1, 2, 3, 4, 5]\n", + "arr = np.array(lst)\n", + "print(lst)\n", + "print(arr)\n", + "get_numpy_array_info(arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1, 2, 3, 4, 5]\n", "[1 2 3 4 5]\n", @@ -571,30 +577,30 @@ ] } ], - "source": [ - "lst = [1, 2, 3, 4, 5]\n", - "arr = np.array(lst)\n", - "print(lst)\n", - "print(arr)\n", - "get_numpy_array_info(arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### Two dimensional numPy array\n", "A list of list can create a 2-d numPy array" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 271, - "metadata": {}, + "source": [ + "lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n", + "two_dim_arr = np.array(lst)\n", + "print(lst)\n", + "print(two_dim_arr)\n", + "get_numpy_array_info(arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n", "[[1 2 3]\n", @@ -604,22 +610,25 @@ ] } ], - "source": [ - "lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n", - "two_dim_arr = np.array(lst)\n", - "print(lst)\n", - "print(two_dim_arr)\n", - "get_numpy_array_info(arr)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 272, - "metadata": {}, + "source": [ + "# 2 Dimension Array\n", + "two_dim_arr = np.array([(1,2,3),(4,5,6), (7,8,9)])\n", + "print(type (two_dim_arr))\n", + "print(two_dim_arr)\n", + "print('Dim:', two_dim_arr.ndim)\n", + "print('Shape: ', two_dim_arr.shape)\n", + "print('Size:', two_dim_arr.size)\n", + "print('Data type:', two_dim_arr.dtype)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "\n", "[[1 2 3]\n", @@ -632,33 +641,30 @@ ] } ], - "source": [ - "# 2 Dimension Array\n", - "two_dim_arr = np.array([(1,2,3),(4,5,6), (7,8,9)])\n", - "print(type (two_dim_arr))\n", - "print(two_dim_arr)\n", - "print('Dim:', two_dim_arr.ndim)\n", - "print('Shape: ', two_dim_arr.shape)\n", - "print('Size:', two_dim_arr.size)\n", - "print('Data type:', two_dim_arr.dtype)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Three dimensional numPy array\n", "List of lists of list create a 3-d numPy array" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 291, - "metadata": {}, + "source": [ + "lst = [[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]\n", + "three_dim_arr = np.array(lst)\n", + "print(lst)\n", + "print(three_dim_arr)\n", + "get_numpy_array_info(two_dim_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]\n", "[[[1 2 3]\n", @@ -668,124 +674,120 @@ ] } ], - "source": [ - "lst = [[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]\n", - "three_dim_arr = np.array(lst)\n", - "print(lst)\n", - "print(three_dim_arr)\n", - "get_numpy_array_info(two_dim_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Converting NumPy array to list" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 292, - "metadata": {}, + "source": [ + "lst = [1, 2, 3, 4, 5]\n", + "arr = np.array(lst)\n", + "print(arr)\n", + "lst = arr.tolist()\n", + "lst_of_lsts = two_dim_arr.tolist()\n", + "print(lst_of_lsts )" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1 2 3 4 5]\n", "[[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]\n" ] } ], - "source": [ - "lst = [1, 2, 3, 4, 5]\n", - "arr = np.array(lst)\n", - "print(arr)\n", - "lst = arr.tolist()\n", - "lst_of_lsts = two_dim_arr.tolist()\n", - "print(lst_of_lsts )" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 308, - "metadata": {}, + "source": [ + "print(lst)\n", + "print(type(lst))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1, 2, 3, 4, 5]\n", "\n" ] } ], - "source": [ - "print(lst)\n", - "print(type(lst))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Creating NumPy Array from Tuples" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 309, - "metadata": {}, + "source": [ + "tpl = (1,2,3,4,5)\n", + "print(type(tpl))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "\n" ] } ], - "source": [ - "tpl = (1,2,3,4,5)\n", - "print(type(tpl))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 310, - "metadata": {}, + "source": [ + "arr = np.array(tpl)\n", + "print(type(arr))\n", + "print('numpy_array_from_tuple:',arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "\n", "numpy_array_from_tuple: [1 2 3 4 5]\n" ] } ], - "source": [ - "arr = np.array(tpl)\n", - "print(type(arr))\n", - "print('numpy_array_from_tuple:',arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 311, - "metadata": {}, + "source": [ + "print(two_dim_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[[1 2 3]\n", " [4 5 6]\n", @@ -793,70 +795,70 @@ ] } ], - "source": [ - "print(two_dim_arr)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 312, - "metadata": {}, + "source": [ + "print('She of numpy_two_dimensional_array: ', two_dim_arr.shape)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "She of numpy_two_dimensional_array: (1, 3, 3)\n" ] } ], - "source": [ - "print('She of numpy_two_dimensional_array: ', two_dim_arr.shape)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Size of a NumPy array\n", "In NumPy to know the number of items in a NumPy array list we use size" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 313, - "metadata": {}, - "outputs": [], "source": [ "lst = [1, 2, 3, 4, 5]\n", "arr = np.array(lst)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 314, - "metadata": {}, + "source": [ + "print('Size: ', arr.size)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Size: 5\n" ] } ], - "source": [ - "print('Size: ', arr.size)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 315, - "metadata": {}, + "source": [ + "print(np_two_dim_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[0 1 2]\n", " [3 4 5]\n", @@ -864,43 +866,49 @@ ] } ], - "source": [ - "print(np_two_dim_arr)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 316, - "metadata": {}, + "source": [ + "print('Size: ', np_two_dim_arr.size)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Size: 9\n" ] } ], - "source": [ - "print('Size: ', np_two_dim_arr.size)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Data Type of NumPy Array\n", "Type of data types: str, int, float, complex, bool, list, None" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 317, - "metadata": {}, + "source": [ + "int_lists = [-3, -2, -1, 0, 1, 2,3]\n", + "int_arr = np.array(int_lists)\n", + "print(int_arr)\n", + "print(int_arr.dtype)\n", + "float_arr = np.array(int_lists, dtype=float)\n", + "print(float_arr)\n", + "print(float_arr.dtype)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[-3 -2 -1 0 1 2 3]\n", "int32\n", @@ -909,33 +917,31 @@ ] } ], - "source": [ - "int_lists = [-3, -2, -1, 0, 1, 2,3]\n", - "int_arr = np.array(int_lists)\n", - "print(int_arr)\n", - "print(int_arr.dtype)\n", - "float_arr = np.array(int_lists, dtype=float)\n", - "print(float_arr)\n", - "print(float_arr.dtype)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Iterating NumPy Array\n", "\n", "We can iterate through each elements of numPy array using loops. \n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 318, - "metadata": {}, + "source": [ + "# 1-d array\n", + "arr = np.array([1, 2, 3, 4, 5])\n", + "print('Dim:', arr.ndim)\n", + "for item in arr:\n", + " print(item)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Dim: 1\n", "1\n", @@ -946,22 +952,27 @@ ] } ], - "source": [ - "# 1-d array\n", - "arr = np.array([1, 2, 3, 4, 5])\n", - "print('Dim:', arr.ndim)\n", - "for item in arr:\n", - " print(item)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 319, - "metadata": {}, + "source": [ + "# 2-d array\n", + "arr = np.array([[1, 2], [3, 4], [5,6]])\n", + "print('Dim:', arr.ndim)\n", + "for item in arr:\n", + " print(item)\n", + " \n", + "\n", + "for item in arr:\n", + " for i in item:\n", + " print(i)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Dim: 2\n", "[1 2]\n", @@ -976,27 +987,24 @@ ] } ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 320, "source": [ - "# 2-d array\n", - "arr = np.array([[1, 2], [3, 4], [5,6]])\n", + "# 3-d array\n", + "arr = np.array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]])\n", "print('Dim:', arr.ndim)\n", "for item in arr:\n", " print(item)\n", " \n", - "\n", - "for item in arr:\n", - " for i in item:\n", - " print(i)" - ] - }, - { - "cell_type": "code", - "execution_count": 320, - "metadata": {}, + "\n" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Dim: 3\n", "[[1 2]\n", @@ -1008,31 +1016,26 @@ ] } ], - "source": [ - "# 3-d array\n", - "arr = np.array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]])\n", - "print('Dim:', arr.ndim)\n", - "for item in arr:\n", - " print(item)\n", - " \n", - "\n" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Iterating using ndenumerator method allow to access the element with the location of the specific element." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 321, - "metadata": {}, + "source": [ + "for x in np.ndenumerate(arr):\n", + " print(x)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "((0, 0, 0), 1)\n", "((0, 0, 1), 2)\n", @@ -1049,14 +1052,10 @@ ] } ], - "source": [ - "for x in np.ndenumerate(arr):\n", - " print(x)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Mathematical Operation Using NumPy\n", "Numpy array is not like exactly like python list. To do mathematical operation in pyhton list we have to loop through the items but numpy can allow to do any mathematical operation without looping. Mathematical Operation:\n", @@ -1068,104 +1067,117 @@ "- Modules (%) \n", "- Floor Division(//) \n", "- Exponential(**) " - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Addition\n", "Adding to scalar value is easy but add some value on a python list is not an easy operation. However, numPy array made it easy to do arithemtic operation without a use of any loops." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 323, - "metadata": {}, + "source": [ + "# Mathematical Operation\n", + "# Addition\n", + "arr = np.array([1, 2, 3, 4, 5])\n", + "print('original array: ',arr)\n", + "ten_plus_original = arr + 10\n", + "print(ten_plus_original)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "original array: [1 2 3 4 5]\n", "[11 12 13 14 15]\n" ] } ], - "source": [ - "# Mathematical Operation\n", - "# Addition\n", - "arr = np.array([1, 2, 3, 4, 5])\n", - "print('original array: ',arr)\n", - "ten_plus_original = arr + 10\n", - "print(ten_plus_original)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Subtraction" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 325, - "metadata": {}, - "outputs": [ + "source": [ + "# Subtraction\n", + "arr = np.array([1, 2, 3, 4, 5])\n", + "print('original array: ',arr)\n", + "ten_minus_original = arr - 10\n", + "print(ten_minus_original)" + ], + "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "original array: [1 2 3 4 5]\n", "[-9 -8 -7 -6 -5]\n" ] } ], - "source": [ - "# Subtraction\n", - "arr = np.array([1, 2, 3, 4, 5])\n", - "print('original array: ',arr)\n", - "ten_minus_original = arr - 10\n", - "print(ten_minus_original)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Multiplication\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 326, - "metadata": {}, + "source": [ + "arr = np.array([1, 2, 3, 4, 5])\n", + "print('original array: ', arr)\n", + "ten_times_original = arr * 10\n", + "print(ten_times_original)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "original array: [1 2 3 4 5]\n", "[10 20 30 40 50]\n" ] } ], - "source": [ - "arr = np.array([1, 2, 3, 4, 5])\n", - "print('original array: ', arr)\n", - "ten_times_original = arr * 10\n", - "print(ten_times_original)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 327, - "metadata": {}, + "source": [ + "# let's seee some use cases\n", + "\n", + "x = np.array(range(0,50))\n", + "y = x * 2\n", + "print(x)\n", + "print(y)\n", + "plt.scatter(x,y, c='brown')\n", + "plt.title('X vs Y')\n", + "plt.xlabel('X Axis')\n", + "plt.ylabel('Y Axis')\n", + "plt.show()" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n", " 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47\n", @@ -1176,335 +1188,332 @@ ] }, { + "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAAB77+9AAABFwgGAAAARnjvv709AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8v77+9EQsAAAAJcEhZcwAACxMAAAsTAQDvv73vv70YAAAfXklEQVR477+977+977+9bVBTZ++/vQfvv71/eBFrxbFo77+9PC3vv71T77+977+977+9Ldq1U++/ve+/ve+/vVTvv70oBhFB77+977+977+9a++/vRXvv73vv70a77+977+977+9Kk4d77+96KKs77+9dRxHVlvvv71LbRUV77+9USrvv71Iw67vv71rRe+/ve+/ve+/vS7vv73vv71QzILvv70FIWBy77+9D33vv71TDEkg77+977+977+977+977+9U++/ve+/vXDvv73vv70w77+977+977+9K++/vX0rBEEQQERE77+9C37vv70eABEReR8mByIi77+977+977+9QERENu+/vRzvv73vv73vv70G77+9AxER77+9YHIgIiIbTA5Edu+/ve+/ve+/vWPEiBHvv71877+977+977+977+977+977+9Ou+/vRs3DmfOnO+/ve+/vdy4cQMjRu+/ve+/ve+/vdOn77+9PF9cXO+/vdGjR++/ve+/ve+/ve+/ve+/ve+/vUXvv71RCu+/vXMg77+9b++/ve+/ve+/vdi+fTvvv73vv73vv73vv73oo49izpw5UO+/ve+/vUhLS++/ve+/ve+/vRw+fBh/77+977+9H++/ve+/ve+/ve+/ve+/ve+/vRDcvXsXcXFx77+977+977+9DzBmzJhu77+9F1FHMDkQOe+/ve+/ve+/ve+/ve+/ve+/ve+/vXjvv73vv70nce+/ve+/vQ1877+977+9UCgUbe+/vSkpKe+/ve+/vXXrkJ/vv70PAO+/vXfvv70exo4d77+9L++/ve+/vRJffO+/vQXvv73vv73fj++/ve+/vUAEBQVh1apVGDx477+977+9fe+/vXnvv70dNDc3Y++/ve+/ve+/vVjvv71gAe+/vXrvv70pLFrvv71I77+9GO+/vR7vv73vv71A77+977+977+977+977+9ER8f77+9Bw8eID8/H++/vT7vv73vv73vv70177+9IGDvv73Ysdi0aRNeeO+/vQXvv73duxfvv73vv73vv70/77+9bu+/vToMGzYMRUVFUO+/vVQ4fO+/vTBMJhPvv71P77+9bu+/vTPvv73vv73vv70xee+/vWTvv73vv73vv73LqO+/ve+/ve+/ve+/vR9/77+977+977+9ADFCJO+/ve+/ve+/vQPvv70TFRUVaGho77+977+9e++/vVBeXu+/ve+/vTUK77+9AlPvv71ORV5eHgDvv73QoUPvv702bRrvv73vv73vv70RExPvv73vv73vv71k77+9Wu+/vQp977+977+9QWJiYu+/vT/vv71377+977+9WO+/vXo177+977+977+9ce+/vUYmBu+/vSjvv70c77+9HO+/ve+/ve+/vUNiYiIWLVoE77+9yYTvv73vv70c77+977+977+9Qe+/vVTvv71cW1NT77+9KVPvv70gNzcXCxcuxIkTJ++/ve+/ve+/ve+/vV/vv73vv73vv71g77+9Xu+/vUdoaCg2be+/ve+/ve+/ve+/vW7evAnvv71W77+977+9Fy/vv70tJu+/ve+/ve+/vcyB77+9Du+/ve+/vQzvv71O77+977+977+9KEzvv700CVPvv71OxZgxY++/ve+/ve+/vWA277+9be+/vQ8NDUVERAQyMzPvv73vv73vv73vv73vv706aDQa77+977+977+9F++/vWfvv73vv73ChQvvv71877+977+977+9WzE5ENmxfu+/vXo0NjZiyZIl77+977+9MjMz77+977+9P2Lvv73Gje+/ve+/vScpKQnXrl3DlClTAAAhISFIS0vvv73vv73Zs++/ve+/ve+/ve+/vQ0bNmDvv73vv73Vou+/ve+/ve+/vStYViIiIhvvv705EBHvv70NJgciIu+/ve+/ve+/vUBERDbvv70c77+977+977+9Bu+/vQMREe+/vWByICIiG++/vVnvv71/77+9bgMs77+977+9fyvvv71f77+93qjvv73vv713w4jvv73vv71c77+9Bu+/vRs777+9F2dx77+977+9Ke+/ve+/vWPvv73vv73vv73vv71ya3Lvv73vv73vv71HcnIy77+9bduGJ++/vXgCBu+/vQFr167vv73vv71kwoQJE++/ve+/ve+/vQAA165d77+9e++9h++/ve+/vQbvv73vv73vv71LeO+/ve+/ve+/vTvvv73vv73vv73vv70i77+977+9HFrvv70rR3Lvv70b77+9b++/vVte77+9Eu+/ve+/ve+/vUrvv70uXcKMGTNQWVkJAGhqakJGRgbvv71u3Ypjx47vv73KlSsoLi4G77+977+9yJnvv73vv704ce+/vQQEQe+/ve+/vQMH77+9NSwiIu+/vQDvv70l77+9AwcOYO+/vcqVUO+/vVQA77+977+977+9MgwcOBDvv73vv73vv70ICAjvv71W77+977+9Xu+/vcetW++/ve+/ve+/vdSE77+9w4cDABISEu+/ve+/ve+/ve+/vTUsIiLvv70A77+977+977+91qxZ77+977+977+9O3fvv73vv71k77+9Uu+/vVBTU2Pvv71S77+95LGIREQeJlpD77+9Yu+/ve+/vTk9SxAEKBQK77+977+9d1bvv71+77+9XR7vv71SGe+/ve+/vXt977+9XO+/vQbvv70bO+OWl++/ve+/vS1achgwYADvv71G77+977+977+977+9aO+/vUrvv73vv71577+977+977+977+977+977+9FO+/vRnvv73vv73vv70uNV/vv73vv71gGO+/vT9177+9fe+/vU7vv71xA++/vXFLS3Xvv70e77+977+92Ibvv707Ne+/vQrvv73guakIGx9jfe+/vVnvv71+fgrvv71/VO+/ve+/ve+/vWHYsGHvv73vv73vv71AVVUV77+9ZjMKCgoQGRnvv73vv70ffxxBQUHvv71w77+9AgDvv73IkSPvv73vv73vv70Ua1hERD7vv73vv71Q77+977+977+9WWjvv73vv70eEAQ077+9fO+/ve+/ve+/vVnvv70u77+9fu+/vWgz77+977+977+9IGRlZSE9PR0m77+9CRrvv70GMTE/Z++/ve+/ve+/vWwsX++/vRzvv73vv73vv70YOnQoZs2aJdaw77+977+9fM63O++/ve+/vWJqau+/ve+/vdSEb3dsazN777+9Cu+/vSfvv73vv73vv70i77+9f++/ve+/vWocPXrvv73vv73vv717Du+/vX/vv73vv73vv73vv71CRCQJTXfvv73vv73Sju+/ve+/vV0h77+9Fe+/vUREUmPvv73vv73vv71TFe+/vXNJ77+9IT1V77+977+9dm/vv71ERO+/vRzvv70VBu+/vU3vv71fUO+/vTbvv73vv70F77+977+94Lmp77+9dn/vv70c77+977+977+977+977+977+9wphPD1vvv73vv73vv71t77+977+9YnIgIu+/vULvv73vv70KYe+/vWPvv701GTzvv73Jge+/ve+/ve+/ve+/ve+/vS3vv73vv71XcO+/vT0HIiIP77+977+9W++/vT9q77+977+977+9Cu+/vTA5EBF577+977+977+977+9f++/vWrvv73vv73vv71Z77+977+977+9AwDvv70CPUMH77+977+977+9LHVrKe+/vVhWIiLvv70gR++/vQV377+9FRxhciAiEu+/vTfvv70W77+9YVnvv73vv71IBO+/ve+/vVvvv73vv73Jge+/vUgE77+977+9W++/ve+/vWUlIiIReGtv77+9HiYHIu+/vW7vv71L77+9BXtYViIi77+9Ru+/ve+/vVvvv73vv73Jge+/ve+/vRvvv71ab++/vR7vv73vv73vv73vv73vv73vv73vv73vv70W77+9YXIgInLvv70Uegvvv73vv73vv71ERO+/vQLvv73vv70W77+9YXIgInLvv71Uegvvv73vv73vv71ERO+/vQLvv73vv70W77+9YXIgInLvv73vv73vv704exLvv71KRER2eO+/vRxnT++/vcyB77+977+9Dk/vv73vv73vv71JTA5ERHZ477+9HGdPYnIgIu+/ve+/ve+/vSzvv73vv709ByLvv70977+977+9WXAF77+9AxHJnu+/ve+/vSzvv73vv71lJSLvv70977+977+9WXAF77+9AxHvv70Kewsdw7ISEe+/vQZ7Cx3vv73vv71ARO+/ve+/ve+/vULvv71577+977+9dO+/ve+/vRFs374dABAZGe+/vSVL77+977+9YDBg77+92rUw77+9TO+/vTBhAnQ677+9J++/vUZEEu+/ve+/vULHie+/vRwaGxvvv71m77+9Gu+/ve+/vXrvv73vv73vv70HM2bvv71AUVERVu+/vVrvv73du3cjLCwM77+977+977+9Q3FxMTQa77+977+977+9IyLvv71gb++/vWtELyvvv73vv71mWCwWNDY277+977+977+9B3jvv73vv70Beu+/ve6NgQMHIjw8HAEBAe+/vWrvv73vv73vv73vv71iD++/ve+/vSTvv73vv73vv73vv70TPTnvv73vv73vv70bb++/ve+/vTYmTO+/vQDvv71G77+977+9H38cd++/vdyBUu+/ve+/vV7vv71S77+9UFPvv73vv73vv73vv70Z77+9Fu+/vU7vv73vv73vv70377+9fO+/ve+/vQcP77+977+977+977+9CA4O77+9O++8g++/ve+/vUooFArvv70177+9IO+/vXnvv70R77+977+977+9dnlMSmXvv73vv73vv73vv71lcu+/vRvvv71v77+9cu+/ve+/vVFvISIlCREpSSLvv73vv70z77+977+9ee+/ve+/vRxKSkrvv71W77+90a9fPwBAQkICcnNz77+977+977+9b++/ve+/vWg0Qu+/vVJ177+977+977+977+977+977+9YhE6PR7vv70yGEbvv71P77+9fu+/ve+/ve+/vWvcgHxj77+9atyd77+9LUjvv73foD3vv70+bz8/77+977+9P++/vUUvKz3vv73vv71zMBgM77+9f++/vT4EQUBRURHvv70NG++/ve+/ve+/vQpUVVXvv71sNu+/ve+/ve+/vQDvv73vv73vv71iD++/ve+/vXwMewvvv70j77+977+977+977+9V1/vv73Vq1fvv73vv73vv73vv73vv73vv71A77+977+977+9C0hPT++/vSvvv73vv73vv73vv73vv71077+9TCZoNBrvv73EsAZIRO+/vTnvv70tSO+/ve+/vQUxKARB77+9fC3vv70L77+977+977+9OXLvv70b77+9b++/vVLvv73vv70wSg3vv73vv73vv70w77+9Au+/vU/vv70C77+9Zu+/vR3vv73VshLvv71WIiLvv70n77+9c++/vT3vv73vv71nEO+/vVfvv73vv705zp7EmQMReTU577+977+977+9SUwORO+/ve+/ve+/vXzvv73vv70nMTkQ77+977+977+9fkjegz0HIu+/vQpc77+977+9Xe+/vRzvv73vv70rcD8k77+9wrISEXkF77+977+977+9Xe+/vRzvv71IdO+/vS14P++/ve+/ve+/vUhU77+9Le+/vQYmByISFXsL77+977+9ZSUiEhV7C++/ve+/vcmB77+93Ibvv70F77+9xbISEe+/vQV7C++/ve+/vcmB77+93ILvv70F77+9xrISEe+/vQV7C++/ve+/vcmB77+977+977+9Zy1IE++/vUpE77+9Mu+/ve+/vSBd77+9ORDvv73vv7141oJ0MTkQ77+977+9eNaCdDE5EFHvv71wzYLvv73vv73vv71ARE5xzYLvv70wORDvv71TXO+/vSA/LCsR77+9U1zvv70gP0wORO+/vQZ7CwTvv73vv71ERO+/ve+/ve+/vQLvv71iciAiK++/vRbvv70V77+9SkRk77+977+9Au+/vWJyIO+/vSnvv70W77+9Ee+/ve+/ve+/vWTvv73vv70Fcu+/vcmBSO+/ve+/vVsgZ1hWIu+/vSHvv70W77+9Ge+/ve+/vRzvv73vv73vv73vv73vv73vv73vv70JEyZg77+977+977+9AADvv73vv70A77+9Vu+/ve+/ve+/vWjvv73vv73vv714YlhE77+9VF3vv73vv73vv73vv73vv73vv73vv73vv73vv704Oz0e1YV677+9PQTvv70W77+977+977+977+977+9xo0bWO+/vXIl77+9bt2K77+9R++/ve+/ve+/vdWrKC4uRkZGBu+/vW7dimPHju+/vcqVKyguLhZ7aETvv73vv73vv70C77+9Su+/ve+/vVBYWO+/ve+/vRMnYu+/ve+/vQEIDAxETk4OHnnvv70RDBw4EO+/ve+/ve+/vQgICO+/vVbvv73vv71e77+9F3toRO+/ve+/ve+/vQLvv71K77+977+9Q1VVFQIDA++/ve+/ve+/ve+/ve+/ve+/vWrvv73vv73vv71rGDJkCO+/vUrvv73vv70a77+9Su+/ve+/ve+/ve+/vWvvv73vv73vv73vv73vv73vv73vv70xKe+/ve+/vS7vv73Xl++/vTVuQD7vv70777+9LUTvv70kISIlSe+/vRF577+9XD7vv711JW7Rk++/ve+/vWzvv73vv73vv73vv71777+9bu+/ve+/ve+/vQtpaWnvv73ZsycUCu+/ve+/vRpBEO+/vTzvv73vv73vv716WCxC77+9x6NUBu+/vWjvv73vv73vv73vv73vv711cu+/vRvvv71m7K6c77+9LO+/vX8De++/ve+/vXl377+977+977+977+977+9FA7vv73vv70W77+977+91L9/f++/ve+/vWrvv73vv73vv73vv71nz54YN24cDAYD77+9Ru+/ve+/vRrvv73vv70I77+9SiXvv73QiHwS77+9cSZ3ED05REVF77+977+977+9BO+/ve+/vd2D77+9bO+/vdmzZxETE++/ve+/ve+/vQpUVVXvv71sNu+/ve+/ve+/vQDvv73vv73vv71iD++/ve+/vSc5Ou+/vTlsfAx7C++/vRLvv73vv71Kw4YN77+93Llz77+977+977+977+977+977+9Fu+/ve+/ve+/vSvvv70xYwbvv71+77+9ae+/ve+/ve+/ve+/vWQyQe+/ve+/vSAm77+977+977+9RB3vv73vv71z77+977+9Wl4h77+9eGQRXGJiIhITE++/vTzvv71W77+9ce+/ve+/vVFPDO+/ve+/vWdwPyQSC++/ve+/vSDvv70RXO+/vUBicu+/vRwaGxvvv73vv73vv71fAwDvv73vv73bh++/ve+/vQzcvn3vv73vv73vv70i77+977+9cO+/vQLvv73vv71pWWnZsmUIDw/vv73vv73vv70fdu+/vdiB77+977+9eO+/vVjvv70C77+977+977+9Yu+/ve+/ve+/ve+/vQ/vv71DIjE577+9Ody4cQN/77+977+9H3Dvv73vv71pTO+/vTIF77+977+977+977+977+9H0QYGu+/vXzvv73vv71UGO+/ve+/vX5I77+9EU7vv73DgwcPAAAlJSUYNWoU77+9ZjPvv73fv++/ve+/ve+/vRHvv70Vewvvv70N77+9Ju+/ve+/vcOHY++/vcSJaGpq77+9b37vv70bzJ49G++/vUfvv70WY2xE77+977+977+9AnkD77+9Pe+/ve+/ve+/vUxc77+9eBHvv70+77+9LO+/ve+/ve+/ve+/ve+/vVtvQe+/vdGIMTYiWWJv77+977+977+93ZlDaWkpAO+/vdSpU++/ve+/ve+/vUNpaSlO77+9PO+/ve+/ve+/vWYUFhbvv702QCLvv71hb++/ve+/ve+/vd2Z77+9F198Ae+/vVrvv73du3fbvO+/vVAoEB0d77+91oER77+9QXvvv73vv70G77+9Te+/ve+/ve+/vTbvv70l77+9FkhsCkEQHG5lajLvv70QFBTvv73muZrvv70a77+977+9eu+/vV8x3JXvv71z77+9Gjfvv70977+977+9Nu+/vR9OAu+/vX5nKQDvv73vv73vv71qV3hL77+9YmPvv73vv73vv73vv71JSUnvv73vv73vv73vv70+PnXvv70UEhISOjlMInrvv73vv70N77+977+9fHoY77+9T++/vWLMp++/ve+/vWcg77+9OW1Iz5w5E2/vv73vv70mFi9e77+9S++/vS7vv73vv73vv70EW++/vWwRY2xE77+977+9bO+/vTwiT3Lvv70c77+977+977+977+9Uu+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vdGjeO+/ve+/ve+/vRgb77+9ZHDvv70877+9NU7vv71K77+977+977+977+90qVL77+977+9e++/vSEqKgozZu+/ve+/ve+/vcuX77+9GBvvv70kcFEb77+9Iu+/vTPvv709e++/veCjjz7vv70z77+9PAMAOHnvv70kUlNT77+977+9V1/vv719cERS77+9bFFbdzfvv73vv73vv73vv73vv73vv71w77+977+977+9Nu+/vVbvv73vv73vv73vv73vv70ZRO+/ve+/vUVt5IucJu+/ve+/ve+/ve+/ve+/vdSE77+977+9PHzvv73vv71H77+977+977+9RXx877+977+977+9Ru+/vVPvv73vv70r77+977+977+9YW/vv71877+977+977+9UFNT77+9Tz7vv70EBw4cQENDA37vv73vv73vv71h77+977+977+9Igzvv73vv713PO+/vWbvv73vv73vv70A77+977+977+977+9J++/vW1I77+977+977+9YdGiRe+/ve+/ve+/ve+/ve+/ve+/vdexcu+/vUrvv71UKixY77+9AH3vv73vv70Rc++/vURe77+92ZoFbu+/vUfvv73vv73vv73vv71h2rRp77+977+977+9w5dffgnvv71SCQDYsGHvv71oAyPvv70l77+977+9LO+/ve+/vUDvv73vv71ucnjvv73vv73vv73pp58iISEBcXFx77+9MRDvv70f77+9WSA577+9W1bvv705cyYKCgrvv73vv73vv73vv71b77+9bmHKlCkwGu+/vTh877+977+977+9ACAi77+977+9Be+/vQvvv73vv73vv71G77+9HO+/vT/vv73vv71POHPvv70M77+9zZvvv71N77+9NmHcuHFi77+977+977+977+977+9IB7vv70L77+977+9VmrVv39/zJ8/H2lpaTh977+977+9O++/vUTktbhm77+977+977+9yaHvv73vv73vv70fxo4d646xEHkV77+9FkjOnO+/ve+/ve+/veSIvQXvv70777+977+9YdOmTXByDhDvv71k77+977+9QHJn77+977+977+917/vv70V77+9z5/vv73GjRvvv73vv70c77+95IK9Be+/vTvvv70z77+9PXvvv71A77+9VmPvv73UqSgpKRFzTETvv73vv70u77+977+977+977+9eBRG77+9cXZ6PO+/vQvvv712ewjvv70t77+9XNidOe+/ve+/ve+/ve+/ve+/ve+/ve+/vT1ee++/vTUsX++/vRzvv71O77+9wpNPPml977+977+977+977+977+9KAMkcid7eyLvv71P77+9RO+/ve+/vR/vv71+SCRbTu+/ve+/ve+/ve+/ve+/vQfvv71C77+9b++/ve+/vRZNTU3vv70uJ++/vSk8a++/ve+/vX1277+977+9IAjYtm0bcnNz77+977+977+977+977+9b3bvv73vv73XrVvvv73vv71377+9IisrCwbvv70Ba9eu77+977+9ZMKECRPvv73vv73vv73vv71+RA9jb++/ve+/vX1277+9Q3JyMhobG++/vXfvv71e77+9KXDdqe+/ve+/vRR5eXl477+977+977+977+977+91ITvv73vv70M77+93r0bYWFh77+9N28e77+977+977+977+977+9aO+/ve+/ve+/vSRfXO+/vUDvv71xdhvvv71D77+9Du+/ve+/vX/vv73vv73vv73vv70PPyAnJwfvv73vv70/77+9b++/ve+/ve+/vTBw77+9QO+/ve+/ve+/vSMgIABa77+9Fnrvv73vv73vv73vv71L77+977+9dQtE77+9Yzc5ZGZm77+9R++/vR5u77+9aWZmJnQ677+977+9XO+/vTt377+977+977+977+9Su+/vUJNTe+/ve+/vX0iV3Dvv70CUe+/vXR677+977+977+977+977+977+9EBYWBu+/vVrvv71D77+9DgEALBYLFArvv73vv70aQRDvv70877+9fu+/vXrvv708Ju+/vTLvv73vv73vv73vv70yOe+/ve+/ve+/ve+/vRDvv73vv73vv73vv73vv70k77+9R++/vRly77+977+9f++/vXF377+977+977+977+92LFjMBrvv73vv708eTJ+77+977+9R9y/fx/vv71u3YLvv73vv73vv73vv70a77+977+9CO+/vUrVqe+/vVtbWw/vv73vv73vv70r77+977+977+9YBjvv70/de+/vX3vv71O77+9ce+/vXLvv73vv70U77+9He+/vSPvv73vv73vv70Z77+977+9Pj8/77+977+9P++/vUVPDjt377+977+977+977+9Q++/vXDvv73vv70577+977+977+977+977+977+977+9RlVVFe+/vXjvv70JFBQUYO+/vdSpYg/vv718HO+/vXEm77+9Pu+/vSfvv73vv70EBQUhKysL77+977+977+9MO+/vUzvv71oNO+/ve+/vWHNlzrvv73vv70577+9Yz49bO+/ve+/ve+/vRbvv73vv71TCBLvv71d77+9Ze+/vc6RYtyFUWrvv73vv71fZ++/vQLvv71P77+9Wh9KMe+/ve+/vWDvv73vv73vv71zZSXvv73vv73vv701C0Tvv73vv73vv70c77+977+9cO+/vQLvv73vv70xOe+/ve+/ve+/vQUi77+9Y1nvv718Du+/vUMicj8mB++/vWrvv70tEHkG77+9Su+/ve+/vVsg77+9HCYH77+9Wu+/vS0QeQ7vv71K77+977+9WyDvv70cJgfvv70K77+9LRB5F++/ve+/ve+/ve+/ve+/vVsg77+9PkwO77+9ce+/vS0QeR/vv73vv73vv73vv73vv71bIO+/vT5MDiQaV++/vVogIu+/vWBZ77+9RGHvv73vv71QXe+/ve+/veC5qe+/vS0QeRnvv70cSBQ8a++/vci3MDnvv70oHO+/vRUA77+977+9QO+/vWXvv70c77+977+9ce+/vQLvv73vv71jz4Hvv70V77+9LBBJA++/vQN1K++/vVkg77+9Bu+/ve+/ve+/vVtx77+9Au+/vTQwOe+/ve+/ve+/vVsg77+9Lu+/ve+/ve+/vSXvv70tEEkb77+9A++/ve+/ve+/vQUiaWNZ77+9XO+/ve+/vQLvv73vv70xOe+/vVPvv70tEO+/vQ/vv71K77+9EHsLRO+/ve+/ve+/vUAO77+977+9QCRPLCvvv71D77+9LRDvv70T77+9A1nvv73vv71ARO+/vVhWIgDvv70tEFFbTA4E77+977+9BSJq77+9I2Xvv70tW++/ve+/ve+/ve+/ve+/vQAA77+9Ru+/vcWLF++/vWAwYO+/vdq1MO+/vUzvv70wYQJ0Ou+/vSfvv70mW++/vS0Q77+9L++/vT5zMBgMKCkpQV5eHg4fPu+/ve+/ve+/vXIUFBQgIyMDW++/vW7FsWPvv71w77+977+9FRQXF++/vT00We+/vS7vv73vv73vv73vv71477+9fe+/vXnvv73vv70e77+977+9Qj0A77+9PQTvv70W77+977+9Se+/ve+/vVQq77+9dO+/vVLvv73vv73vv70D77+977+977+9GDRoECorKzFw77+9QO+/ve+/ve+/vSMgIABa77+9Fnrvv71e77+9SR7vv71xJu+/ve+/vRI9OQwZMgTDhw8HAFRWVu+/ve+/ve+/ve+/vVAoFFAq77+977+9a1QqFWpq77+9L3Pvv73vv70c77+977+9HDY+77+977+9BSLvv73vv73vv71XWe+/vV/vv73vv71577+977+9Ye+/ve+/ve+/ve+/ve+/ve+/vUdlZe+/ve+/vTVBEO+/vVAoOu+/ve+/ve+/ve+/ve+/ve+/ve+/vVjvv73vv71g77+977+977+9Sxzvv70V77+977+9YChT77+9EO+/ve+/vSTvv708Qy7vv73vv73vv70Y77+977+9dCVu77+9JO+/vQsXLmDvv73vv70F77+977+977+9QGxsLM6dOwfvv73vv71ofe+/vWg0Qu+/vVJ177+9Z++/ve+/ve+/ve+/vWIROj0W77+9MhhG77+9T++/vX7vv73vv73vv73vv70FKe+/vRvvv70j77+977+977+9Ge+/vS0v77+977+977+977+9Uzjvv73vv71a77+977+9UnV1Ne+/vc+f77+977+977+9bO+/ve+/ve+/vQIA77+9DRvvv73vv73vv70KVFVV77+9bDbvv73vv73vv70A77+977+977+9Yg9NMu+/vWbvv73vv73vv71K77+977+9Q25uLkwmE++/ve+/ve+/ve+/ve+/vSUnJyMrKwvvv73vv73vv70w77+9TO+/vWg077+977+9Ye+/ve+/vVXvv73vv70sPDzvv71gX++/ve+/vR7vv70QBO+/ve+/vRgvxLLvv73vv70r77+9UgPvv71977+9CgXGny4FIM24O0rvv73vv70zbnnvv71qWe+/vXsr77+9OO+/vURE77+977+977+9M3wYewtE77+9LkwOPu+/ve+/vSER77+977+977+977+977+9w7gfEhHvv70L77+977+977+9YG/vv73vv73vv73Esu+/vQ9gb++/ve+/ve+/ve+/ve+/ve+/vQPvv71bICLvv73vv73vv73vv70D77+9WyAi77+9MTl4Ge+/vRbvv73vv70b77+977+977+9Re+/vVsgIm/vv73vv73vv71F77+9WyAib++/ve+/ve+/vRdhb++/ve+/ve+/vQXvv73vv70H77+977+9VwgbH++/ve+/vQIReQ3vv73vv71E77+9c++/ve+/ve+/vRdw77+9IDJH77+9OO+/ve+/ve+/ve+/ve+/vRrvv73vv71ARO+/ve+/ve+/vSAyR30FAO+/vS0Q77+9V2BycCPvv71ZICJfxZ7vv73vv71w77+9AhHvv70yJgc377+9BSLvv71lLCvvv70J77+9LBDvv70vY3Lvv70G77+9LRDvv73UsO+/ve+/vUXvv70tEO+/vRQxOXQRewtEJEUsK3URewtEJEVMDu+/ve+/ve+/vQIR77+9Be+/vUod77+977+9AhHvv70J77+9Qwfvv73vv71ARHLCslIH77+977+9QERy77+977+977+9Du+/vRbvv71I77+9WFZ6CHsLRERMDjbvv71bICJiWe+/vQZ7C0REXjZz77+977+977+977+9xIkTER0d77+9PXvvv73vv73vv71e1YV677+977+9Hu+/ve+/ve+/vT/vv73vv73vv73vv71RXe+/vQdg77+977+977+977+9AhHJie+/ve+/vRxqamrvv73vv73vv73vv71D77+9Du+/vUfvv70eSE5O77+9yJEjMXjvv73vv71u77+9V2tf77+977+9fO+/ve+/vVcA77+977+9c1PbvAbvv73vv71ARO+/ve+/vTUzB++/ve+/ve+/vVHvv71G77+9b9++77+91asX77+9eO+/vQ3vv73vv71677+977+977+977+9Oe+/vWHvv71j77+9WyAi77+977+9w507d++/vVQq77+977+9VSoV77+977+977+9Ou+/ve+/vX7vv716d++/vVpHfQXvv70yGMqUJETvv70kde+/ve+/ve+/vSrvv70y77+977+9Q++/vRjvv73vv73OuO+/vStxe01y77+9WCxQKBTvv73HgiDvv71577+9TG1tPSwW77+9Q++/vTpa77+9YDTvv73vv73vv71777+9Mu+/vTJYNu+/vT5M77+977+9M255cRbvv73vv73vv73vv73vv70f77+9XlNWGjBgAO+/vUbvv73vv73vv73vv71o77+9Su+/vXLLvQbvv71N77+9BSIiB++/vSY577+9Hj0a77+977+977+977+977+977+9Q2NjI07vv70877+977+977+9SO+/vdyLfQUiIse877+977+9FBoaCu+/vU7vv71Z77+9Zu+/ve+/ve+/vQXvv73vv73vv73vv73vv73vv71w77+977+9Wu+/vSzvv71177+9SUTvv73vv70kBwDvv71q77+977+9au+/ve+/vR4GEe+/ve+/vXlNWe+/ve+/ve+/ve+/vQfvv70DERHvv71gciAiIhte77+9c++/vQo/77+977+977+977+977+977+977+977+9Mu+/ve+/vQ3vv703du+/vS0v77+977+9du+/vW/vv70QBO+/vWMrx4jvv71INlhWIiIiG0wORERk77+9yYHvv73vv71sMDkQEe+/vQ0mByIi77+977+977+9QERENu+/vRzvv73vv73vv70G77+9AxER77+9YHIgIiIb77+9Tg7vv73vv73vv73vv704cSLvv73vv73vv73vv71n77+9Hk8Px63vv73vv73vv70xae+/vSTcvHkTAGAwGO+/ve+/vWoRHR3vv73vv73vv70cD++/ve+/vX3vv71s2YLvv73vv71Y77+977+977+9Yu+/ve+/ve+/vQDvv70R77+977+9Te+/vTBx77+9RO+/ve+/ve+/vWLvv73OnQDvv70Rd++/vXXvv73vv71h77+90qUA77+9Ee+/vcyZMxEbG++/vcmTJ2Pvv73vv73JuHTvv71S77+977+9FmTvv73vv73vv70X77+977+977+977+977+9d++/vQoNDQ3vv71W77+9Fe+/vV/vv73vv73vv71h77+977+977+9X38tTO+/vTRJGDp077+9cO+/ve+/vQ3vv73vv73vv71R77+9aDTvv71/77+977+9H++/ve+/ve+/vUXvv70zZ++/vXDvv73vv70ZTw/vv73vv71977+977+9V++/ve+/ve+/ve+/vQXvv73vv70kNDc3C++/vWbvv70S77+977+977+9JR/vv73vv73vv73vv703ITk5WWhpaREaGxvvv73vv73vv70o77+92rVr77+977+977+977+977+9YBBG77+9HCksWe+/vUQW77+977+9Fu+/vUV477+977+9V++/ve+/ve+/vRbvv71z77+9Ee+/vWxnDgbvv70B77+9Ru+/vULfvn3Rq1cv77+977+977+9G++/ve+/ve+/ve+/vR7vv71bHDhwACtX77+977+977+977+9XVZW77+977+9AwciPDwcAQEB77+9au+/ve+/ve+/vV3vv71UYu+/vdKl77+90aMHAgMDMWjvv70gVFZWSj7vv73vv71ffhkff++/vTECAgJQW1sL77+92Yx777+977+9ST5uAO+/ve+/vR/vv73vv73vv73vv73vv73Un8+D77+977+977+977+977+977+977+9bwDvv73vv705cxAXF++/vU8+77+977+9W++/vW1y77+9c++/vQ7vv71K77+977+977+9Su+/vUJNTe+/vQdH77+9PmvWrO+/vUsv77+9ZH0s77+92IcMGe+/ve+/vcOHAwAqKytx77+977+9cSgUClnvv70eGBjvv73NmzcjNjYWau+/vVo277+9eWZmJnQ6He+/ve+/ve+/vQNAHu+/ve+/ve+/ve+/vd2DWu+/vcaf77+977+9Z++/vdq1C++/ve+/ve+/ve+/ve+/vdu377+9HO+/vWzvv73vv73vv71i77+9Qu+/ve+/vVvvv70K77+977+95rGU77+9Le+/ve+/vdevY86cOVjvv714Me+/ve+/ve+/vWUT77+977+9BQtQWlrvv73vv73vv71qVFZWSj7vv73vv70+77+9DGFhYVDvv73vv73vv73vv73vv73vv73vv73vv70vYu+/ve+/ve+/vQgODkZISAgSExPvv71577+977+9Lu+/vS3vv73vv70cOmvvv73vv70BOH/vv73vv73vv73vv73vv71o77+977+9Xe+/vW7vv73vv70BMBrvv73vv73vv71S77+977+9woULWO+/vWABMjIyEBsb77+9c++/ve+/vUk+77+977+977+9Du+/ve+/ve+/ve+/vdWvfu+/vUceeQTvv73vv73vv73vv73vv73vv73vv73vv73vv73vv71eI8W477+9HTsG77+90YjJkyfvv73vv70ff++/ve+/ve+/ve+/vXHvv73vv70t77+977+9fe+/ve+/vXnvv73vv73vv71Y77+977+9IAh477+977+9x7vvv717LtuZ77+977+90aNRWlrvv73vv73vv706NDY277+977+9yZPvv73vv73vv73vv73vv73vv71EMWzvv70wVFRU77+977+977+9Cmbvv70ZBQUF77+977+977+977+977+9Gu+/ve+/ve+/vUd2djZiY2MB77+9I++/ve+/vTdvYu+/ve+/ve+/vWhubkZzczNO77+9Ou+/ve+/ve+/vWTvv73HvXPvv71OFBQU77+9yJEjWO+/vWABXn/vv71177+92LFD77+9ce+/ve+/ve+/vU9Y77+9fj1MJhPvv73vv73rkZfvv73vv71F77+9FnU5bu+/ve+/vRxCQ0Pvv73vv73vv70wa++/vSzvv73vv73vv70gMTERERER77+9Hu+/vSjvv73vv73vv73vv73vv73vv73vv73vv73vv71077+9TCZoNBrvv73vv73vv714eljvv70uNzcXJu+/vQlZWVnvv73nkpPvv70lH++/vUbvv71BWVkZ77+977+977+977+977+977+977+977+9aO+/ve+/ve+/vSIkJETvv71x77+9Rw7vv73vv71RUVHvv71077+9Eu+/ve+/ve+/vWHvv71Y77+977+977+977+9F19877+977+9ce+/vSQ4IiLvv70h27ISERHvv73vv73vv71AREQ277+9HO+/ve+/ve+/vQbvv70DERHvv71gciAiIhtMDkQO77+977+977+9Y8SIEe+/vXzvv73vv73vv73vv73vv73vv70677+9GzcOZ86cae+/vT3vv73vv73vv70/77+977+977+9Yu+/ve+/ve+/vR3vv73Hvn3vv706fC3vv71Y77+9VVYiJ++/ve+/vd+P77+927cjLy8P77+9Pu+/vSjvv73MmQPvv71a77+977+977+977+9du+/vV/vv71yJRoaGu+/ve+/ve+/ve+/vR3vv71O77+9QkDvv71s77+9E++/vQ/vv73MgciJ77+977+9ZO+/vRgxAhkZGdiwYQPvv73vv73vv71j77+977+977+9Ye+/ve+/ve+/ve+/ve+/ve+/vUdaWhrvv73vv73vv71x77+977+9Ce+/vWvLli3vv73vv71v77+9De+/ve+/ve+/ve+/ve+/vWo177+977+977+9O3zvv73vv71Y77+9ahUAYO+/vd6977+977+977+977+91KlT77+977+977+977+9b++/ve+/ve+/ve+/vQES77+977+9yYHvv70D77+9f++/vX1c77+9fh0nTu+/ve+/ve+/vXXvv73vv71uYnbvv73vv70RPO+/ve+/vVMYNGgQ77+977+977+9a++/vS7vv71rK1bvv73vv70377+9fO+/ve+/ve+/vTzvv710Oixb77+9DO+/vQYN77+977+9bjbvv73vv73vv70HH2DHjh04eO+/vSDvv71N77+977+9Cxcu77+9OzTvv712MTkQdUBFRQUaGhpw77+977+9Pe+/ve+/ve+/vdu9bu+/ve+/ve+/ve+/vTJlCgAgLi4O77+977+977+9eO+/vSIA77+9V++/vV7vv73vv73vv73vv73vv70VKxAREe+/ve+/ve+/ve+/vTbvv73vv73vv73vv71HTEwM77+977+977+977+9au+/vSrvv73vv73vv70H77+977+977+977+9C++/ve+/vQEmByIn77+977+96pCe77+977+9ZcuWYdmyZVjvv71oUe+/vR0vW++/vT9/HtevX8eOHTvvv73vv73vv70jOTkZ77+977+977+9bWYPFRUV77+927cv77+9Xe+/ve+/ve+/ve+/vWbvv73vv73vv73vv73vv73vv71t27bvv73vv70n77+977+977+977+927Fo77+9Infvv71GZBfvv70D77+9A2bvv70ZOu+/vQ5RUVHvv700aRLvv71O77+977+9MWPvv71A77+977+977+9bDbvv73vv712375977+9PHky77+977+977+9UVRU77+977+977+9Imzbtg3vv73vv73vv73vv71977+9Nm7evO+/vTVr77+977+9L3/vv70L77+9fu+/vWlkZ2fvv715f11dHTQaDe+/ve+/ve+/vdmzZ2Pvv73ChW3vv70lRSQmfu+/ve+/vciB77+977+916Pvv73vv70RS++/vSzvv70+77+977+977+977+9adOmYe+/vcaNeO+/ve+/vXcB77+977+9P++/ve+/vSdP77+977+977+977+9bd6vVu+/vTF877+9cO+/vdq1C++/vS5d77+9W2/vv73vv71n77+9eQbvv73vv73vv73vv71q77+9GD1677+977+92pDvv70Q77+977+977+9Ye+/ve+/ve+/ve+/vdmzJ++/ve+/ve+/ve+/vXrvv71qcQIlegjvv73vv71KREQ2WFYiIiIbTA5ERGTvv73Jge+/ve+/vWwwORAR77+9DSYHIiLvv73vv73vv71AREQ277+9HO+/ve+/ve+/vQbvv70DERHvv73vv71f77+9MT8P77+9WFUAAAAASUVORO+/vUJg77+9", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "# let's seee some use cases\n", - "\n", - "x = np.array(range(0,50))\n", - "y = x * 2\n", - "print(x)\n", - "print(y)\n", - "plt.scatter(x,y, c='brown')\n", - "plt.title('X vs Y')\n", - "plt.xlabel('X Axis')\n", - "plt.ylabel('Y Axis')\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Division" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 336, - "metadata": {}, + "source": [ + "# Division\n", + "arr = np.array([1, 2, 3, 4, 5])\n", + "print('original array: ', arr)\n", + "ten_times_original =arr / 10\n", + "print(ten_times_original)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "original array: [1 2 3 4 5]\n", "[0.1 0.2 0.3 0.4 0.5]\n" ] } ], - "source": [ - "# Division\n", - "arr = np.array([1, 2, 3, 4, 5])\n", - "print('original array: ', arr)\n", - "ten_times_original =arr / 10\n", - "print(ten_times_original)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 337, - "metadata": {}, + "source": [ + "### Modulus\n", + "# Modulus; Finding the remainder\n", + "arr = np.array([1, 2, 3, 4, 5])\n", + "print('original array: ',arr)\n", + "ten_times_original = arr % 3\n", + "print(ten_times_original)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "original array: [1 2 3 4 5]\n", "[1 2 0 1 2]\n" ] } ], - "source": [ - "### Modulus\n", - "# Modulus; Finding the remainder\n", - "arr = np.array([1, 2, 3, 4, 5])\n", - "print('original array: ',arr)\n", - "ten_times_original = arr % 3\n", - "print(ten_times_original)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Modulos" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 343, - "metadata": {}, + "source": [ + "#modulous: the division result without the remainder\n", + "arr = np.array([1, 2, 3, 4, 5, 11])\n", + "print('original array: ', arr)\n", + "ten_times_original = arr // 10\n", + "print(ten_times_original)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "original array: [ 1 2 3 4 5 11]\n", "[0 0 0 0 0 1]\n" ] } ], - "source": [ - "#modulous: the division result without the remainder\n", - "arr = np.array([1, 2, 3, 4, 5, 11])\n", - "print('original array: ', arr)\n", - "ten_times_original = arr // 10\n", - "print(ten_times_original)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Floor Division" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 344, - "metadata": {}, + "source": [ + "# Floor division: the division result without the remainder\n", + "arr = np.array([1, 2, 3, 4, 5, 11])\n", + "print('original array: ', arr)\n", + "ten_times_original = arr // 10\n", + "print(ten_times_original)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "original array: [ 1 2 3 4 5 11]\n", "[0 0 0 0 0 1]\n" ] } ], - "source": [ - "# Floor division: the division result without the remainder\n", - "arr = np.array([1, 2, 3, 4, 5, 11])\n", - "print('original array: ', arr)\n", - "ten_times_original = arr // 10\n", - "print(ten_times_original)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Exponential" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 359, - "metadata": {}, + "source": [ + "# Exponential is finding some number the power of another:\n", + "arr = np.array([1, 2, 3, 4, 5])\n", + "print('original array: ', arr)\n", + "ten_times_original = arr ** 2\n", + "print(ten_times_original)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "original array: [1 2 3 4 5]\n", "[ 1 4 9 16 25]\n" ] } ], - "source": [ - "# Exponential is finding some number the power of another:\n", - "arr = np.array([1, 2, 3, 4, 5])\n", - "print('original array: ', arr)\n", - "ten_times_original = arr ** 2\n", - "print(ten_times_original)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Converting Data Types\n", "We can convert the data types of numpy array" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Converting Data Types from Int to Float" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 366, - "metadata": {}, + "source": [ + "np_int_arr = np.array([1,2,3,4])\n", + "print(np_int_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1 2 3 4]\n" ] } ], - "source": [ - "np_int_arr = np.array([1,2,3,4])\n", - "print(np_int_arr)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 367, - "metadata": {}, - "outputs": [], "source": [ "np_float_arr = np_int_arr.astype('float')" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 368, - "metadata": {}, + "source": [ + "print(np_float_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1. 2. 3. 4.]\n" ] } ], - "source": [ - "print(np_float_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Converting Data Types \n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 369, - "metadata": {}, - "outputs": [], "source": [ "# to int\n", "np_int_arr = np_float_arr.astype('int')" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 370, - "metadata": {}, + "source": [ + "print(np_int_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1 2 3 4]\n" ] } ], - "source": [ - "print(np_int_arr)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 371, - "metadata": {}, + "source": [ + "#to float\n", + "\n", + "np_float_arr = np_int_arr.astype('float')\n", + "print(np_float_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1. 2. 3. 4.]\n" ] } ], - "source": [ - "#to float\n", - "\n", - "np_float_arr = np_int_arr.astype('float')\n", - "print(np_float_arr)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 372, - "metadata": {}, + "source": [ + "# Converting Data Types Int to Boolean\n", + "np_bool_arr = np.array([-3, -2, 0, 1,2,3]).astype('bool')\n", + "print(np_bool_arr)\n" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[ True True False True True True]\n" ] } ], - "source": [ - "# Converting Data Types Int to Boolean\n", - "np_bool_arr = np.array([-3, -2, 0, 1,2,3]).astype('bool')\n", - "print(np_bool_arr)\n" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 373, - "metadata": {}, + "source": [ + "# int to string\n", + "np_str_arr = np_int_arr.astype('str')\n", + "print(np_str_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "['1' '2' '3' '4']\n" ] } ], - "source": [ - "# int to string\n", - "np_str_arr = np_int_arr.astype('str')\n", - "print(np_str_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Getting items from a numpy array" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 374, - "metadata": {}, + "source": [ + "# 2 Dimension Array\n", + "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", + "first_row = two_dim_arr[0]\n", + "second_row = two_dim_arr[1]\n", + "third_row = two_dim_arr[2]\n", + "print('First row:', first_row)\n", + "print('Second row:', second_row)\n", + "print('Third row: ', third_row)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "First row: [1 2 3]\n", "Second row: [4 5 6]\n", @@ -1512,25 +1521,24 @@ ] } ], - "source": [ - "# 2 Dimension Array\n", - "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", - "first_row = two_dim_arr[0]\n", - "second_row = two_dim_arr[1]\n", - "third_row = two_dim_arr[2]\n", - "print('First row:', first_row)\n", - "print('Second row:', second_row)\n", - "print('Third row: ', third_row)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 375, - "metadata": {}, + "source": [ + "first_column= two_dim_arr[:,0]\n", + "second_column = two_dim_arr[:,1]\n", + "third_column = two_dim_arr[:,2]\n", + "print('First column:', first_column)\n", + "print('Second column:', second_column)\n", + "print('Third column: ', third_column)\n", + "print(two_dim_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "First column: [1 4 7]\n", "Second column: [2 5 8]\n", @@ -1541,61 +1549,60 @@ ] } ], - "source": [ - "first_column= two_dim_arr[:,0]\n", - "second_column = two_dim_arr[:,1]\n", - "third_column = two_dim_arr[:,2]\n", - "print('First column:', first_column)\n", - "print('Second column:', second_column)\n", - "print('Third column: ', third_column)\n", - "print(two_dim_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## NumPy array Indexing\n", "\n", "Accessing one dimensional array elements is similar to accessing list elements. The first element can be accessed by index 0. See the example below. Negative indexing is also possible. The last element is at -1." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 376, - "metadata": {}, + "source": [ + "arr = np.array([1, 2, 3, 4, 5])\n", + "print(arr[0])\n", + "print(arr[-1])" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "1\n", "5\n" ] } ], - "source": [ - "arr = np.array([1, 2, 3, 4, 5])\n", - "print(arr[0])\n", - "print(arr[-1])" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Accessing two or more dimensional array elements is a bit different from accessing ordinary list. In order to access a 2-D array element, we use the numbers separated by a comma.\n", "The first numbers reperesents the dimension and the second number refers to the index of the lement.Let's see an example." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 377, - "metadata": {}, + "source": [ + "# 2-D\n", + "lst_lst =[[1,2,3],[4,5,6],[7,8,9]]\n", + "two_dim_arr = np.array(lst_lst)\n", + "print(two_dim_arr)\n", + "print(two_dim_arr[0, 2])\n", + "print('dim:', two_dim_arr.ndim)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 2 3]\n", " [4 5 6]\n", @@ -1605,23 +1612,24 @@ ] } ], - "source": [ - "# 2-D\n", - "lst_lst =[[1,2,3],[4,5,6],[7,8,9]]\n", - "two_dim_arr = np.array(lst_lst)\n", - "print(two_dim_arr)\n", - "print(two_dim_arr[0, 2])\n", - "print('dim:', two_dim_arr.ndim)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 378, - "metadata": {}, + "source": [ + "# 3-D\n", + "\n", + "lst_lst_lst = [[[1,2,3],[4,5,6],[7,8,9]]]\n", + "three_dim_arr = np.array(lst_lst_lst)\n", + "print(three_dim_arr)\n", + "print(three_dim_arr[0, 2, 2]) # the\n", + "print('dim:', three_dim_arr.ndim)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[[1 2 3]\n", " [4 5 6]\n", @@ -1631,32 +1639,34 @@ ] } ], - "source": [ - "# 3-D\n", - "\n", - "lst_lst_lst = [[[1,2,3],[4,5,6],[7,8,9]]]\n", - "three_dim_arr = np.array(lst_lst_lst)\n", - "print(three_dim_arr)\n", - "print(three_dim_arr[0, 2, 2]) # the\n", - "print('dim:', three_dim_arr.ndim)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Slicing some parts of Numpy array\n", "Slicing in numpy is similar to slicing in python list" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 379, - "metadata": {}, + "source": [ + "# [start:end:step]\n", + "# [:] \n", + "arr = np.array([1, 2, 3, 4, 5])\n", + "print(arr)\n", + "print(arr[:])\n", + "print(arr[::])\n", + "print(arr[::2]) # 2 is a step\n", + "print(arr[0:3])\n", + "print(arr[3:])\n" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1 2 3 4 5]\n", "[1 2 3 4 5]\n", @@ -1667,26 +1677,20 @@ ] } ], - "source": [ - "# [start:end:step]\n", - "# [:] \n", - "arr = np.array([1, 2, 3, 4, 5])\n", - "print(arr)\n", - "print(arr[:])\n", - "print(arr[::])\n", - "print(arr[::2]) # 2 is a step\n", - "print(arr[0:3])\n", - "print(arr[3:])\n" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 380, - "metadata": {}, + "source": [ + "# Gives the same numPy array\n", + "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", + "print(two_dim_arr[::])" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 2 3]\n", " [4 5 6]\n", @@ -1694,20 +1698,25 @@ ] } ], - "source": [ - "# Gives the same numPy array\n", - "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", - "print(two_dim_arr[::])" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 381, - "metadata": {}, + "source": [ + "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", + "print('First row', two_dim_arr[0:2]) # slices the first two rows\n", + "print(two_dim_arr[0:3, 0]) # slices the first item in each column\n", + "first_two_rows_and_columns = two_dim_arr[0:3, 0:2]\n", + "print(two_dim_arr[:])\n", + "print(two_dim_arr)\n", + "print(first_two_rows_and_columns)\n", + "print(type(two_dim_arr))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "First row [[1 2 3]\n", " [4 5 6]]\n", @@ -1725,43 +1734,39 @@ ] } ], - "source": [ - "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", - "print('First row', two_dim_arr[0:2]) # slices the first two rows\n", - "print(two_dim_arr[0:3, 0]) # slices the first item in each column\n", - "first_two_rows_and_columns = two_dim_arr[0:3, 0:2]\n", - "print(two_dim_arr[:])\n", - "print(two_dim_arr)\n", - "print(first_two_rows_and_columns)\n", - "print(type(two_dim_arr))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 382, - "metadata": {}, + "source": [ + "two_dim_arr[2, 1:]" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([8, 9])" ] }, - "execution_count": 382, "metadata": {}, - "output_type": "execute_result" + "execution_count": 382 } ], - "source": [ - "two_dim_arr[2, 1:]" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 383, - "metadata": {}, + "source": [ + "# Slicing out the middle four items\n", + "two_dim_arr_2= np.array([[1,2,3,7],[4,5,6, 15], [7,8,9,24], [10,11,12, 33]])\n", + "two_dim_arr_2" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[ 1, 2, 3, 7],\n", @@ -1770,44 +1775,44 @@ " [10, 11, 12, 33]])" ] }, - "execution_count": 383, "metadata": {}, - "output_type": "execute_result" + "execution_count": 383 } ], - "source": [ - "# Slicing out the middle four items\n", - "two_dim_arr_2= np.array([[1,2,3,7],[4,5,6, 15], [7,8,9,24], [10,11,12, 33]])\n", - "two_dim_arr_2" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 384, - "metadata": {}, + "source": [ + "two_dim_arr_2[1:3, 1:3]" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[5, 6],\n", " [8, 9]])" ] }, - "execution_count": 384, "metadata": {}, - "output_type": "execute_result" + "execution_count": 384 } ], - "source": [ - "two_dim_arr_2[1:3, 1:3]" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 385, - "metadata": {}, + "source": [ + "# Assigning \n", + "two_dim_arr_2[1:3, 1:3] = 25\n", + "two_dim_arr_2" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[ 1, 2, 3, 7],\n", @@ -1816,30 +1821,28 @@ " [10, 11, 12, 33]])" ] }, - "execution_count": 385, "metadata": {}, - "output_type": "execute_result" + "execution_count": 385 } ], - "source": [ - "# Assigning \n", - "two_dim_arr_2[1:3, 1:3] = 25\n", - "two_dim_arr_2" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## How to reverse the rows and the whole array?" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 386, - "metadata": {}, + "source": [ + "two_dim_arr[::]" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[1, 2, 3],\n", @@ -1847,21 +1850,21 @@ " [7, 8, 9]])" ] }, - "execution_count": 386, "metadata": {}, - "output_type": "execute_result" + "execution_count": 386 } ], - "source": [ - "two_dim_arr[::]" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 387, - "metadata": {}, + "source": [ + "two_dim_arr[::-1]" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[7, 8, 9],\n", @@ -1869,28 +1872,29 @@ " [1, 2, 3]])" ] }, - "execution_count": 387, "metadata": {}, - "output_type": "execute_result" + "execution_count": 387 } ], - "source": [ - "two_dim_arr[::-1]" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Reverse the row and column positions\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 388, - "metadata": {}, + "source": [ + "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", + "two_dim_arr[::-1,::-1]" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[9, 8, 7],\n", @@ -1898,22 +1902,21 @@ " [3, 2, 1]])" ] }, - "execution_count": 388, "metadata": {}, - "output_type": "execute_result" + "execution_count": 388 } ], - "source": [ - "two_dim_arr = np.array([[1,2,3],[4,5,6], [7,8,9]])\n", - "two_dim_arr[::-1,::-1]" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 389, - "metadata": {}, + "source": [ + "two_dim_arr[::-1, ::-1]" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[9, 8, 7],\n", @@ -1921,32 +1924,34 @@ " [3, 2, 1]])" ] }, - "execution_count": 389, "metadata": {}, - "output_type": "execute_result" + "execution_count": 389 } ], - "source": [ - "two_dim_arr[::-1, ::-1]" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 390, - "metadata": {}, - "outputs": [], "source": [ "## How to represent missing values" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 391, - "metadata": {}, + "source": [ + "print(two_dim_arr)\n", + "two_dim_arr[1,1] = 55\n", + "two_dim_arr[1,2] = 44\n", + "print(two_dim_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 2 3]\n", " [4 5 6]\n", @@ -1957,26 +1962,27 @@ ] } ], - "source": [ - "print(two_dim_arr)\n", - "two_dim_arr[1,1] = 55\n", - "two_dim_arr[1,2] = 44\n", - "print(two_dim_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### NumPy Zeros" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 392, - "metadata": {}, + "source": [ + "# Numpy Zeroes\n", + "# numpy.zeros(shape, dtype=float, order='C')\n", + "numpy_zeroes = np.zeros((3,3),dtype=int)\n", + "numpy_zeroes" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[0, 0, 0],\n", @@ -1984,33 +1990,31 @@ " [0, 0, 0]])" ] }, - "execution_count": 392, "metadata": {}, - "output_type": "execute_result" + "execution_count": 392 } ], - "source": [ - "# Numpy Zeroes\n", - "# numpy.zeros(shape, dtype=float, order='C')\n", - "numpy_zeroes = np.zeros((3,3),dtype=int)\n", - "numpy_zeroes" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Numpy ones\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 393, - "metadata": {}, + "source": [ + "# Numpy ones\n", + "numpy_ones = np.ones((3,5),dtype=int,order='C')\n", + "print(numpy_ones)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 1 1 1 1]\n", " [1 1 1 1 1]\n", @@ -2018,29 +2022,27 @@ ] } ], - "source": [ - "# Numpy ones\n", - "numpy_ones = np.ones((3,5),dtype=int,order='C')\n", - "print(numpy_ones)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 394, - "metadata": {}, - "outputs": [], "source": [ "twos = numpy_ones * 2" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 395, - "metadata": {}, + "source": [ + "print(twos)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[2 2 2 2 2]\n", " [2 2 2 2 2]\n", @@ -2048,25 +2050,26 @@ ] } ], - "source": [ - "print(twos)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### NumPy Full to create identical itmes\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 396, - "metadata": {}, + "source": [ + "np_full = np.full((3, 5), fill_value=4)\n", + "print(np_full)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[4 4 4 4 4]\n", " [4 4 4 4 4]\n", @@ -2074,28 +2077,28 @@ ] } ], - "source": [ - "np_full = np.full((3, 5), fill_value=4)\n", - "print(np_full)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### NumPy Eye\n", "\n", "The eye function creates an identity matrix, that is, a matrix with elements on the diagonal are set to one, and non-diagonal elements are set to zero:" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 397, - "metadata": {}, + "source": [ + "np_eye = np.eye(3, dtype=int)\n", + "print(np_eye)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 0 0]\n", " [0 1 0]\n", @@ -2103,19 +2106,19 @@ ] } ], - "source": [ - "np_eye = np.eye(3, dtype=int)\n", - "print(np_eye)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 398, - "metadata": {}, + "source": [ + "np_eye2 = np.eye(5, dtype=int)\n", + "print(np_eye2)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 0 0 0 0]\n", " [0 1 0 0 0]\n", @@ -2125,98 +2128,102 @@ ] } ], - "source": [ - "np_eye2 = np.eye(5, dtype=int)\n", - "print(np_eye2)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### NumPy Empty\n", "The NumPy *empty* method returns a new array of given shape and type, with random values." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 399, - "metadata": {}, + "source": [ + "np.empty((2, 4))" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[0., 0., 1., 0.],\n", " [0., 1., 1., 1.]])" ] }, - "execution_count": 399, "metadata": {}, - "output_type": "execute_result" + "execution_count": 399 } ], - "source": [ - "np.empty((2, 4))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 400, - "metadata": {}, + "source": [ + "np.empty((2, 2), dtype=int)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[1, 2],\n", " [3, 4]])" ] }, - "execution_count": 400, "metadata": {}, - "output_type": "execute_result" + "execution_count": 400 } ], - "source": [ - "np.empty((2, 2), dtype=int)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Shape and Reshape a numPy array\n", "The *shape* attribute provide the dimension of the numPy array. The reshape method takes arguments and reshape the array to a different dimension." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 401, - "metadata": {}, + "source": [ + "nums = np.arange(12)\n", + "nums.shape" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "(12,)" ] }, - "execution_count": 401, "metadata": {}, - "output_type": "execute_result" + "execution_count": 401 } ], - "source": [ - "nums = np.arange(12)\n", - "nums.shape" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 402, - "metadata": {}, + "source": [ + "nums = np.arange(12)\n", + "print(nums)\n", + "new_arr = nums.reshape(3, 4)\n", + "print(new_arr)\n", + "print(new_arr.ndim) # 2-d\n", + "print(new_arr.shape) # 3 rows and 3 columns" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[ 0 1 2 3 4 5 6 7 8 9 10 11]\n", "[[ 0 1 2 3]\n", @@ -2227,23 +2234,21 @@ ] } ], - "source": [ - "nums = np.arange(12)\n", - "print(nums)\n", - "new_arr = nums.reshape(3, 4)\n", - "print(new_arr)\n", - "print(new_arr.ndim) # 2-d\n", - "print(new_arr.shape) # 3 rows and 3 columns" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 403, - "metadata": {}, + "source": [ + "nums = np.arange(12)\n", + "print(nums)\n", + "new_arr = nums.reshape(3, 4)\n", + "print(new_arr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[ 0 1 2 3 4 5 6 7 8 9 10 11]\n", "[[ 0 1 2 3]\n", @@ -2252,28 +2257,31 @@ ] } ], - "source": [ - "nums = np.arange(12)\n", - "print(nums)\n", - "new_arr = nums.reshape(3, 4)\n", - "print(new_arr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Reshape" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 404, - "metadata": {}, + "source": [ + "\n", + "# numpy.reshape(), numpy.flatten()\n", + "first_shape = np.array([(1,2,3), (4,5,6)])\n", + "print(first_shape)\n", + "print(first_shape.shape)\n", + "reshaped = first_shape.reshape(3,2)\n", + "print(reshaped)\n" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 2 3]\n", " [4 5 6]]\n", @@ -2284,52 +2292,48 @@ ] } ], - "source": [ - "\n", - "# numpy.reshape(), numpy.flatten()\n", - "first_shape = np.array([(1,2,3), (4,5,6)])\n", - "print(first_shape)\n", - "print(first_shape.shape)\n", - "reshaped = first_shape.reshape(3,2)\n", - "print(reshaped)\n" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Flatten\n", "The flaten method changes the numPy array to 1-dimensional array" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 405, - "metadata": {}, + "source": [ + "flattened = reshaped.flatten()\n", + "print(flattened)\n", + "print('Shape:', flattened.shape, 'Dim:', flattened.ndim)\n" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[1 2 3 4 5 6]\n", "Shape: (6,) Dim: 1\n" ] } ], - "source": [ - "flattened = reshaped.flatten()\n", - "print(flattened)\n", - "print('Shape:', flattened.shape, 'Dim:', flattened.ndim)\n" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 406, - "metadata": {}, + "source": [ + "arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])\n", + "newarr = arr.reshape(3, 2, 2)\n", + "print(newarr)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[[ 1 2]\n", " [ 3 4]]\n", @@ -2342,48 +2346,47 @@ ] } ], - "source": [ - "arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])\n", - "newarr = arr.reshape(3, 2, 2)\n", - "print(newarr)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Concatenating Numpy arrays\n", "By default the NumPy concatenate method joins the arrays along axis 0. To join the arrays horizontally, add parameter axis=1:" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 407, - "metadata": {}, + "source": [ + "x = np.arange(2)\n", + "y = np.arange(2, 5)\n", + "z = np.concatenate((x, y))\n", + "print(z)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[0 1 2 3 4]\n" ] } ], - "source": [ - "x = np.arange(2)\n", - "y = np.arange(2, 5)\n", - "z = np.concatenate((x, y))\n", - "print(z)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 408, - "metadata": {}, + "source": [ + "x = np.arange(1, 10).reshape(3,3)\n", + "print(x)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 2 3]\n", " [4 5 6]\n", @@ -2391,19 +2394,19 @@ ] } ], - "source": [ - "x = np.arange(1, 10).reshape(3,3)\n", - "print(x)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 412, - "metadata": {}, + "source": [ + "# concant\n", + "print(np.concatenate((x, x), axis = 0))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 2 3]\n", " [4 5 6]\n", @@ -2414,19 +2417,19 @@ ] } ], - "source": [ - "# concant\n", - "print(np.concatenate((x, x), axis = 0))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 413, - "metadata": {}, + "source": [ + "# concant\n", + "print(np.concatenate((x, x), axis=1))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 2 3 1 2 3]\n", " [4 5 6 4 5 6]\n", @@ -2434,27 +2437,30 @@ ] } ], - "source": [ - "# concant\n", - "print(np.concatenate((x, x), axis=1))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Joining with stack method\n", "It is possible to join horizontally or vertically by changing the value of axis to 0 or 1. The default axis value is zero and that means a horizontal join.\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 421, - "metadata": {}, + "source": [ + " ## Horitzontal Stack\n", + "np_list_one = np.array([1,2,3])\n", + "np_list_two = np.array([4,5,6])\n", + "print('concatenating list:', np_list_one + np_list_two)\n", + "print(np.stack((np_list_one, np_list_two))) # default axis value is zero." + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "concatenating list: [5 7 9]\n", "[[1 2 3]\n", @@ -2462,22 +2468,22 @@ ] } ], - "source": [ - " ## Horitzontal Stack\n", - "np_list_one = np.array([1,2,3])\n", - "np_list_two = np.array([4,5,6])\n", - "print('concatenating list:', np_list_one + np_list_two)\n", - "print(np.stack((np_list_one, np_list_two))) # default axis value is zero." - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 425, - "metadata": {}, + "source": [ + " ## Horitzontal Stack\n", + "np_list_one = np.array([1,2,3])\n", + "np_list_two = np.array([4,5,6])\n", + "print( np_list_one + np_list_two)\n", + "print(np.stack((np_list_one, np_list_two), axis=1))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[5 7 9]\n", "[[1 4]\n", @@ -2486,29 +2492,29 @@ ] } ], - "source": [ - " ## Horitzontal Stack\n", - "np_list_one = np.array([1,2,3])\n", - "np_list_two = np.array([4,5,6])\n", - "print( np_list_one + np_list_two)\n", - "print(np.stack((np_list_one, np_list_two), axis=1))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Horizontal Stack" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 426, - "metadata": {}, + "source": [ + " ## Horitzontal Stack\n", + "np_list_one = np.array([1,2,3])\n", + "np_list_two = np.array([4,5,6])\n", + "print(np_list_one + np_list_two)\n", + "print('Horizontal Append:\\n', np.hstack((np_list_one, np_list_two)))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[5 7 9]\n", "Horizontal Append:\n", @@ -2516,231 +2522,230 @@ ] } ], - "source": [ - " ## Horitzontal Stack\n", - "np_list_one = np.array([1,2,3])\n", - "np_list_two = np.array([4,5,6])\n", - "print(np_list_one + np_list_two)\n", - "print('Horizontal Append:\\n', np.hstack((np_list_one, np_list_two)))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Vertical Stack" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 427, - "metadata": {}, + "source": [ + " ## Vertical Stack\n", + "print('Vertical Append:', np.vstack((np_list_one, np_list_two)))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "Vertical Append: [[1 2 3]\n", " [4 5 6]]\n" ] } ], - "source": [ - " ## Vertical Stack\n", - "print('Vertical Append:', np.vstack((np_list_one, np_list_two)))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Generating Random Numbers" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 437, - "metadata": {}, + "source": [ + "# Generating a random integers between 0 and 10 inclusive\n", + "\n", + "random_int = np.random.randint(0, 11)\n", + "random_int" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "0" ] }, - "execution_count": 437, "metadata": {}, - "output_type": "execute_result" + "execution_count": 437 } ], - "source": [ - "# Generating a random integers between 0 and 10 inclusive\n", - "\n", - "random_int = np.random.randint(0, 11)\n", - "random_int" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 438, - "metadata": {}, + "source": [ + "# Generate a random float number between 0 and 0.999..\n", + "random_float = np.random.random()\n", + "print(random_float)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "0.4099787844112669\n" ] } ], - "source": [ - "# Generate a random float number between 0 and 0.999..\n", - "random_float = np.random.random()\n", - "print(random_float)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 439, - "metadata": {}, + "source": [ + " # Generate a random numpy array of float numbers\n", + "random_floats = np.random.random(5)\n", + "print(random_floats)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[0.22587659 0.0188218 0.1005489 0.22376462 0.86790537]\n" ] } ], - "source": [ - " # Generate a random numpy array of float numbers\n", - "random_floats = np.random.random(5)\n", - "print(random_floats)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "source": [], "outputs": [], - "source": [] + "metadata": {} }, { "cell_type": "code", "execution_count": 441, - "metadata": {}, + "source": [ + "# Random numbers between [0,1) of shape 2,3\n", + "np_random_nums = np.random.random(size=(2, 3))\n", + "print(np_random_nums)\n" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[0.16948871 0.58021159 0.4058133 ]\n", " [0.15162521 0.42037159 0.52096055]]\n" ] } ], - "source": [ - "# Random numbers between [0,1) of shape 2,3\n", - "np_random_nums = np.random.random(size=(2, 3))\n", - "print(np_random_nums)\n" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 443, - "metadata": {}, + "source": [ + "np_random_nums.shape\n", + "np_random_nums.flatten()" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([0.16948871, 0.58021159, 0.4058133 , 0.15162521, 0.42037159,\n", " 0.52096055])" ] }, - "execution_count": 443, "metadata": {}, - "output_type": "execute_result" + "execution_count": 443 } ], - "source": [ - "np_random_nums.shape\n", - "np_random_nums.flatten()" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 444, - "metadata": {}, + "source": [ + "## Random numbers between [0, 1] of shape 2, 2\n", + "rand = np.random.rand(2,2)\n", + "rand" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[0.12099852, 0.05660326],\n", " [0.69331399, 0.8406786 ]])" ] }, - "execution_count": 444, "metadata": {}, - "output_type": "execute_result" + "execution_count": 444 } ], - "source": [ - "## Random numbers between [0, 1] of shape 2, 2\n", - "rand = np.random.rand(2,2)\n", - "rand" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 449, - "metadata": {}, + "source": [ + " # Generating a random integers between 2 and 11, and creating a one row array\n", + "random_int = np.random.randint(2,10, size= 4)\n", + "random_int" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([2, 8, 2, 5])" ] }, - "execution_count": 449, "metadata": {}, - "output_type": "execute_result" + "execution_count": 449 } ], - "source": [ - " # Generating a random integers between 2 and 11, and creating a one row array\n", - "random_int = np.random.randint(2,10, size= 4)\n", - "random_int" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 451, - "metadata": {}, + "source": [ + " # Generating a random integers between 2 and 11, and creating 2-dim array\n", + "random_ints = np.random.randint(2,10, size=(2,4))\n", + "random_ints" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[9, 9, 3, 5],\n", " [3, 4, 2, 3]])" ] }, - "execution_count": 451, "metadata": {}, - "output_type": "execute_result" + "execution_count": 451 } ], - "source": [ - " # Generating a random integers between 2 and 11, and creating 2-dim array\n", - "random_ints = np.random.randint(2,10, size=(2,4))\n", - "random_ints" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 452, - "metadata": {}, + "source": [ + "# Generating a random integers between 0 and 10, [0, 10)\n", + "random_int = np.random.randint(2,10, size=(3,3))\n", + "random_int" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[7, 5, 9],\n", @@ -2748,23 +2753,23 @@ " [3, 6, 3]])" ] }, - "execution_count": 452, "metadata": {}, - "output_type": "execute_result" + "execution_count": 452 } ], - "source": [ - "# Generating a random integers between 0 and 10, [0, 10)\n", - "random_int = np.random.randint(2,10, size=(3,3))\n", - "random_int" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 453, - "metadata": {}, + "source": [ + "# Generating a random integers between 0 and 10, [0, 10)\n", + "random_int = np.random.randint(2,10,(3,3))\n", + "random_int" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[8, 2, 7],\n", @@ -2772,80 +2777,84 @@ " [3, 8, 9]])" ] }, - "execution_count": 453, "metadata": {}, - "output_type": "execute_result" + "execution_count": 453 } ], - "source": [ - "# Generating a random integers between 0 and 10, [0, 10)\n", - "random_int = np.random.randint(2,10,(3,3))\n", - "random_int" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 457, - "metadata": {}, + "source": [ + "print(np.random.choice(['a', 'e', 'i', 'o', 'u'], size=3))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "['u' 'u' 'i']\n" ] } ], - "source": [ - "print(np.random.choice(['a', 'e', 'i', 'o', 'u'], size=3))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 459, - "metadata": {}, + "source": [ + "print(np.random.choice(list('Python'), size=5))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "['h' 't' 'y' 'o' 'y']\n" ] } ], - "source": [ - "print(np.random.choice(list('Python'), size=5))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 462, - "metadata": {}, + "source": [ + "random_id = np.random.choice(list('abcdefghijklmnopkrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), size=24).tolist()\n", + "random_id = ''.join(random_id)\n", + "print(random_id)\n", + "print(len(random_id))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "nNa3RMvCtyIebVkbmEy7lkKG\n", "24\n" ] } ], - "source": [ - "random_id = np.random.choice(list('abcdefghijklmnopkrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), size=24).tolist()\n", - "random_id = ''.join(random_id)\n", - "print(random_id)\n", - "print(len(random_id))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 468, - "metadata": {}, + "source": [ + "def generate_random_id(n = 12):\n", + " random_id = np.random.choice(list('abcdefghijklmnopkrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), size = n).tolist()\n", + " random_id = ''.join(random_id)\n", + " return random_id\n", + "\n", + "print(generate_random_id())\n", + "print(generate_random_id(6))\n", + "print(generate_random_id(24))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "CJGmWahaGYgC\n", "Stg3zm\n", @@ -2853,32 +2862,28 @@ ] } ], - "source": [ - "def generate_random_id(n = 12):\n", - " random_id = np.random.choice(list('abcdefghijklmnopkrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), size = n).tolist()\n", - " random_id = ''.join(random_id)\n", - " return random_id\n", - "\n", - "print(generate_random_id())\n", - "print(generate_random_id(6))\n", - "print(generate_random_id(24))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Generating random data" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 472, - "metadata": {}, + "source": [ + "# first argument min, second argument max and third argument is size\n", + "s = np.random.uniform(-1, 0, 1000)\n", + "print(np.all(s <= 0))\n", + "print(s)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "True\n", "[-9.09125352e-03 -8.40358293e-01 -8.79495448e-01 -9.44144541e-02\n", @@ -3134,121 +3139,119 @@ ] } ], - "source": [ - "# first argument min, second argument max and third argument is size\n", - "s = np.random.uniform(-1, 0, 1000)\n", - "print(np.all(s <= 0))\n", - "print(s)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 475, - "metadata": {}, + "source": [ + "count, bins, ignored = plt.hist(s, 10, density=True)\n", + "plt.plot(bins, np.ones_like(bins), linewidth=2, color='r')\n", + "plt.show()" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAABdgAAAO+/vQgGAAAAfgfvv73vv70AAAA5dEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdmVyc2lvbjMuMy4yLCBodHRwczovL21hdHBsb3RsaWIub3JnLy/vv70RCwAAAAlwSFlzAAALEwAACxMBAO+/ve+/vRgAABUHSURBVHjvv73vv73vv71/UFV177+977+977+977+9RRMjTRzvv70Xdm3vv71177+9HTEE77+9O++/ve+/vTAb77+9OwkLclHMnTZb77+9Hy5m77+977+9Ykvvv70E77+977+9NFvvv71v77+977+977+9I++/vSbvv70RHe+/vWZHZCfvv71R77+9ZnZgM++/vSbvv71iXXPvv71N77+9ewHXvO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vRvvv71wf3Dvv71XPj4ff3E477+9cN+fSz7vv70dLwfvv71lWe+/vQAAxojvv73vv70AAO+/ve+/vSLvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vRkb77+9ASTvv73vv73vv70L77+977+9Qn87fVLvv70EdXV5R2Dvv73vv70Xa++/vTHvv73vv70bQ++/vWvvv73vv73vv71p77+977+9Wwbvv71/Xe+/ve+/ve+/ve+/vQrvv73vv71zbzTvv73vv73vv73vv73vv71vDCPvv71mLu+/vQDvv71hCDsAGCbvv73vv71777+9XhUUFO+/ve+/ve+/vT8f77+9b++/ve+/ve+/vVrvv71g77+9CgsL77+9cu+/vUrvv707dy7vv71DAgDvv70XMO+/vR9877+977+9Hnzvv71B77+9OHFi77+9Pu+/vderZ++/vXlG77+977+977+92rt377+977+9T++/ve+/vW3btu+/vcScAO+/vSAFDO+/ve+/vd2777+9Ye+/vQY5HO+/vQHvv716e3vvv71h77+9BiUnJ0vvv73vv71P77+977+9M2fvv71EfkoAQO+/vQLvv70rZtOmTe+/ve+/vTx577+977+9zZsnSe+/vXjvv70qKyvvv71077+977+977+9TQcACFlE77+977+9eO+/ve+/vXk977+977+9Sk1NVVFRUe+/ve+/vSclTQjvv73vv73vv73vv73vv71h77+9O1rvv73vv70bA2vvv70x77+9xJrvv70ddu+/vdutZcuWKTMzU2vXrg3vv71rdHV577+9ei/vv73vv70+UR7vv73vv73vv70ec++/vWLvv70377+9G3HNkxITNO+/vTFRf9yL77+977+977+977+9Fz1Rf1wp77+977+9c1zvv71t77+9F++/ve+/vQp7X1/vv71W77+9WO+/ve+/ve+/vTzvv71c77+9cjhfCu+/vQ1u77+9TWPvv71877+9Lu+/vVvvv73vv70LZO+/vV/vv71h77+977+977+977+9RC7vv71L77+977+977+977+977+977+977+977+916fvv73vv71GSe+/vcyZM++/ve+/vS4PABhZQe+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSRJ77+977+977+9amtr77+977+9VADvv73vv73vv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/ve+/vS5+77+9Ke+/ve+/vS7vv73vv73vv73vv71Y77+977+9bwoi77+977+9A++/vSHum4Lvv73vv71SDAAY77+977+9A++/vWEIOwAY77+977+9A++/vWEIOwAY77+977+9A++/vWEIOwAY77+977+9A++/vWEIOwAY77+977+9A++/vWEIOwAY77+9e8WEae+/vTdrfHzvv73vv73vv73LvX1Rf0wA77+9C2EP77+977+977+977+9Me+/vUkTAAzvv71LMQBgGO+/vQ4A77+9Ie+/vQBg77+977+977+977+977+9elVQUO+/ve+/vT/vv71877+977+9Tz7vv71E77+9Fi1Sbm7vv73vv73vv73vv71077+9ypXvv70PCQAIXu+/ve+/vX/vv73vv70Heu+/ve+/vQd177+9xIlr77+9X++/vXrvv73Wr1/vv73vv73vv71GWe+/ve+/vd27d0d6RgBACGzvv71lWUMdUFZW77+977+977+9Iu+/vVnvv71G27dv77+977+977+977+977+977+9d++/ve+/vSnvv73vv71nP++/ve+/ve+/ve+/vSVJ77+977+977+92rp177+977+9b++/vR7vv70QXV1e77+9fEPvv70x77+977+977+9eVEXPjwc77+9OQBwPe+/ve+/vV93K3nvv71jIe+/vRcXZ1NS0oRB77+9B3zvv73vv71N77+9Bu+/ve+/vXbvv71l77+977+977+977+9du+/vV0dHR0h77+977+9IQcc77+9Z++/vVhdCO+/vSwA77+9fu+/ve+/vWwj77+9S8uH77+9Pnbvv73vv70n77+977+977+937Ys77+977+9du+/ve+/vXnvv71uf8SlO++/vRPvv73vv73vv73vv71X77+977+977+9E2Pvv70+77+9WO+/vTlW77+9Me+/vT7vv73Kje+/ve+/vVcs77+9HO+/vceV77+977+977+977+9Pd+BXu+/vQ/vv71dMSkpKe+/vXg877+977+977+977+9Tjkc77+977+9fEkA77+9MA0r77+9U++/vUxRfHzvv73vv71777+9PUlSXV3vv73vv73vv73vv70jMhgAIDxhXe+/vSkpKe+/ve+/ve+/vVJ6eu+/vV5477+9Be+/ve+/ve+/ve+/ve+/ve+/vSotLU3vv73vv73Fke+/vRHvv70J77+9A++/vQ5B77+9KT1477+977+946qqKu+/vcep77+977+9eu+/vTciOxUGde+/ve+/vW9E77+977+9JVjvv70fB++/ve+/vXET77+9UWbvv71NY2Lvv70PPQQWGBXvv73vv70AABjvv73vv70D77+9YUbvv73vv73vv71YX28G77+977+90agOO9ebAWAgLu+/vQDvv71hCDsAGO+/ve+/vQPvv71hCDsAGO+/ve+/vQPvv71hRu+/ve+/vWJwY++/ve+/ve+/vVovXe+/vVPvv73vv70xUX/vv71Y77+9Le+/vWYg77+977+977+977+9be+/vTHvv71Pd++/ve+/vU7vv71b77+977+977+977+9GAAwDGEHAO+/vRB2ADAMYQcA77+9EHYAMAxhBwDvv70QdgAwDGEHAO+/vRB2ADAMYQcA77+9EHYAMAxhBwDvv70QdgAwDGEHAO+/vQQV77+977+977+9eu+/ve+/ve+/vSsnJ0c1NTUD77+9HzlyRO+/ve+/vX/vv70KCwvvv73vv73vv70P77+9L++/ve+/ve+/ve+/vQDvv73vv70EDHtHR++/vSoqKu+/vXPvv71O77+92bNH77+977+977+9Onbvv71Y77+9YzZt77+9JO+/vcul77+9e++/vWratGl677+977+977+9RmxgAO+/ve+/vQLvv73vv73vv73vv71Z77+977+977+9SkxMVEJC77+9cnNz77+977+977+977+977+9GO+/vc+nCxcuSO+/vXp6ejR+77+977+977+977+9FgAQUO+/vd+g77+9du+/vWXvv73vv73vv73vv70O77+9Q++/vQ8f77+9d++/vVNPPe+/vV/vv73vv71677+977+9dO+/ve+/vTdr77+977+977+9IQ3vv73vv700Ie+/ve+/vQHvv70UI++/vQgD77+977+977+977+977+9Zu+/ve+/ve+/vS3vv73vv71977+977+9Re+/ve+/ve+/ve+/ve+/ve+/vVoZGRl677+977+977+977+977+977+977+9Vu+/ve+/ve+/vUEP77+977+977+977+9Z++/vTjvv73vv708IQAQTR7vv73vv73vv73Pie+/ve+/vQ3vv73vv7044KWY77+977+9FHk877+977+9De+/ve+/ve+/ve+/vW8fPXpU77+977+977+977+977+9yJAkPe+/ve+/vQM6dO+/vVDIgwIAIiNg2LPvv73vv73vv73vv73Sou+/ve+/vW7vv73vv73vv73vv73vv73vv71J77+977+977+977+977+9U++/vU5Ve3vvv73vv70fPy5JOnDvv73vv73vv73vv73vv71HbmIA77+977+9Al7vv71JTk5WaWnvv73vv73vv73vv73vv73vv73bq8WLFysjI0MlJSVy77+9XEpPT++/ve+/vc2b77+977+977+9y7IsJSUl77+9556L77+977+9AO+/vWsIGHZJcjrvv71yOu+/ve+/vT5XVVXvv73vv714zpw577+9M2dOZCcDAO+/ve+/ve+/vTwFAO+/vRB2ADAMYQcA77+9EHYAMAxhBwDvv70QdgAwDGEHAO+/vRB2ADAMYQcA77+9EHYAMAxhBwDvv70QdgAwDGEHAO+/vRB2ADAMYQcA77+9EHYAMAxhBwDvv70QdgAwDGEHAO+/vRB2ADAMYQcA77+9EHYAMAxhBwDvv70QdgAwDGEHAO+/vQQV77+977+977+9eu+/ve+/ve+/vSsnJ0c1NTUD77+9Hz9+XEvvv70uVWFh77+977+9LVvvv71z77+977+9RXxQAEBwAu+/ve+/ve+/ve+/vUMVFRXauXPvv73vv73vv73Zo++/ve+/vVodO3bMv9+yLD3vv73vv70jKikp77+93r17NWPvv70MVVZW77+977+977+9AO+/ve+/vQUMe3Nz77+9MjMz77+977+977+977+977+977+9BO+/ve+/veaqoe+/ve+/ve+/ve+/vciRI0pISFB2du+/vSRpxYoVeuihh0ZuYgDvv73vv70C77+977+977+9du+/vW7vv73vv73vv70dDu+/vTo6Ou+/ve+/vSdP77+977+9be+/vd2m77+9a9eq77+977+9SBs2bFBCQu+/ve+/vUwLAAhobO+/vQN8Pu+/vWw277+9f9uy77+9fu+/vVfvv71c0aFD77+977+9Y++/vQ7vv73vv73vv73rpZde77+977+977+9P++/ve+/vX8+77+9Ie+/ve+/vSbvv704NgDvv73vv71u77+9GO+/vRkw77+9KSkpam1t77+9b3s8Hjkc77+977+9DWXvv73UqVPvv73vv73vv70uSSooKO+/ve+/ve+/vQpp77+977+9Lu+/vXw+K++/vXPvv71677+977+9PyEAEE0e77+977+977+9z4nvv73vv70N77+977+9OOClmO+/ve+/vSzvv73vv73vv73vv73vv73vv71bPT09ampq77+9X0/vv73vv73vv73vv71b77+977+977+9amtr77+9JB08eFBpaWkhDwoA77+977+977+977+92JPvv73vv71VWlrvv73vv73vv71i77+977+977+9au+/ve+/ve+/ve+/ve+/ve+/vVBJSe+/vVwu77+977+977+977+977+977+9K++/ve+/ve+/ve+/vVw9PT1KSUnRli1b77+9MTsA77+9GgLvv71d77+977+9Tu+/ve+/vU5n77+977+9VVVV77+9P++/vTVr77+977+9eO+/ve+/vU4GAAgLP3kKAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYO+/ve+/ve+/vV5fX++/ve+/ve+/vXzvv73vv73kqKbvv71m77+977+977+9eu+/vS3vv73vv73vv70/77+977+9cADvv73QjQ10QEdH77+9Kioq77+977+9P++/vVnvv73Gje+/vU9+77+9E82ePVt377+9cUfvv73vv706Ozvvv73vv73vv73vv71+77+9BgUABCfvv70r77+977+977+9ZmVmZioxMVEJCQnvv73vv73vv71VQ0PDgO+/ve+/ve+/vcu1atWqERkSABDvv73vv71hd++/vd2y77+977+977+9be+/vcOh77+977+977+9fu+/vWzfvl1377+9ee+/vWbNmhXvv70JAQAhCXgp77+977+977+977+9Zu+/ve+/ve+/vS3vv73vv71977+977+9UTU1Ne+/ve+/ve+/vVrvv73vv73vv71hDe+/ve+/vTQh77+977+9AGDvv73vv73vv70nRu+/vWsGDHtKSu+/vVpbW++/ve+/vR7vv71HDu+/vcO/77+977+977+9IO+/vcej77+977+9X++/ve+/ve+/vXLvv73vv71a77+9ZO+/vXbvv73vv70Z77+9EF1dXu+/vXxW77+977+977+977+9EwIA77+977+977+9D++/ve+/ve+/vTjbkC/vv70DXu+/ve+/ve+/ve+/vVJLS++/ve+/ve+/ve+/ve+/ve+/vdOj77+977+9JmVnZ++/ve+/ve+/vVwuNTY277+977+977+9Tu+/ve+/ve+/vXI4HCFFHQAQWQHDnu+/ve+/ve+/ve+/ve+/vVIVFxdr77+9woUqKChQRkbvv71KSkrvv73vv70fRmNGAEAIAl7vv73vv70k77+977+9Ke+/ve+/ve+/ve+/vXNVVVUD77+977+977+977+977+9de+/ve+/ve+/ve+/vUwGAAgLP3kKAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYO+/ve+/ve+/vV5fX++/ve+/ve+/vXzvv73vv73kqKbvv71m77+977+977+977+977+9a++/ve+/vQUqLCzvv73KlSt177+93Lnvv70PCgAITu+/ve+/vXd0dO+/ve+/ve+/vUI7d++/vdSePXtUW1vvv71jx47vv73vv71777+9Xj3vv73vv70z77+977+977+977+93r17NX3vv710bdu2bUTvv70GAAwuYNib77+977+977+977+977+977+977+977+9RCUkJCg3N1cNDQ3vv73vv73vv73vv73vv73asGHvv73vv73vv73vv70lSdOnT9eZM2dGbmIA77+977+9Au+/ve+/ve+/vXbvv71u77+977+977+9HQ7vv706Ojrvv73bkydP1rx577+9JEkXL15UZWXvv73vv73vv70RGBUAEO+/ve+/ve+/vQ7vv73vv71877+977+9bO+/vW3Lsu+/vW1fde+/ve+/vXk977+977+9Sk1NVVFRUUhDJCVNCO+/vXgAMO+/ve+/vT4x77+9XzNg77+9U1JS77+977+977+977+977+977+9eDxyOBzvv73vv71x77+977+9Wu+/vWzvv70yMzPvv71277+92pDvv73vv73vv73vv73vv73vv71CPm8k77+9EADvv70m77+977+9fO+/ve+/ve+/ve+/vdmGfEEc77+9UkxWVu+/vVpaWu+/ve+/vd2t77+977+9HjU1NSk7O9u/77+977+977+9TytW77+9UF5e77+977+977+9yq7vv71qHgAQPQFf77+9Jycn77+977+977+9VO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vcWL77+977+977+977+977+977+9Eu+/vVwu77+977+977+977+977+9P1ZfX++/vRobGyVJM2fvv73Upk3vv71GfHgA77+9QAHvv70uSU7vv71TTu+/ve+/ve+/veeqqu+/vSRJ77+977+977+9amtr77+977+9ZADvv73vv73vv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vSHvv70AYBjvv70OAO+/vQkq77+977+977+977+977+977+977+9V05O77+9ampqBu+/ve+/ve+/vU/vv71o77+9Iu+/ve+/veaqrO+/vUxX77+9XO+/ve+/ve+/vQDvv73vv70EDHtHR++/vSoqKu+/vXPvv71O77+92bNH77+977+977+9Onbvv71Y77+9Y1bvv71e77+977+977+916vvv73vv71R77+9ZWnvv73vv73vv70jNjAAYGhjAx3vv73vv73crO+/ve+/vUwlJiZK77+9cnNz77+977+90KBV77+9Vknvv71O77+9Ou+/ve+/vRcv6q6777+9JC1a77+9SFvvv71u1ZIlS++/vR4iLu+/vRbvv73vv73vv73vv70x77+977+977+9He+/vVg9Nms277+9cWPvv73YrDnvv73vv73vv71f77+9c2zvv71lWUMd77+96quv77+977+9L++/vVRpae+/vSTvv71Pf++/ve+/vQ4fPu+/vWfvv719Vu+/ve+/ve+/ve+/ve+/vWvLli3atWvvv70k77+977+9Pu+/ve+/ve+/ve+/ve+/ve+/ve+/vRjvv70A77+977+9C3gp77+977+977+977+9Zu+/ve+/ve+/vR0s77+977+9HWg/ACDvv70C77+9PSUlRR7vv73Hv++/ve+/vXjvv71wOAbvv73vv73vv73vv73vv71vPwAg77+9Au+/vT0rK0stLS3vv73vv73vv71WT0/vv73vv73vv73vv73vv73vv73vv73vv73vv70/Ze+/vRTvv73vv73vv73vv73vv73ekyTvv73vv73vv73vv73vv70PAO+/ve+/ve+/ve+/vdil77+977+977+977+96quv77+977+977+9V++/vRcvVklJ77+9SkpK77+9cu+/ve+/ve+/ve+/ve+/ve+/ve+/vTbvv73vv73vv73vv73vv73vv70qLS1N77+9N2/WuHHvv70xPwDvv70/BBV2AO+/ve+/ve+/vU/vv70C77+9YQg7ABjvv73vv70D77+9YQg7ABhmVO+/ve+/ve+/ve+/vV7Stm3bru+/ve+/ve+/ve+/ve+/vVrvv71677+977+977+977+9VFRU77+9Tz/vv70077+977+9Re+/ve+/vdOn77+977+9Qw/vv71HP++/ve+/vR5577+9EV3vv71wYe+/vTHvv70vX++/vRNPPCHvv73TqQULFu+/ve+/ve+/vTkG77+9Rk7vv71r3rhx77+9Fi5c77+977+977+977+977+9f++/vWsMJu+/ve+/vWDvv71877+977+977+977+9fe+/vd2nd++/vXkn77+9E0ZeMGt277+977+9Wu+/vWzvv70WLFjvv73vv73vv70i77+977+977+977+9YO+/ve+/ve+/ve+/vRTvv71R77+9L++/ve+/ve+/vX7vv71pKyMj77+92rp177+9Ne+/ve+/ve+/vR/vv71g77+9W++/vc6yLO+/vTp077+977+977+9H++/vTjvv70jRu+/ve+/ve+/vcut77+977+977+9L++/vWVZ77+977+9L++/vWxt2bJl77+9Me+/vXfvv70ef++/vXHLsizvv73vv73vv73Nuu+/ve+/vXvvv706Y++/vQXvv73vv71XXnnvv73vv73vv71vfmPvv718Pu+/ve+/vdGj77+9D37vv70D77+977+977+9RXvUiAlm77+9V++/vVnvv73Guu+/vXvvv73vv73vv73vv71v77+9Gm9EBO+/ve+/vSfvv71477+92rFj77+9ZVnvv73vv73pp59aWVlZ1pUrV++/vTrvv71w77+977+977+9W3Pvv73Otc6ePWtd77+9cO+/vXI677+977+9P++/ve+/vX7vv73Mnz/vv71677+977+977+9Lcuy77+977+977+9ftqq77+977+9Ge+/vWPvv73vv71X77+9Bw4c0Lfvv73vv71t77+977+9F++/vRjvv73vv73vv73vv716S++/ve+/ve+/ve+/ve+/vXvvv71H77+977+977+9On3vv71077+9Ru+/ve+/ve+/ve+/vV7vv73vv73vv73vv73vv73Nle+/ve+/vQ3vv70aGhoGHO+/ve+/ve+/ve+/ve+/vdOj77+977+9Pu+/ve+/ve+/vWjvv73vv73vv73vv70eNWLvv71d77+9fe+/vVRSUiLvv73Npu+/vX7vv73vv71677+977+977+9Ze+/ve+/vXfvv70G77+9Zkl677+977+9N3Xvv70t77+9aO+/ve+/ve+/ve+/vRwx77+9Xe+/vXnvv71UUFAgSe+/vTp177+9Ll3vv73vv70v77+977+9Mu+/ve+/vQ7vv73vv71v77+977+977+977+94L+R77+9Vde677+977+9YO+/ve+/vWDvv73vv73vv70vXO+/vVDLly/XmDFjBj3vv73vv71277+9bu+/ve+/ve+/ve+/vXbvv73vv73vv73bozFexJ09e1YTJkzvv73YsV/dhO+/vW7vv73vv73vv73vv71j77+9cUVFRe+/ve+/ve+/ve+/ve+/vXvvv71XP++/ve+/vU/vv73vv71PRnvUiAl2zZ9977+977+977+9fe+/vV0tWe+/vUQPPO+/ve+/vTo7OxUXN++/ve+/vXPvv70Lds2nT++/ve+/vR/vv73vv71H77+9We+/vSbvv70jRlzvv71r77+977+977+91aRJ77+9JEnvv73vv73vv73vv71mzJjvv73vv70TJ0Z177+977+977+977+9Jjkc77+9fmvvv71W77+977+977+9XO+/vSLvv71te2Nh37592rx5c++/ve+/vX3vv70777+9UXV1de+/vXPvv73vv73vv70J77+9ZVnvv73vv70P77+977+977+9PHXvv73vv70BN1Tvv73vv70N77+9Xn7vv71l77+9de+/vV3atWvvv71O77+9OO+/ve+/ve+/ve+/ve+/vUpLS9OUKVNGdO+/ve+/vRrOmu+/ve+/ve+/ve+/ve+/vd6u77+977+9Gu+/ve+/ve+/vX/Xr37vv70r77+927fvv73vv71DH++/vX0+77+977+977+9yrRu3bpR77+9f2Tvv73vv70+X1VdXe+/ve+/ve+/vVrvv73YsWNEZhxJ77+977+977+977+9dRnvv73vv73vv70877+977+977+9dW5ycu+/ve+/vW7vv73vv73vv73vv71vSRo9NyXvv73Wmnt7ezV777+9bO+/ve+/ve+/vWnMmDEDbu+/vXbVgQMHVFFRIe+/vc2madOmadasWTp877+977+9dR/vv73vv73vv73vv73vv71u77+977+977+977+9Ze+/vdmU77+977+977+977+977+9FO+/ve+/ve+/vVRGRkbvv73vv70PS++/vWs+fu+/ve+/ve+/vR8/77+977+977+9Mknvv73JkydVXl7vv71n77+9fVbvv73vv73vv71R77+9Pxzvv73vv70+S9KWLVvvv73vv73vv71v77+977+977+9RikpKe+/vRg577+9UlJS77+977+977+977+9347GjRTvv73vv73vv73vv70h77+9M2fvv73vv73vv73vv70kSe+/ve+/ve+/ve+/ve+/ve+/ve+/vTfvv73vv73vv70YTxXvv73vv71u77+9Se+/ve+/ve+/ve+/ve+/ve+/vW9K77+977+977+977+9c++/vRvvv73vv73vv73vv71q77+977+977+977+977+977+977+9bn3vv73vv71H77+9MWNGVGfvv73vv71g77+9PHfvv71c77+9Me+/ve+/vde/dO+/ve+/vRlN77+9Ni3vv73vv71GSjBr77+977+9O++/ve+/ve+/vW/vv73vv73vv71OdXV177+9OXPvv702bu+/vXjvv71HfTDvv71+77+977+977+977+977+977+9O++/vWjXrl3vv70y77+9Umxu77+9OCrvv70Vc++/ve+/ve+/ve+/ve+/ve+/ve+/vSVJ77+9du+/ve+/ve+/ve+/vWPvv70977+9S++/vS5p77+977+977+977+96KOPNG7vv704bdy4UWlpae+/vRx3WE7vv70677+977+977+9ekpdXV3vv73vv70377+977+9F198Ue+/vSZN77+977+977+977+9Tu+/vVvvv71OJ0/vv71UXFzvv70efu+/vWHvv70/OO+/vUbvv73vv73vv73vv73vv73vv71377+977+977+977+9HDkiSXrvv73vv70nNXfvv73vv70YTx7vv71g77+977+9dUvvv70u1apV77+9NHvvv73vv70YTTx877+977+977+9cu+/ve+/ve+/ve+/vX9fEyZM0K3vv73vv73vv70/77+977+977+9Uu+/ve+/ve+/vTHvv708dNG+77+977+9DDsAYHDvv71d77+9Ae+/vRsdYQcA77+9EHYAMAxhBwDvv70QdgAwDGEHAO+/vRB2ADAMYQcA77+977+9L++/ve+/vU7vv73vv70677+977+9AAAAAElFTkTvv71CYO+/vQ==", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "count, bins, ignored = plt.hist(s, 10, density=True)\n", - "plt.plot(bins, np.ones_like(bins), linewidth=2, color='r')\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 476, - "metadata": {}, + "source": [ + "# np.random.normal(mu, sigma, size)\n", + "# mu - mean, sigma - sigma -standard deviation, size - number of obsevations\n", + "normal_array = np.random.normal(79, 15, 10000)\n", + "normal_array" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([68.80039957, 57.06427274, 90.00446115, ..., 84.40814004,\n", " 57.12822484, 87.91751196])" ] }, - "execution_count": 476, "metadata": {}, - "output_type": "execute_result" + "execution_count": 476 } ], - "source": [ - "# np.random.normal(mu, sigma, size)\n", - "# mu - mean, sigma - sigma -standard deviation, size - number of obsevations\n", - "normal_array = np.random.normal(79, 15, 10000)\n", - "normal_array" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 480, - "metadata": {}, + "source": [ + "plt.hist(normal_array,bins=50, color='lightgreen', density=True)\n", + "plt.show()" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAAB77+9AAAA77+9CAYAAADvv71i77+9CgAAADl0RVh0U29mdHdhcmUATWF0cGxvdGxpYiB2ZXJzaW9uMy4zLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvL++/vRELAAAACXBIWXMAAAsTAAALEwEA77+977+9GAAAG3BJREFUeO+/ve+/ve+/vX9MVe+/ve+/ve+/ve+/vRfvv70rX++/vRR377+9NO+/ve+/ve+/ve+/vUpKVe+/ve+/vWhtC1vTgQI3WO+/vVnViikrVO+/vQnvv70POu+/vVEaLR3vv73vv71C77+9H9awfk3vv71hCu+/vQvvv71GUWNnWu+/ve+/ve+/ve+/ve+/vU1tU++/ve+/vXbvv71dL++/vVZA77+9e++/ve+/ve+/ve+/vV/vv73vv73vv73vv71eFO+/vV54Pu+/ve+/ve+/vXM+77+9Hj9v77+977+977+977+977+977+9OUHvv71hGAIA77+9aO+/vVPvv70BAO+/ve+/vSMMAADvv70BAO+/vTAAAO+/vTAAAO+/vTAAAO+/vTAAAEgK77+977+9Dlzvv71v77+977+977+9fe+/ve+/vUfMmRPvv73vv73vv717Ju+/vUfvv71hOu+/vUMt77+9azrvv70zU2oJDg7vv73vv70377+9z5jvv70P77+9MHDvv73vv70JCe+/ve+/vXVNJ9OpHmrvv71f06keau+/ve+/ve+/vUQAAO+/vQAAQBgAAEQYAABEGAAARBgAAEQYAAAU77+977+9GQBTbXbvv71NCg8JGzHvv71/77+977+977+977+977+977+9R++/ve+/vSEM77+9axAeEu+/ve+/ve+/vX1577+977+94puLJREGCDzvv70mAgAQBgAA77+9AAAg77+9AAAg77+9AAAg77+9AAAg77+9AAAg77+9AAAgLjoDbgjvv71Y77+977+9Iwzvv70xeO+/vRIfL++/vVjvv73vv70jDO+/vTHvv73vv70lDkwfHDMAABAGAAAfw6Dvv73vv71ZGRkZSktLU11d3Yjvv73Tp08rJydH77+977+977+92rJl77+9XC7vv70k77+977+977+9Te+/ve+/ve+/ve+/ve+/ve+/vda6de+/ve+/ve+/ve+/vS5JOnHvv70WL17vv73vv73vv71sZWdna9OmTRNYEgBg77+977+9HjPvv73vv73vv73vv73vv73vv73vv71f77+977+9F++/ve+/ve+/ve+/ve+/vUcf77+977+9xYt177+977+977+977+9y5Tvv73vv73vv73vv73vv71CSUlJ2rx577+9Ghoa77+9eu+/vWrvv73vv73vv73vv73vv73vv71fV0JC77+977+977+926fvv73vv70K77+92rVL77+9fO+/ve+/ve+/ve+/ve+/ve+/vU9OanHvv73vv73vv70yXO+/vVjvv73vv73vv70b77+977+9ee+/vTJobW3VkiVLFBMT77+977+977+9SO+/ve+/ve+/ve+/ve+/ve+/ve+/vWxvb29XX1/vv73vv73vv73vv70kSTk5OWppaVF/f++/ve+/ve+/ve+/ve+/ve+/ve+/vSBJ77+977+9O++/ve+/ve+/vSFJOnXqlI4dOybvv73Npu+/ve+/vdeb77+9QBcaFO+/ve+/ve+/vX1577+9A++/vXde77+977+93Llz77+9WCzvv73vv71q77+977+9bu+/ve+/vW7vv71YZO+/ve+/vRUeHu+/ve+/ve+/vWxJ77+977+977+91qvvv73vv73vv73vv70eekjvv70UHR3vv73vv71r16rvv73vv71Z77+977+977+9Kikp77+977+977+9AADvv73vv711N++/ve+/ve+/vVZQUO+/vTltGMaQaW/vv73vv73vv73vv70qKyvvv73vv73vv70ydwtt377vv71sX++/vWrvv71277+93Knvv73vv71uRUfvv73vv715PWdO77+9T++/ve+/vWLvv71t77+9T++/vXrvv71TLWMJ77+9OgPvv73PnlDvv70VXu+/vSAuLk4nT++/vTTvv70dDu+/ve+/vVbvv71277+977+9YU53dnbvv73vv73vv73vv73vv73asGHvv71iYmLvv71r77+9Lu+/ve+/ve+/ve+/ve+/vXZr77+977+977+9KiwsVEhI77+977+977+977+977+9e3Pvv71877+977+9bu+/ve+/ve+/vT3vv71Y77+977+9cHRf77+9eu+/ve+/vXTvv73vv71fau+/ve+/vS8K77+977+9Umjvv73Ij++/vT9f77+977+9L++/vTcTYe+/ve+/vRIcHO+/ve+/vUfvv73vv70wWO+/vXTvv71eee+/vRV1dXVp1qxZOnTokJ5777+9Oe+/vT0+Pl4RERFqa2vvv73vv713363vv73vv70m77+977+977+9SO+/vXJged68edq2be+/ve+/ve+/ve+/ve+/ve+/vVPvv706fO+/ve+/ve+/vc2b77+977+977+9DDU2NmrRokXvv73vv73vv73vv73vv71oYO+/vRg877+9MBxXJu+/vUbvv70aBnPvv73vv71VSUnvv73vv73vv73vv73vv710Ou+/ve+/ve+/ve+/ve+/vQsX77+977+977+9QEVFRVrvv71g77+977+977+977+977+9de+/vVbvv73vv73vv70oMTFReXl577+977+977+9T3Xvv73vv70R77+9fu+/ve+/vXrvv73vv70lXTnvv71QW1vvv70dO3bvv71n77+977+9a++/ve+/ve+/ve+/ve+/vVjvv73vv73ii5NeKADvv70z77+977+977+977+977+9bO+/ve+/vWxD77+977+977+91prvv70HTx3vv73anXfeqe+/vT/vv71877+977+9zZ8/X2/vv73vv73vv71477+9CgDvv70kXO+/vQwAIAwAAO+/vQEAQO+/vQEAQO+/vQEAQO+/ve+/vQbvv71L77+9Bu+/ve+/ve+/ve+/vRDvv70IA++/vQ9xMRpuNHYTAQAIAwAAYQAAEGEAABBhAAAQYQAAEGEAABBhAAAQF++/vWEG77+9HXvvv73vv71D77+9Ru+/vXcaLu+/ve+/vXLvv71JYCbvv70T77+9GSM8JO+/ve+/vVXvv73vv73vv70fbANmAnYTAQAIAwAA77+977+977+977+977+9aO+/ve+/vSzvv70BEEAY77+9FO+/ve+/ve+/vUQAAO+/vQAAQBgAAEQYAABEGAAARBgAAEQYAABEGAAA77+9Yxg0NzcrIyNDaWlp77+977+977+9G++/vX7vv73vv71p77+977+977+9KD09XVvvv71s77+977+977+9JO+/ve+/ve+/vSk3N1fvv73vv73vv71a77+9bu+/ve+/ve+/ve+/vSVJFy5cUGFh77+977+9L1/vv701a++/ve+/ve+/vXBMYEnvv73vv70zeGXvv73vv73vv73vv73Ym++/ve+/vWsIEF7vv73vv71u77+977+977+977+9Wnvvv73vv71VY2Pvv73vv73vv73vv71177+9zJkhy5Tvv73vv73vv73vv73vv71cBw8e77+9YRhqaGgw77+9V1RU77+977+977+9STbvv71NFRUV77+977+977+977+9GiUnJ++/ve+/ve+/vQNa77+9cu+/ve+/vX/vv73vv71JKA3vv705Bu+/vUwe77+9GG3vv71uYDRew6Dvv73vv71VS++/vSxRTEzvv70iIyPvv73vv73vv73vv73vv73vv70W77+977+977+977+9XX19fUpKSu+/vSTvv73vv73kqKXvv71F77+977+977+9Ki4uVkJC77+9JO+/vTvvv71QR0fvv70k77+977+90aPvv73vv71s77+977+977+977+9LO+/ve+/ve+/vXtyOu+/vRNdGwDvv71HXu+/vSY6d++/vSwW77+9OW3vv71a77+977+977+9H3ts77+9WCzvv73vv73vv70KDw9Xdnbvv70k77+977+9du+/ve+/vVdf77+9Qw89NO+/vTXvv73vv73vv73vv73vv73vv71SV1fvv73vv73One+/vVPvv73vv73Mie+/vWk5X++/vTbvv71XIO+/vU7vv71M77+9Wu+/ve+/vWTvv70d77+977+977+9De+/vVzvv701DO+/vW7vv73vv73vv73vv73vv71p77+9MO+/vUx7a++/ve+/ve+/vVdZWe+/vVwu77+977+9fO+/ve+/vVHvv70N77+9MBQc77+977+977+977+977+977+9e++/vXYbPi/vv73vv70SLe+/ve+/ve+/ve+/ve+/ve+/vS/vv71TPe+/vVHvv71077+90I/vv71k77+9HXnvv73vv73vv73vv71qCQ4O77+977+9I++/vWsY77+977+977+977+977+9yZPvv73vv73vv73vv71qHe+/vX7vv70B77+977+977+9Tu+/ve+/ve+/ve+/vVcbNmxQTEzvv71277+92qXvv73vv70r77+9L++/vVbvv706OzsVFxcn77+9y6Xvv73vv71e77+977+977+9eO+/vQrvv70TT++/ve+/vQTvv73vv73Xn++/vUvvv70u77+977+977+977+977+977+91aVL77+9Lu+/vdChQ0pJSTHvv73vv73vv73vv70VERHvv73vv73vv702SVJTU++/ve+/vV5aWu+/vXnvv73mqabvv71G77+977+977+977+9a1JTU++/ve+/ve+/vShJ2r9/77+977+977+977+9zaAA77+977+977+977+9Le+/vT8AeO+/vXXvv71g77+93LkqKSlRXl7vv73vv71O77+9cnNz77+9cO+/vUIVFBTvv73vv73vv71ICxYsUFVV77+977+9bt2q77+977+9HiUmJiovL0/vv71+77+977+977+9HDnvv73vv71v77+9XQ8/77+977+977+9K1sE77+977+977+9Ki4uVllZ77+9MjMzFR0d77+977+977+977+9SS8UAO+/ve+/vU8377+977+977+9bO+/ve+/vT/vv71qa2vvv73vv70JCQnat2/fkO+/vTvvv71T77+9f++/ve+/ve+/veuLie+/ve+/vRtv77+9Md6+AgAmCVcgAwAIAwAAYQAAEGEAABBhAAAQYQAAEGEAABBhAAAQYQAAEGEAABBhAAAQYQAAEGEAABBhAAAQYQAA77+977+977+9MwDvv70R77+977+9BCYOYe+/ve+/vTV4e++/ve+/vW8u77+977+977+9AO+/ve+/ve+/vUQAAO+/vQAAQBgAAEQYAABEGAAARBgAAEQYAABEGAAARBgAAEQYAADvv71wFO+/ve+/ve+/vTJc77+9WO+/vUfvv73vv70fcO+/ve+/ve+/ve+/vSnvv70R77+977+9T2Hvv73vv73crF3vv71277+977+9cmndunVa77+9Zs2Q77+906dPa8uWLe+/ve+/ve+/vVVycu+/ve+/vW3bpu+/ve+/ve+/ve+/ve+/ve+/ve+/vUYhISHauHHvv70k77+9xIkT2rhx77+977+977+977+9JEl377+9ee+/vSorKyfvv70mAO+/vS80KHTvv73vv70IA++/ve+/ve+/ve+/vUR277+9Xe+/ve+/ve+/vdq7d++/vRobG1VfX++/vTNn77+9DFnvv73vv73vv71U77+977+977+9Onjvv70M77+9UEND77+9JO+/ve+/ve+/vVvvv703b9aePXvvv70s77+977+9J++/vSg/P19NTU1qamoiCABg77+9eQ3vv73vv73vv71WLVnvv71EMTEx77+977+977+9VHp677+9Wlpa77+977+977+977+9du+/ve+/ve+/vSkpKUnvv73vv73vv73vv71j77+9HzlyRO+/ve+/vXbvv70ef++/ve+/vSHvv708deqUjh07Ju+/vc2m77+977+916vvv73vv71jAksCAO+/ve+/ve+/vTA4d++/vSwW77+9OW3vv71aZe+/ve+/vT3vv71bLBbvv719xYoVKiwsVEhIyJB1RkdHa++/vdq1am5uVmpq77+9SkpK77+977+9EADvv73vv73vv71677+977+977+9disoKMicNgxjyLTvv73vv73vv71s377vv71877+9au+/vSrvv73cuVPvv73vv73diu+/vR5577+9azRz77+9RO+/ve+/ve+/vS9GO++/vRbIplM906kWf3Q9f++/ve+/ve+/vX9DLVd4De+/ve+/ve+/vTjvv708edKcdjgc77+9Wu+/vUPvv70dDu+/vTnvv73vv73vv70577+9fTjvv73brd27d++/ve+/vWIY77+977+9MO+/ve+/ve+/vXvvv712Gz4v77+977+9Ei3vv73vv73vv73vv73vv73vv70v77+9Uz1X77+977+9He+/vSbHte+/vVfvv73vv73vv70s0I1VS3Bw77+977+9H++/vV7vv71g77+90qV677+9V++/ve+/vdWlWe+/vWbvv73QoUN677+977+977+977+977+977+9eEVERO+/ve+/ve+/vU1377+9fe+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vXF977+977+977+9Onzvv73vv73vv73Nm++/ve+/ve+/vQw1NjZq0aJF77+977+977+977+977+9Fe+/vVDvv73vv71s77+9ce+/vSnvv73vv70aBnPvv73vv71VSUnvv73vv73vv73vv73vv710Ou+/ve+/ve+/ve+/ve+/vQsX77+977+977+9QEVFRVrvv71g77+977+977+977+977+9de+/vVbvv73vv73vv70oMTFReXl5Y++/vXPHjh1677+9Z++/ve+/vWvvv70pNjZWL++/ve+/ve+/vRUE77+9O04577+9cD5dZ2Dvv73vv71k77+92YbMq++/ve+/vTXvv70nJCRo3759Hl8/eH3vv73vv73vv73vv73vv73rrbfvv70aTz8BAO+/ve+/ve+/vSgAAO+/vQEA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAA77+9MAAASArvv73vv70OAO+/vR8u77+9Je+/vSV61Lbvv70B77+977+977+977+977+9PcKNQhgAMO+/vQbvv73vv73vv71vXx7vv73vv73vv73vv71iSe+/ve+/vXTvv71uIgAAWwbvv70f77+9Y29SeEjvv70577+9aXcF77+977+9Rxjvv71v77+977+977+977+977+977+977+977+977+9CQDvv73vv73vv71EAADvv70AAO+/vWMYNDc3KyMjQ2lpae+/ve+/ve+/vRvvv71+77+977+9ae+/ve+/ve+/vSg9PV1b77+9bO+/ve+/ve+/vRrvv71eU1Pvv71XXnnFnO+/vXDvv70KCwvvv71877+9cu+/vVnvv71GDu+/ve+/vTrvv70AMNmuPu+/ve+/vWLvv702H++/vWNv77+977+9YSJ4DQPvv73dru+/ve+/vWrvv73du1fvv73vv73vv73vv73vv73vv73XmTNn77+9LFNaWu+/ve+/ve+/vXIdPHhQ77+9Ye+/ve+/ve+/vUHvv73vv73vv73drc2bN2vPnj1D77+977+977+977+9UXJy77+9Dhw477+977+9K1fvv73vv73nn5/vv73vv70ATO+/ve+/ve+/vU7vv70/77+9Pu+/ve+/ve+/vTUMWltb77+9ZO+/vRLvv73vv73vv70oMjJS77+977+977+9amlpMe+/ve+/ve+/ve+/ve+/ve+/vden77+977+9JElSTk7vv73vv71+77+977+9Ee+/vXbvv71teu+/ve+/vceH77+977+977+90aPvv73vv71s77+977+977+977+9LO+/ve+/ve+/vXtyOu+/vRNVEwBg77+977+977+977+977+9c++/vWTvv71Y77+9ae+/ve+/vSrvv73vv73vv73vv71i77+977+977+9K1bvv71QYWHvv71CQkI877+9MzQ0VFFRUe+/ve+/veq6vkoAAO+/ve+/veuppW7vv71bQUFB77+9YRhD77+977+977+977+977+9MAwFB++/vX4se86c77+9ce+/vX8s77+977+9XO+/ve+/vVYPAkMg77+977+9Au+/ve+/ve+/vV1PLV7vv70gLi5OJ0/vv70077+9HQ7vv73vv71W77+977+977+9DwB3dnYOaR/vv73vv71qVWdn77+977+977+977+977+9cu+/ve+/ve+/vdur77+977+9GO+/vTt977+9fO+/ve+/vW7vv73vv73vv70977+9WO+/ve+/vXB0X++/vXrvv71F77+977+9M++/vT7vv70zTe+/ve+/ve+/vQLvv70zc++/ve+/vWoJDg7vv73vv70j77+977+977+977+9S++/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vdKlS++/vXTvv73vv70h77+977+977+977+977+977+977+98YqIiFBbW++/vSTvv73vv73vv71pSO+/vWhSU1Pvv73vv73vv70oSdq/f++/ve+/ve+/ve+/vRUW77+9QSgA77+9Kl7vv71g77+93LkqKSlRXl7vv71W77+9WO+/ve+/ve+/vSwtXO+/vVAFBQU6de+/vSTvv73vv73vv71K77+977+977+9Wu+/vWzvv70uXu+/ve+/ve+/ve+/ve+/vTHvv71ZXFzvv73vv70+77+9SO+/ve+/ve+/vdq7d++/ve+/ve+/ve+/vSfvv70aAO+/vTXvv71pOArvv73vv71m77+977+9M++/ve+/ve+/ve+/vXzvv73vv73vv73vv71977+977+9eXzvv73GjRvvv71M77+977+977+977+9N++/vRhPPwEA77+977+977+977+9cO+/vQ0f77+9Du+/ve+/vSMMcO+/vTEgHe+/vX8Y77+9CABAGAAACAMA77+9CAMA77+9OO+/ve+/vUnvv71ZQ0Dvv70gDDBpOGsICBzvv70mAgAQBgAAdhMB77+9Tlfvv70O77+9au+/vQNOfe+/ve+/vTcFPcK1IAwAXO+/ve+/ve+/vWEOd++/ve+/vRBhECjvv71NBAAgDAAA77+9AQBA77+9AQBA77+9AQBA77+9AQBA77+9AQBA77+9AQBA77+9AQBA77+9AQBADEfvv70J77+9fQvvv73vv71HGO+/vXHvv70CIO+/vQgA77+977+9Ae+/ve+/ve+/ve+/vdaB77+9MAAwKRjvv70677+977+977+9CABAGAAAfAzvv73vv73vv71mZWRkKC0tTXV1dSPvv71P77+9Pu+/ve+/ve+/vRzvv73vv73vv71ry5Ytcu+/vVzvv73vv71v77+977+9RmvWrNGyZcu0Ye+/vQbvv73vv73vv71K77+9Tu+/vTjvv73FixcrOztb77+977+977+92rRp77+9BO+/vQQAGC/vv71hYO+/ve+/vVVdXe+/ve+/vXvvv73vv73vv73vv71R77+977+977+9OnPvv73MkGVKS0tVXl7vv73vv70HD++/vTAMNTQ0SO+/ve+/vW3bptWrV++/ve+/ve+/vUV377+9de+/vV5/77+9dUnvv70n77+9fO+/ve+/ve+/vXw1NTXvv73vv73vv71J77+977+977+977+9UBoA77+9V17DoO+/ve+/vVVL77+9LFFMTO+/vSIjI++/ve+/ve+/ve+/ve+/ve+/vRbvv73vv73vv73vv71dfX19SkpK77+9JO+/ve+/veSope+/vUVO77+9Ux9+77+977+977+977+904fMl++/vVPvv71O77+92LFj77+977+9bFrvv71+77+9Ojo6Ju+/vTQA77+977+977+977+977+977+9c++/vWTvv71Y77+9ae+/ve+/vSrvv73vv73vv73vv71i77+977+9bu+/ve+/ve+/vW/vv71VVFTvv71CQ0Pvv73Ml++/ve+/ve+/vWjvv71d77+9Vu+/ve+/ve+/vUpNTVVJScmEFQQAGD/vv73vv73vv73vv73vv71uBQUF77+904ZhDO+/ve+/ve+/vT58OUnvv73vv73vv73vv73vv73vv71577+9Vu+/ve+/vc6dO++/ve+/vd2t77+977+977+9JO+/vWbOnCjvv73vv73vv73vv71o77+9QQfvv73vv71WD++/vSd/eu+/ve+/vVNf77+977+977+977+977+9NQzvv73vv73vv71077+977+9SXPvv73vv71w77+9au+/vQ5pdzgc77+9dGdn77+977+9Vu+/vWJjY++/ve+/vd2t77+977+9Ae+/ve+/ve+/ve+/ve+/vXPvv73vv73avXvvv70KCwsVEhJi77+977+977+977+93pw/77+9I++/ve+/ve+/vXl5Tyzvv71oORzvv73XvR5/MVXvv71M77+9DxNuDH/vv73vv71N77+974CxagkODu+/ve+/vSPvv73vv71u77+977+9S++/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vdKlS++/vXTvv73vv70h77+977+977+977+977+977+977+98YqIiFBbW++/vSTvv73vv73vv71JKSkpCgsLU3Jy77+977+977+977+9L0lqbGxUSkrvv73vv73vv73vv71177+977+9YR08eNCc77+9aO+/vSJFRkbvv71WMQBg77+9eQ3vv73vv71z56qk77+9RHl5eVrvv71i77+977+977+977+977+9cO+/vUIVFBTvv73UqVPvv73vv73vv73vv70qVVZWatmyZe+/vXjvv73vv73vv73vv70kSe+/vT7vv73vv70aGhrvv73vv73vv73vv73vv70nT+qpp++/ve+/vSTvv73YsUN/77+977+9H++/ve+/ve+/ve+/ve+/ve+/vX5bFRUV77+9VyEA77+9K++/ve+/ve+/ve+/ve+/vWzvv73vv71sQ++/ve+/ve+/vdaa77+9ExIS77+9b9++Ee+/ve+/ve+/ve+/ve+/vR/vv73vv73vv70R77+977+9z5/vv73vv73vv716a++/vX0FAEwS77+9Ju+/vc+4bwEwfREG77+9Ge+/vS0A77+9L++/vSYCAO+/vWUA77+977+977+9Pgfvv73vv70wAHBDce+/vQPvv73vv71uIgAAYQAAIAwAAO+/vQEAP++/ve+/ve+/vUUYAO+/vQscWO+/vVrvv70BRu+/vUpjYO+/vSEMMAJXGgMzD2Ew77+977+9BQBgEGEw77+977+9BQBgEO+/ve+/vQIACAMAAO+/ve+/vQDvv70577+9P++/vTEIAwB+77+977+9D24MdhMBAAgDAABhAAAQ77+9DO+/vT0uLAPvv70L77+9YO+/ve+/vXRh77+977+977+9ZQhs77+9ZTTvv70IAwAB77+977+9WUbvv73vv73vv70VIXENCAMA77+9Cu+/ve+/vV4b77+9YO+/ve+/vR1777+9JO+/ve+/ve+/vQgA77+9IQwC77+9WAfvv70ZdA7vv73vv70iDO+/vRRf77+977+977+977+9dO+/vXl277+9TRxLEGHvv70YXhrvv71YHEsY77+9Txfvv701NzcrIyNDaWlp77+977+977+9G++/vX7vv73vv71p77+977+977+9KD09XVvvv71s77+977+977+9JH3vv73vv703Wu+/vWbvv73vv70tW++/vQ0bNu+/ve+/ve+/vVfvv71077+977+9BRUWFmrvv73vv73vv71a77+9Zu+/vRwO77+9BO+/vQQA77+9G++/vWIY77+9GDwON1N4DQPvv73dru+/ve+/vWrvv73du1fvv73vv73vv73vv73vv73vv73XmTNn77+9LFNaWu+/ve+/ve+/vXIdPHhQ77+9Ye+/ve+/ve+/vUHvv73vv71t77+9Nu+/vV7vv71aLS0t77+9666777+977+977+9S++/vWpqau+/ve+/ve+/ve+/vQMHDmjvv73KlXrvv73vv73vv70n77+977+977+9MDvvv73vv71R34gAbu+/ve+/vS3vv73hj5l277+977+977+977+9RO+/ve+/ve+/vVrvv71k77+9YmJiJEnvv73vv73vv71qaWnRr3/vv71rSVJ7e++/ve+/ve+/ve+/ve+/ve+/ve+/vSRJ77+977+977+977+977+9fu+/vTvvv71c77+9Uh9+77+977+9Xnvvv701c++/vWPvv70977+977+977+9Uh09eu+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vXQ6FRbvv73vv70fPzg4aO+/vXVO77+977+977+9YyJGfe+/ve+/vQ8477+977+977+9Ze+/ve+/vRMeEu+/ve+/ve+/ve+/vX9H77+9z5/vv73vv73vv73vv73vv71DYe+/ve+/vU/kuqbvv718f++/vRN/77+9GzPvv73vv70xBu+/ve+/vVJY77+977+9X++/ve+/ve+/ve+/vU80T++/vWc+fe+/vRle77+977+977+9G++/vUsv77+9ZE43NDQYW++/vW4177+977+977+977+977+9Ge+/vT7vv73vv705fe+/ve+/vVkjLS3NsO+/ve+/ve+/vQMPPGDvv713Ou+/vUZiYu+/vWEY77+977+977+977+9aDjvv71O77+977+9Bx4w77+977+977+9eO+/vQoAYO+/vXjvv71N77+9du+/vRUU77+977+9VDEMY8i077+977+977+977+9SRoxfe+/vWvvv73vv70ZMw8A77+977+977+9b+C4uO+/vSEHeB0O77+977+9Vu+/ve+/ve+/ve+/ve+/vU5Z77+9Vu+/ve+/vcaq77+977+9WwMDAyNeZ++/vVrvv73vv73vv70pSXLvv71c77+977+977+9NXdDAQBuPO+/vWHvv71077+9Uh0/flxdXV3vv71077+9Dh0677+977+977+9FO+/vT0+Pl4RERFqa2vvv70kNTU1KSUlRWFhYUpOTu+/ve+/ve+/ve+/vSVJ77+977+977+977+977+9UlNT77+977+977+9KEnav3/vv73vv73vv73vv719Pl4AAO+/vXhB77+9YRjvv70Wam5u77+977+93bvvv710Ou+/ve+/ve+/ve+/ve+/ve+/vQIVFBTvv73vv73vv71ICxYs77+9Z++/vX3vv73vv71b77+977+977+977+9R++/ve+/ve+/ve+/ve+/ve+/vVR4eO+/ve+/ve+/ve+/vVVWVu+/ve+/ve+/ve+/ve+/vVtu77+9Sy/vv73vv73Zs2fvv73vv71TWVnvv73vv73vv73vv71rRUdH77+977+977+9Sj/vv73vv70Pb0Tvv70A77+9Ue+/vRQGAO+/vemNo++/vQAA77+9AABAGAAARBgAADTvv73vv73vv73vv71XX1VmZu+/vTIzM++/ve+/vS9K77+9MtyG77+9ZlNaWu+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vWPvv70O77+977+977+9SQrvv71a77+9fe+/vV3vv73vv73vv71o77+977+95aqo77+977+9FO+/ve+/vUhXTu+/vR5877+977+92LFDUu+/ve+/ve+/ve+/vdOj77+977+9LO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vQbvv73vv70n77+9a++/ve+/ve+/vVdWVu+/vWw277+9Nm3apO+/ve+/vX5J77+9WcugP++/ve+/vU9a77+9du+/vTl9Te+/vUzvv73vv73vv70377+9Bx98YO+/ve+/vRfvv70wLl/vv71s77+977+977+9G3l5eUZzc++/ve+/ve+/ve+/vWp877+977+9V++/ve+/ve+/vTTvv73vv73vv71H77+9TnVXfe+/ve+/ve+/vWosXu+/ve+/ve+/ve+/vW9+Y1zvv710KSBr77+96quv77+977+977+977+977+977+977+9MO+/ve+/ve+/ve+/vVXvv71WGUfvv70eDe+/vVoM77+9MC5e77+9aO+/vXPvv70977+977+977+977+9De+/ve+/vWnvv73vv73vv70aR++/vRwJ77+9ej7vv73vv70jIysr77+9SExMNO+/ve+/ve+/ve+/vTHvv71b77+977+977+977+977+977+977+9d++/vTAMY9OmTUZdXe+/vRTvv71877+977+977+977+977+9NH7vv73vv70b77+977+93Ybvv73vv70277+9fu+/vWljz54977+9YQReLe+/ve+/ve+/ve+/vQvvv70HHjAee++/vTFz3rXvv70yY++/vQwsFu+/ve+/ve+/ve+/vRQeHu+/ve+/ve+/vTDvv73vv73vv70/77+92bNnNW/vv70877+9eu+/vQoNDe+/ve+/vWZTS0vvv71Ud++/vSfvv71977+977+977+977+977+977+9fu+/vXpJ77+977+9H38c77+977+9HD58WBkZGe+/ve+/ve+/vVNYWO+/ve+/ve+/ve+/vTVr1qzvv73vv71F77+9BgYG77+9du+/vXXvv73vv70l77+9XC7vv71cLkVFRQVUPQ0NDXrvv73vv71n77+9EQM877+977+9Rhvvv73vv73vv73vv70aXkt4eO+/ve+/vX3vv71ZRUVFKSgoSD/vv73vv71P77+977+9N++/vQRkLe+/ve+/ve+/vd+v77+977+9chUVFe+/vfOutZYZc3Pvv73vv73vv73vv73vv73Pnj3vv70DBw7vv73vv70e77+977+9YjHvv71b77+9Vu+/ve+/ve+/ve+/ve+/vd6477+977+977+977+977+977+9RB0dHe+/ve+/vXPvv73vv70FZC1ffu+/ve+/ve+/ve+/vcK0fu+/vXp1dHTvv70/77+977+977+9z58f77+977+9SFJUVO+/ve+/ve+/ve+/ve+/vXzvv71yzZo1S++/ve+/vXNP77+977+977+9DB9S77+9U++/ve+/vc+3WCx+V++/ve+/vVrvv73vv73vv70VHx8vSe+/ve+/ve+/vVJdXe+/vSorKwPvv70WSdq5c++/vR5577+9IRfvv71eay0zZu+/vWDvv70XX3zvv73vv73vv718Pe+/ve+/vdO677+977+9W++/vRzvv73vv71f77+977+977+9f++/vS3vv73convvv73XnO+/vW1AQX81MDDvv73vv73Hj+u3v++/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vR/vv73rr78O77+9WiTvv73vv70+77+977+9b++/ve+/ve+/ve+/ve+/ve+/vXrvv73vv73vv70VHBzvv73vv71n77+9Bmw977+977+977+9Vu+/ve+/ve+/vSvvv71pWe+/vW7vv70eee+/vREtXu+/vTgga++/ve+/ve+/vQ/vv73vv73RoUceeWTvv73vv71r77+9Ze+/vWwZSFJbW++/ve+/ve+/ve+/ve+/vXnvv71mZWZm77+9xIkTYw7vv73vv73vv73vv73vv70v77+9w6Hvv73vv71sfe+/ve+/ve+/ve+/vXjvv73vv73vv73vv70VEhJiLhMo77+977+977+9Bz/Qve+/vd6r77+977+9WEnvv71DDz3vv73vv73vv73vv73vv73vv71F77+977+9HTvvv71777+9V3Pvv73MkXRlE++/ve+/vTfvv70M77+9eiTPg1V6Gu+/ve+/ve+/ve+/ve+/vR/vv73vv70TTzzvv73vv71r77+9Kj8/X++/ve+/vQE377+977+9O++8oy/vv73vv71C77+977+92bp477+9Ojs777+977+9U0/vv73vv73vv73vv73vv71q77+9MVsGHR0d77+91a9+77+977+977+9KmVmZkrvv70WLVrvv71/77+977+9X++/ve+/ve+/vS81MDDvv71377+9eWfvv70gfO+/vWrPnj1677+9d++/ve+/vdSk77+977+9Ij3vv73vv73vv73vv73vv73vv71/H++/ve+/ve+/ve+/vWc/07Fj77+9dO+/ve+/vQUNDAzvv73vv73vv73vv73XsmXvv70C77+9FklKSEhQa2vvv70uXu+/vSjvv70w77+977+977+9Bu+/ve+/vWzvv73vv73vv717Gu+/vdKf77+977+977+96Je/77+977+977+977+977+977+9IO+/vTwP77+977+977+9Kisrde+/ve+/vQE1NTXvv73vv73vv71Cd++/vXXvv71qamrvv73vv73vv70Z77+9Ze+/ve+/vW/vv73vv73vv73vv71677+9F++/vXnvv70+77+977+9Xnjvv70Fbdy4Ue+/vS9fVmpq77+977+9LVs277+977+977+9dhEREQFZy6JF77+977+977+9E09o77+977+977+9cjrvv73vv73vv73vv73vv71q77+9Ku+/ve+/vUc/Cu+/vVok77+977+977+977+916fvv71+77+977+977+9HO+/ve+/ve+/vWnvv73vv70F2rhx77+977+9776A77+9Rxrvv73vv71VVVU1ZO+/vcq877+977+9Ke+/ve+/ve+/ve+/ve+/vdun77+977+9Tu+/vdmzR3vvv73vv70kPe+/ve+/ve+/vSouLg7vv71a77+9ci3vv70wUB0AYO+/ve+/vSYCAHhGGAAACAMAAGEAABBhAAAQYQAAEGEAABBhAADvv73vv71/H8i477+977+9CO+/ve+/vQAAAABJRU5E77+9QmDvv70=", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "plt.hist(normal_array,bins=50, color='lightgreen', density=True)\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Maintaining the same generated data" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Sometimes we would not like to generate a new set of data instead we would like to keep what we created. To keep the created data we can use the *seed* method." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 110, - "metadata": {}, + "source": [ + "np.random.seed(0)\n", + "integers = np.random.randint(0, 10, 21)\n", + "print(integers)\n" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[5 0 3 3 7 9 3 5 2 4 7 6 8 8 1 6 7 7 8 1 5]\n" ] } ], - "source": [ - "np.random.seed(0)\n", - "integers = np.random.randint(0, 10, 21)\n", - "print(integers)\n" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 111, - "metadata": {}, + "source": [ + "data = np.random.normal(0, 2, 30)\n", + "print(data)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[-0.94154201 1.94603199 -2.55629824 2.87474136 -0.15540913 2.17926033\n", " 0.19308534 2.83733422 2.33654627 1.89437189 2.17097407 4.7644489\n", @@ -3258,54 +3261,54 @@ ] } ], - "source": [ - "data = np.random.normal(0, 2, 30)\n", - "print(data)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 112, - "metadata": {}, + "source": [ + "generator = np.random.RandomState(seed=123) # RandomState is a class, so we give the seed to its constructor\n", + "generator.randint(0, 10, 21)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([2, 2, 6, 1, 3, 9, 6, 1, 0, 1, 9, 0, 0, 9, 3, 4, 0, 0, 4, 1, 7])" ] }, - "execution_count": 112, "metadata": {}, - "output_type": "execute_result" + "execution_count": 112 } ], - "source": [ - "generator = np.random.RandomState(seed=123) # RandomState is a class, so we give the seed to its constructor\n", - "generator.randint(0, 10, 21)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Matrix in NumPy" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 113, - "metadata": {}, - "outputs": [], "source": [ "four_by_four_matrix = np.matrix(np.ones((4,4), dtype=float))" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 114, - "metadata": {}, + "source": [ + "four_by_four_matrix" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "matrix([[1., 1., 1., 1.],\n", @@ -3314,21 +3317,22 @@ " [1., 1., 1., 1.]])" ] }, - "execution_count": 114, "metadata": {}, - "output_type": "execute_result" + "execution_count": 114 } ], - "source": [ - "four_by_four_matrix" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 115, - "metadata": {}, + "source": [ + "np.asarray(four_by_four_matrix)[2] = 2\n", + "four_by_four_matrix" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "matrix([[1., 1., 1., 1.],\n", @@ -3337,24 +3341,25 @@ " [1., 1., 1., 1.]])" ] }, - "execution_count": 115, "metadata": {}, - "output_type": "execute_result" + "execution_count": 115 } ], - "source": [ - "np.asarray(four_by_four_matrix)[2] = 2\n", - "four_by_four_matrix" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 116, - "metadata": {}, + "source": [ + "A = four_by_four_matrix * 2\n", + "B = four_by_four_matrix * 4\n", + "print(A)\n", + "print(B)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[2. 2. 2. 2.]\n", " [2. 2. 2. 2.]\n", @@ -3367,21 +3372,19 @@ ] } ], - "source": [ - "A = four_by_four_matrix * 2\n", - "B = four_by_four_matrix * 4\n", - "print(A)\n", - "print(B)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 117, - "metadata": {}, + "source": [ + "A_plus_B = A + B\n", + "print(A_plus_B)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[ 6. 6. 6. 6.]\n", " [ 6. 6. 6. 6.]\n", @@ -3390,19 +3393,19 @@ ] } ], - "source": [ - "A_plus_B = A + B\n", - "print(A_plus_B)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 118, - "metadata": {}, + "source": [ + "A_minus_B = A - B\n", + "print(A_minus_B)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[-2. -2. -2. -2.]\n", " [-2. -2. -2. -2.]\n", @@ -3411,19 +3414,19 @@ ] } ], - "source": [ - "A_minus_B = A - B\n", - "print(A_minus_B)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 119, - "metadata": {}, + "source": [ + "A_times_B = A - B\n", + "print(A_times_B)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[-2. -2. -2. -2.]\n", " [-2. -2. -2. -2.]\n", @@ -3432,17 +3435,17 @@ ] } ], - "source": [ - "A_times_B = A - B\n", - "print(A_times_B)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 120, - "metadata": {}, + "source": [ + "np.transpose(A_times_B)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "matrix([[-2., -2., -4., -2.],\n", @@ -3451,55 +3454,55 @@ " [-2., -2., -4., -2.]])" ] }, - "execution_count": 120, "metadata": {}, - "output_type": "execute_result" + "execution_count": 120 } ], - "source": [ - "np.transpose(A_times_B)" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Numpy numpy.arange()\n", "\n", "#### What is arrange?\n", "Sometimes, you want to create values that are evenly spaced within a defined interval. For instance, you want to create values from 1 to 10; you can use numpy.arange() function" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 121, - "metadata": {}, + "source": [ + "# creating list using range(starting, stop, step)\n", + "lst = range(0, 11, 2)\n", + "lst" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "range(0, 11, 2)" ] }, - "execution_count": 121, "metadata": {}, - "output_type": "execute_result" + "execution_count": 121 } ], - "source": [ - "# creating list using range(starting, stop, step)\n", - "lst = range(0, 11, 2)\n", - "lst" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 122, - "metadata": {}, + "source": [ + "for l in lst:\n", + " print(l)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "0\n", "2\n", @@ -3510,336 +3513,332 @@ ] } ], - "source": [ - "for l in lst:\n", - " print(l)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 123, - "metadata": {}, + "source": [ + "# Similar to range arange numpy.arange(start, stop, step)\n", + "whole_numbers = np.arange(0, 20, 1)\n", + "whole_numbers" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n", " 17, 18, 19])" ] }, - "execution_count": 123, "metadata": {}, - "output_type": "execute_result" + "execution_count": 123 } ], - "source": [ - "# Similar to range arange numpy.arange(start, stop, step)\n", - "whole_numbers = np.arange(0, 20, 1)\n", - "whole_numbers" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 124, - "metadata": {}, + "source": [ + "natural_numbers = np.arange(1, 20, 1)\n", + "natural_numbers" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n", " 18, 19])" ] }, - "execution_count": 124, "metadata": {}, - "output_type": "execute_result" + "execution_count": 124 } ], - "source": [ - "natural_numbers = np.arange(1, 20, 1)\n", - "natural_numbers" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 125, - "metadata": {}, + "source": [ + "odd_numbers = np.arange(1, 20, 2)\n", + "odd_numbers" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19])" ] }, - "execution_count": 125, "metadata": {}, - "output_type": "execute_result" + "execution_count": 125 } ], - "source": [ - "odd_numbers = np.arange(1, 20, 2)\n", - "odd_numbers" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 126, - "metadata": {}, + "source": [ + "even_numbers = np.arange(2, 20, 2)\n", + "even_numbers" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([ 2, 4, 6, 8, 10, 12, 14, 16, 18])" ] }, - "execution_count": 126, "metadata": {}, - "output_type": "execute_result" + "execution_count": 126 } ], - "source": [ - "even_numbers = np.arange(2, 20, 2)\n", - "even_numbers" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Creating sequence of numbers using linspace" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 127, - "metadata": {}, + "source": [ + "# numpy.linspace(start, end, size, endpoint) the end is included by default\n", + "# numpy.logspace() in Python with Example\n", + "# For instance, it can be used to create 10 values from 1 to 5 evenly spaced.\n", + "np.linspace(1.0, 5.0, num=10)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778,\n", " 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])" ] }, - "execution_count": 127, "metadata": {}, - "output_type": "execute_result" + "execution_count": 127 } ], - "source": [ - "# numpy.linspace(start, end, size, endpoint) the end is included by default\n", - "# numpy.logspace() in Python with Example\n", - "# For instance, it can be used to create 10 values from 1 to 5 evenly spaced.\n", - "np.linspace(1.0, 5.0, num=10)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 128, - "metadata": {}, + "source": [ + "# not to include the last value in the interval\n", + "np.linspace(1.0, 5.0, num=5, endpoint=False)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([1. , 1.8, 2.6, 3.4, 4.2])" ] }, - "execution_count": 128, "metadata": {}, - "output_type": "execute_result" + "execution_count": 128 } ], - "source": [ - "# not to include the last value in the interval\n", - "np.linspace(1.0, 5.0, num=5, endpoint=False)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 129, - "metadata": {}, + "source": [ + "x = np.linspace(-10, 10, num=50)\n", + "y = 2 * x + 2\n", + "plt.scatter(x, y)\n", + "plt.show()" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAABeQAAAO+/vQgGAAAA77+9DO+/vVoAAAA5dEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdmVyc2lvbjMuMy4yLCBodHRwczovL21hdHBsb3RsaWIub3JnLy/vv70RCwAAAAlwSFlzAAALEwAACxMBAO+/ve+/vRgAAB/vv71JREFUeO+/ve+/ve+/vX1UVHXvv70H77+9N++/vUrvv714EBrvv73vv70JNe+/vVxX77+977+9PSvvv70R77+9Xe+/vQEGyLTvv73vv70x1pVKLe+/ve+/vUNka1nvv73vv73vv73vv73vv73Urc6yZu+/ve+/vVvvv73vv73vv70xTe+/vcSzKu+/vSjvv71r77+9DBcf77+9ESgeDu+/vSPvv73vv73vv73vv73vv73vv70cZgbvv73vv73vv71577+977+9fu+/ve+/ve+/vTt377+977+977+977+977+977+9e++/vXxv77+9EELvv73vv73vv70USe+/ve+/vQLvv73vv71IPmzvv71ERArvv70mT0Tvv71gbO+/vURECu+/vSZPRO+/vWBs77+9REQK77+9Jk9E77+9YD18XUBn77+977+977+9MO+/ve+/vVvvv70fHe+/vQfvv73vv70tElfvv70577+977+9Gu+/ve+/vRrvv73vv70a77+91aVS77+977+9X++/ve+/vR3vv73vv73vv70mbzIJ77+977+977+977+9en/EulzDulzDulwTTHUx77+9ISJSMDZ5IiIFY++/vSciUjA2eSIiBe+/vS9e77+977+977+977+977+9Wnxy77+9WzQ0GRDvv703DNOSRiBxdO+/vWTvv73vv70mT0Tvv70jx6tq77+9V++/vX9w77+9CQBQ77+9ZO+/vV9177+9AQDvv70aPe+/vRoiIh/vv73vv73ot5YGb3bvv70J77+9HO+/vVbvv70x77+95ImIfO+/ve+/ve+/ve+/ve+/vXF3MO+/vSEi77+9AnPvv71e77+9ZEDvv73vv73vv73vv73vv71hdht6dO+/vTDvv73vv73vv708Ee+/ve+/ve+/vdm777+977+977+977+977+977+9I++/vdGr77+9dRvvv73vv71D77+9aUkjJBvvv71N77+977+9SGbvv73vv73vv70z77+977+9Y++/ve+/vX5E77+9DUMIbu+/ve+/ve+/ve+/ve+/ve+/ve+/vTVERO+/ve+/ve+/ve+/vT1xdCwSR++/vULvv73vv73vv71e77+9LO+/ve+/vWzvv71ERBLvv73vv73vv70n77+977+977+9Su+/ve+/vUdx77+977+9zZvvv73vv73vv73vv73vv73vv71U77+977+977+9AQDvv73vv73KoO+/vWrvv73vv73vv73vv71N77+9NklSJBHvv73vv71z77+977+9H++/ve+/vcW077+9Ee+/vWfvjrjvv73vv73vv73vv73vv73vv73vv71XX++/ve+/ve+/vRBFRUXvv73vv73vv71CcXExcnNz77+977+9O++/ve+/ve+/ve+/vQPvv73vv73vv73vv73Ro0fvv73vv73vv73vv73vv70vde+/ve+/vT1xdO+/vSV7B++/ve+/ve+/vR1xO++/vVHvv73vv73vv73vv73vv71B77+9Xu+/vQAAI0bvv71AdXU177+9Dh3vv73vv73vv70HAwDvv71aLUpKSu+/ve+/ve+/vSRN77+9RER+77+977+9Ne+/ve+/ve+/ve+/ve+/ve+/vW7vv70jR++/ve+/ve+/ve+/ve+/ve+/vRo677+9Du+/vWfPhlrvv73vv70c77+977+977+977+977+977+977+9Pe+/ve+/ve+/ve+/ve+/ve+/vWrNuzs877+977+977+9woUL77+977+977+977+9ypUrERoa77+977+977+9au+/vTkhBEJCQlzvv73vv73vv73vv70+HtWjVkd4dO+/vVxY77+9a1jvv71rWO+/vWs877+977+977+977+9BjtK77+977+9YO+/vQBw77+9Tn1H77+9ee+/vSphEA7vv73vv71sOQ4AYT1DMT9t77+977+977+977+9MV8eNe+/ve+/ve+/vXI877+977+977+977+977+9RWpqKk7vv704Ae+/vV5vOe+/ve+/ve+/vRETE++/ve+/vWfvv73Xt++/ve+/vQgs77+977+9IHnvv71177+977+9de+/ve+/vXXvv73vv73Tugrvv73vv73vv70aOQAY77+9He+/vWdVLe+/vU7vv73vv73vv70Of++/ve+/vUjvv73vv71z77+9Lu+/vSrvv73Lm2Pvv73vv73vv73vv71r17Bo77+9ImzatAnvv73vv73vv70A77+977+977+9eHzvv73vv71377+9dO+/vRIGDRrvv73vv73vv71iPO+/ve+/vWPvv70OQUTvv71377+9We+/ve+/vU/vv71u77+977+977+9PgwGA9avX285NnPvv71M77+9X++/vR5L77+9LO+/ve+/vWBAUlIS77+9Tu+/vSpJ77+9RETvv70WSNm7I24377+9Ve+/vVZh1apVdu+/ve+/vdu377+97YKI77+977+977+977+977+977+9Hx4T77+9Y2dr77+977+9S3przbs777+9dw0R77+9He+/ve+/vTcDeHfNuzvvv73vv70BEe+/vR3vv73vv73vv70777+9Jk9EQU8J2bsj77+9a++/vSjvv73vv71y77+9d29g77+9J++/ve+/ve+/ve+/ve+/ve+/vRHvv701RBTUlO+/ve+/vTvvv70mT0RB77+9eFUt77+977+9Og59Y++/ve+/vXdHGO+/vRBRUDBn77+977+977+9NgDvv73vv73vv70dYe+/vSfvv73vv73vv73vv73vv73vv70R77+9NUQUFO+/ve+/ve+/vTvvv70mT0Tvv73vv73vv71Z77+9Je+/vTVE77+9GO+/ve+/ve+/vVVfYu+/vSci77+9cO+/vTnvv73vv71+77+9ASgve3fvv71xDREp77+9M++/vVlN77+9OO+/vS8fZiIXNnkiCkhK77+9b0ZK77+9a++/vSjvv70ofe+/vRkpee+/ve+/vVtaWu+/ve+/ve+/ve+/vcuXLwMAXnjvv70FJCcnIyMjAxkZGe+/ve+/ve+/vTwu77+977+977+9Tu+/ve+/ve+/ve+/vR0e77+9NRUVFVjvv71qFe+/ve+/ve+/vS3vv70qKyvvv71z77+9Tu+/vR/vv71NRO+/vWBd77+977+9Du+/ve+/ve+/ve+/vd2777+9eu+/vWrvv71c77+9EgDvv73vv73Whu+/vVfvv70iNzcX169f77+977+9yZPvv71477+9Yu+/vVRM77+977+977+9Pe+/ve+/vT0TIu+/vRDvv71+77+9L3/vv71L77+92LEDQgjvv71f77+9Hu+/vVfvv71GREQE77+977+977+977+977+977+977+977+9H39c77+9Wu+/vSjIlO+/ve+/vWDvv70KGO+/vR3vv71jYT1D77+9QTh877+977+977+977+9M++/vTFx77+9YF/vv73vv70kXV0zeO+/vWBs2bLvv73vv716zpw5KCoqcu+/ve+/ve+/vde377+9ZHLvv73vv70d77+9Ou+/vS/vv71G77+9LtewLu+/vSjvv73vv73vv73vv70q77+9Rg4ABmMH77+9WVXvv73vv71T77O577+9Hz0k77+977+9Me+/vTZfKlUI77+977+977+9ODwvae+/vT9/77+9PO+/ve+/ve+/vTFl77+9FADvv70QAj16cO+/vSYR77+977+92bvvv70k77+977+9Qgjvv73vv73vv73vv70YP34877+977+977+977+977+977+977+9He+/vT7vv73vv73vv71DEO+/vUIxe++/ve+/ve+/vd+I77+9f++/ve+/vVjvv71wIX7vv73vv70gNTUV77+9Ru+/vUJaWu+/ve+/vUMQ77+9AnHdu3wk77+977+977+977+977+977+9Le+/ve+/vTVrFmbNmiXvv73vv70SUe+/ve+/vW7du++/vV0l77+9OQzMie+/veeYvcuHTe+/ve+/ve+/ve+/vdm7d/GnlIjvv71r77+977+9ex/vv708EXkN77+977+977+9Pu+/vTVE77+9Ne+/vd6977+9Te+/ve+/vSR377+977+9FkVfHe+/ve+/ve+/ve+/ve+/vVnvv70x77+9NUQkKXPvv71vbAPvv73vv73vv70a77+9PBFJypnvv70ye++/vR7vv701RCQpZ++/ve+/vcqm77+9PWzvv71E77+9Nu+/vXnvv71/77+9a++/ve+/vS1c77+9Hhjvv73vv73vv70t3a15V++/ve+/vQ3vv73vv73vv73vv70x77+9ISLvv71077+977+9PX3vv71I77+9fDhH77+9Ye+/vSfvv71uMXsPXO+/vWvvv73vv71L77+977+9A++/ve+/vU3vv73vv73vv70FaWlp77+9fO+/vTIA77+977+977+9DFrvv70W77+977+977+92LRp77+977+9BRLvv71vce+/ve+/ve+/ve+/vVFcU1FR77+9Ve+/vVbvv73vv73vv70aAO+/ve+/vd6O77+977+9XHzvv73vv70HGDBgAO+/ve+/ve+/vXHvv73vv71RJCUlSVErEe+/vQDvv73vv70JbB4177+93bt3Y++/ve+/ve+/vVjvv71yJQDvv73MmTMYOnQoBg8eDADvv71q77+9KCkpYe+/vScKEO+/vd6Vx6Mm77+9du+/vVrvv73vv711dXVQ77+91Zbvv70xMTHvv71+77+977+9J0MQ77+977+977+977+9d3M0Y++/ve+/vR8eE++/vWNna++/vSIbZu+/vUPvv73vv701Ju+/vQkhISHvv73vv71CCO+/ve+/vc6I77+977+977+9UQ1qde+/vUfvv73LhXXvv73vv71177+9Ru+/ve+/ve+/ve+/vTpuN3vvv73vv71uxJLvv70f77+9Du+/vTnvv71obO+/vT3vv716Y++/vWYUJu+/vRvslbrvv70QTHVJ77+977+9Y2Nj77+977+977+9Le+/ve+/vXo9YmJiXO+/ve+/ve+/ve+/vRbvv71Mwq3vv73vv73vv70I77+9XO+/vcu6XMO6XCNVXe+/vV0j77+9HR89JBJvZCdaH++/vWZM77+9z5fvv73crUvvv70K77+977+977+9WO+/vSYfHx/vv73vv73vv70O77+9Ll3CoEHvv71QXFzvv73vv70ee0zvv70h77+9SALvv73eg++/ve+/ve+/ve+/ve+/ve+/vcKwfu+/vXosWe+/vQQpKSkYPnw477+9Tu+/vSrvv70QRO+/vSHvv717Dy7vv73vv73vv71/77+977+977+9XycmJmLfvn1SfCwRyaDvv71177+977+977+9RDLvv71xWwPvv70g77+9de+/ve+/ve+/vU3vv71I77+977+977+977+9fO+/vWrvv73vv73vv701RArvv70od++/vXNW77+9D++/vTzvv70C77+9Oe+/vWTGuO+/vUjvv73vv73vv71VMmPvv70nCnDvv73vv701KCjvv73vv71377+977+9cQ1RADteVe+/ve+/vXsq77+977+9HGLvv70nCmDvv70c77+9FgZj77+977+9Me+/ve+/vU53YlxDFO+/ve+/veaduu+/vSZPFCDvv73vv70M77+977+9cQ1RAO+/vWrvv73vv73vv73vv73vv71W77+9Ze+/vU53Yu+/vScKAF3vv70377+9eEY877+9d3Lvv71xDVEA77+9Knvvv704bjBGD++/ve+/vW5BFDDvv73vv73vv70M77+9d++/vRLvv70aIj/Cve+/vUlqbO+/vUR+77+977+977+93pnvv73vv73vv71k77+9a++/vcyZ77+977+977+9Bu+/ve+/vXHvv73vv73XrFnvv73vv73vv714Oe+/vSJSFO+/vXsn77+9Se+/ve+/vRDvv73vv73vv73GkSNHLE3vv73vv73vv71x77+9d++/vRbvv73jmosXLwIA77+977+977+977+977+977+977+977+9O3dKPQRRQO+/vV7vv73vv71N77+9N++/ve+/ve+/vSYkJiZiy5YtKCgo77+977+9Xe+/vXDvv73vv70x77+977+9IQpY77+96528KUQIIe+/vRzvv73vv73vv70AV++/vV5Fbm7vv73vv73vv70QBe+/ve+/ve+/ve+/ve+/ve+/vR/vv70QAO+/vTZmeO+/vRxSOO+/vUPvv71T77+9Tu+/vWg0IjExEe+/ve+/vd6VbO+/ve+/ve+/vQUm77+9e3/vv73vv70R77+977+93bpWTu+/ve+/vTVK77+977+9Xu+/vR7vv70gd++/ve+/vRvvv73vv71/77+977+977+977+9G++/vVbvv71KFe+/ve+/ve+/vT7vv73vv717Uu+/vT3vv73vv73vv73vv73vv73Lg++/vWBAS0sLCgsLMXnvv71k77+977+9Ie+/vXtc77+9Tu+/vUDvv70777+9Se+/vSbvv73vv73vv70C77+977+977+9MO+/vUzvv73vv71vf++/vQcffFDvv71h77+977+9Xndr77+977+977+977+9Ie+/ve+/vSxrHO+/vS5d77+977+9S++/ve+/ve+/ve+/vUQB77+9a++/ve+/vR/vv70nXu+/vWTvv71obTvXvO+/vTfxp5WIJGDvv70L77+9aUkj77+9V++/vX/vv70iG2bvv73vv71t77+977+9J++/vS9YAXDvv70777+9HO+/ve+/vTzvv73vv70PN++/ve+/ve+/ve+/vWzvv73vv71T77+977+9J++/vVBXX++/vRLvv70a77+977+9XO+/vQd6UO+/ve+/vTzvv73vv71K77+9a++/ve+/vU0UcO+/veSJnO+/vUN377+9D++/ve+/ve+/vcO477+977+9STca77+977+9Hu+/vQ8377+9P2Pvv70n77+977+9Xu+/vX5P77+977+977+977+9ae+/ve+/ve+/vcmfMe+/vSHvv73vv73Ruu+/ve+/ve+/vR/vv73vv70CDu+/vTxRJ++/vda977+977+9Tx3vv713Cjjvv71r77+9OnHvv73vv73vv71GYxvvv713Cjhs77+9FO+/vVx977+977+9Pe+/vXrvv73vv71KIu+/vTDvv73vv73vv73vv73vv73DtO+/vWpG77+977+9VCLvv73vv73vv71TUHLvv71h77+9E++/vQ3vv71F77+9RB7vv70l77+92b9/P++/vW7dilvvv71uYd68ee+/vTVr77+9HO+/vRDvv73vv73vv73vv71m77+977+977+9Ukjvv73vv71f77+977+9Te+/vTbvv71PPkHvv71e77+9MHPvv71M77+977+9F++/ve+/ve+/ve+/ve+/vSvvv71QRE7vv71+MxTvv70k77+9a++/ve+/ve+/vTB+77+9eERGRiI8PBxT77+9TEFJSe+/ve+/ve+/vRA577+9D9OmYCfvv73vv718XV0d77+9au+/ve+/vXVMTAzOnDnvv73vv73vv73vv73vv719PBpf77+977+977+977+9eu+/ve+/vS7vv71IVVfvv71X77+977+9Zu+/vdWNWO+/ve+/vQPYoTvvv70b77+9be+/ve+/vV9v77+91Yzvv702d1fvv718Se+/vXXvv71G77+977+9JG/vv70m77+9CSEhIe+/ve+/vUII77+977+93anvv71v77+977+9JO+/vRpb77+977+977+9Xu+/ve+/vda1cmJd77+977+977+9Lnvvv70Q77+977+977+9HhLvv70377+9E++/ve+/vXcxbjDMl++/vVjvv71r3K1L77+9Cu+/ve+/ve+/vVjvv70mHxsb77+9U++/vU5ZXu+/ve+/vXrvv73vv73vv71IPQzvv70NZu+/vUTvv70k77+977+9H3rvv70hHD9+HA0NDWhra++/ve+/ve+/vQcxYe+/vQTvv73vv70h77+977+977+977+9Pu+/ve+/ve+/ve+/ve+/ve+/vWXLlmHvv73cuTAa77+977+9Pn06xo4dK++/vTBEVhzvv717N++/ve+/vW7vv70nW++/ve+/ve+/vSzvv73vv71aLe+/vVrvv70cH01kV1fvv73eueadghnvv73vv73vv73vv73vv73vv73vv71577+91oACCu+/vXci17Dvv71TQO+/vS5777+9Xu+/vUTvv70Y77+9UEBh77+9Tu+/vRo2ee+/vVvvv73eiTzHuO+/ve+/vRLvv713Imnvv73Jk19i77+9TiQN77+9NeSXmO+/vRNJ77+9Te+/vXzvv71e77+9PjHvv73vv70777+9RBjXkO+/vTjvv73vv71L77+9axw+Z++/ve+/vTvvv71r77+977+977+9Zxzvv73vv707dO+/vRw+Z++/vTEN77+9axjXkO+/vTjvv73vv71v77+9bw94Zu+/vUTvv71j77+9J++/vXBl77+977+9Pe+/vXrvv73vv71CImViXEPvv71zde+/ve+/vVzvv70oX++/vUnvv71IbO+/vSQ7V9e8d++/ve+/vVUich7vv70a77+9Hde8E++/ve+/ve+/vU3vv73vv73vv70QGzduRHR0NABg77+9xIlY77+9bO+/ve+/vcOQ77+977+9fjNE77+9Re+/vSZfWVnvv73vv73vv70c77+977+977+9Se+/ve+/ve+/ve+/ve+/vdm7Oe+/vTFn77+9D++/ve+/vcWx77+977+9Vu+/vQ3XvBN577+977+977+92bNnUVhYCO+/vVbvv73vv73Ll++/vR9+77+9egjvv71T77+9b++/ve+/ve+/ve+/vQgh77+977+9H++/vWjvv70iZGVl77+9Zz/vv70Z77+977+977+9P++/ve+/vdWr2Lhx77+977+9Q++/ve+/vUp/fi/vv73vv71mCgHvv71vY++/ve+/ve+/vSEieBDvv73vv710Ou+/vVvvv73vv73vv73vv73vv73vv73vv71RUFBgee+/vWDvv70CTO+/vTzZpc+t77+9b++/ve+/ve+/ve+/ve+/vTtqdQTvv73vv71m77+977+977+977+9Euuyl++/vUc577+93qPvv73vv73vv70077+9Eu+/vUtO77+977+9NUrvv71L77+9CkF0dB/vv73vv73vv71u77+9Gu+/vQYa77+977+977+9WHNzMwoKCjB/77+9fADvv70QAu+/ve+/ve+/ve+/vQ5Bfu+/ve+/vTtR77+977+9NO+/vQ8PD++/vXvvvYfvv73vv70KAO+/vc6dO13vv73vv70n77+977+977+9KHBI77+977+9JjQ0FO+/ve+/ve+/vXjvv73vv73vv73vv73eju+/ve+/vTjvv73vv73vv71JOQTvv70B77+9eycKHO+/vS/vv71MSEhAYWHvv73vv70fSz7vv71177+9RO+/ve+/ve+/vRrvv71DfO+/vSpR77+9Y++/vSfvv73vv73vv70TBT7vv71dQw4xeycKfGzvv71kN3dPHB3vv73vv71IARjvv70EOUfvv73vv73vv71aPmfvv71IAe+/veSDnO+/ve+/ve+/ve+/ve+/ve+/ve+/vTnvv71ECu+/ve+/vSbvv71177+977+9A3zvv70qUe+/vWPvv70PIu+/ve+/ve+/ve+/vWnvv73vv73vv70TKRzvv70gYS9737zvv73vv71r3okU77+9TT5I77+977+977+9De+/vQ7vv715J1I477+9NUHvv71r3onvv70T77+977+9AnHvv70ZIjJjXO+/vTDvv73vv703E++/vTPvv73vv70777+9wrHvv70r77+9K++/ve+/vSzvv70Rz5jvv71I77+9GO+/vSjvv70r2bvvv70+Bu+/ve+/ve+/ve+/vXHvv73vv73vv73vv71HaGgo77+9LFkCAGhqau+/ve+/ve+/ve+/vVFTU++/ve+/ve+/vSjvv73vv73vv71D77+9VntcKO+/vWLvv71ORO+/vXE777+9aW5uRm5uLu+/ve+/vVgd77+977+977+9R0JCAnQ6HWbMmO+/ve+/vWvvv716XCTvv73vv71e77+9RO+/vQzvv73vv73vv73vv73DhxEXF++/vSfvv71877+977+9eGlpKe+/vVotACAtLQ1ffO+/vQXvv71G77+9Z1Xvv70N77+977+9TkTvv71wO++/ve+/ve+/ve+/vQQA77+977+977+977+9Vu+/ve+/ve+/ve+/vSzvv71M77+9Hj3Qp08fNDQ077+9f++/ve+/ve+/vVdJNu+/ve6diO+/ve+/vW3vv73vv73vv710WO+/vW7vv73Vse+/vcOH77+977+977+977+977+9Ae+/vRBQ77+977+977+9B0N0dB/vv73vv71r77+9Wh3vv73vv73vv71yce+/ve+/ve+/ve+/vRrvv73QncON77+9Nu+/vdOvN++/vWpGYe+/ve+/vVDvv73vv70NfWPvv73vv70477+9eu+/vTTvv73vv73vv71Lbu+/ve+/vTXvv73vv701cu+/ve+/vW3vv73vv71oNO+/vWg0Tn9gTEwMbty477+977+977+9WNy6dQvvv73vv73vv73vv73vv73vv71077+977+977+977+9Fu+/vUzvv73vv73vv73vv73vv71fV++/ve+/vVvvv705dzfvv70y77+977+9Nu+/ve+/ve+/vTTvv73vv73bke+/ve+/vTDvv71z77+977+977+9Pe+/vWFO77+977+977+977+977+9G++/vXIN77+9cu+/ve+/vXXvv71UIV3vv70cS++/vU4+KSkJRUVFAO+/vQMHDiAhIQE9e++/ve+/vXrvv73vv73vv73vv73eie+/vVPvv73vv73vv71/77+955CT77+977+977+977+9VERERGDDhg1SDxE077+977+9OxF577+977+9Jm9eH28WGRnvv71t27Z577+977+9Qe+/vWveiUgO77+977+977+9D3Dvv707EcmFTe+/vQ9w77+9OxHJhXvvv73vv70B77+9eSci77+977+977+9exnvv713Iu+/vSbvv701Xu+/veydiO+/ve+/vU3ei++/ve+/vRPvv73vv70x77+977+9Imbvv71E77+9bWzvv70y77+9M3tX77+977+977+9R++/vTF7JyLvv71jXCPvv73vv73Zu++/ve+/ve+/ve+/vTsR77+9BO+/ve+/vQzvv73vv70T77+977+9YFwjA2bvv71E77+9L++/ve+/vT3vv71177+9RO+/ve+/vRjvv71477+977+93onvv73fse+/vXvvv73vv73vv71d3a8377+9dyLvv70J77+9NR5wNnvvv73vv70n77+9EO+/ve+/ve+/vTvvv71e77+9ODrvv73vv707Ee+/vT3vv73vv718fn4+QkNDLQ8POXHvv70E77+9LFnvv73vv73vv73vv71377+9P++/ve+/vU9sHgQeSDo/Z9Wc77+9A++/ve+/ve+/vRF277+977+977+97J2I77+977+977+9Te+/ve+/ve+/vRnvv73WrcOn77+9fu+/vQULFljvv71XVlYiKysL77+977+92ZIU77+9a109Z++/ve+/vWce77+977+977+977+9XT4R77+9P3Dvv73vv70fPnwYcXFxeO+/ve+/vSfvv73vv73vv709exY3bu+/vUBxcTEGDhzvv73Vq1dj77+977+9AR4X77+9K3zvv70qEQUy77+977+9fGZmJgDvv73vv73vv73ftjoeEREB77+9Ru+/ve+/ve+/vWTvv73vv71vf8OyZcuwa++/vS7vv73vv73vv70W77+9eSci77+9CRFC77+977+93qDvv73vv71sMu+/ve+/vcOH77+977+977+9AO+/ve+/vTfvv73vv70P77+9NktISO+/ve+/vSNHEBERIUHvv73vv70pLe+/ve+/ve+/vT0VMBg7LO+/ve+/vXrvv73vv71XCe+/vXDvv73vv71l77+977+9Z++/vWPvv73vv73vv70o77+977+977+9ae+/ve+/ve+/vWs0Gmg0Gu+/vT7vv71kMmHvv73vv73vv71Y77+9cCFCQ0Mt77+977+977+9dXfvv73vv71bYDJ177+977+977+9Q++/vSxVLCjvv73vv71q77+9AGAwdu+/ve+/vVXvv73vv70777+9Pu+/vTvvv73vv71DIu+/vR7vv71f77+9UO+/vS7XsC7XsC7XuFvvv71KFe+/ve+/ve+/vT4O77+9S++/ve+/vVLvv71S77+977+9Pu+/vdChQ++/ve+/ve+/ve+/ve+/ve+/vSLvv73vv73vv70jPDxc77+9YWTvv73vv71m77+9SO+/vSRfJ++/ve+/vRtv4KWXXsKWLVsQFRXvv73vv73vv70877+977+977+9GO+/vXciChYeN++/ve+/vVnvv73IkSPvv73vv73vv71WR++/ve+/vR8eE++/vWNna++/veadiBQl77+977+977+977+9Xu+/vUQUTO+/vW5bA2bvv71EFEwU77+95Jm9E1Hvv71TbFzDvd6J77+9FO+/veSZvRMRKTjvv71h77+9TkTvv73vv70mb++/ve+/vRvvv70M77+9Yu+/vU5EZBHvv71xzZ3ZuwDvv713Iu+/vTsFfO+/vWfvv71ORO+/vVjvv73vv70177+93onvv70cC++/vTt5Rxk777+9dyIiBTTvv71pSSPvv73vv70TETkQ77+9ce+/vTnvv73pvLrvv70xDRHvv70C77+9PO+/ve+/ve+/vVnvv73XhwEQEe+/vUrvv73vv701RETvv70Y77+9PBHvv73vv73vv73vv73vv73vv73vv73vv70xfe+/vXRkZGRg3rx577+9cu+/vQoA77+977+977+9CQsXLu+/vUbvv73vv73vv71Z77+977+977+977+9JSvvv73vv73vv71c77+9du+/vV/vv71iBV5777+9Ne+/vd27F1rvv70W77+977+977+9GgAgPz8fCQkJ77+977+9dO+/vTFjBtauXStZ77+9RETvv70a77+977+9eO+/vXnvv70m77+9e++/vTnvv71/77+977+9AO+/ve+/ve+/vQ87d++/vQQA77+977+977+977+977+9Dz8EAO+/ve+/ve+/vWHNmjUwGu+/ve+/vdmz77+9U++/ve+/vVLvv73vv71T77+9ZO+/vcuFde+/ve+/vXXvv73vv71177+9Rkl1dXdN77+9EELvv71bEADvv71MJjzvv73vv73vv70YM2YMFi9e77+977+977+977+977+9OH3vv700eu+/ve+/ve+/ve+/vceECRPvv71n77+9Hu+/ve+/ve+/vd+TYe+/ve+/ve+/vQ3vv73vv73vv73vv710Ou+/vVvvv73vv73vv73vv73vv73vv73vv71RUFDvv73vv703byInJwfvv71u77+9QnZ277+977+977+9EFDvv73vv73vv70uEe+/vS9077+977+9NRoNNBrvv73vv73vv73vv73vv71WPO+/ve+/vdOI77+977+977+91q1bLXFMTEwMbty477+977+977+9WNy6dQvvv73vv73vv73vv73vv73vv73vv73vv71wIiLvv71HX++/vQ4dOhTvv73vv73vv73vv73Vq++/ve+/vXhSUhLvv73vv73vv70AAAcOHEBCQu+/ve+/vXk8ERFJy61M77+977+977+977+9Nx5977+9Ue+/vXvvvZbvv709JiYG77+977+9Lu+/ve+/ve+/vXvvv73vv73koKbvv70GERER2LBhAwYNGiR577+9RETvv70977+977+9eCUiIu+/ve+/vW9E77+977+9FO+/vU3vv73vv71I77+977+95ImIFO+/vU3vv73vv71I77+9AnI/77+977+977+9fO+/ve+/ve+/vWLJkiUAbm/vv73vv71877+9cu+/ve+/ve+/vSAqKgrvv73vv73vv71Q77+977+9Vu+/vQgh77+977+977+977+9I0fvv71A77+9Uu+/ve+/vVdfxbhx77+9JO+/ve+/ve+/ve+/vR5ZWVnvv73vv73vv73vv73vv71obGzvv73vv71ff23vv73vv70rV++/vSAtLQ1D77+9DAEA77+9c++/vT1477+977+977+9Je+/ve+/ve+/ve+/ve+/vUJs3LgR77+977+977+9AO+/ve+/vRMnYtmyZVbvv71577+9Jl5877+9RVRWVuKuu++/vcKGDRswYu+/ve+/vU/vv70qLy/HunXvv71gNBoRGRnvv73vv71ffx0DBw7vv71677+977+977+9a++/ve+/ve+/vdi6dStu3brvv71577+977+9YdasWVbvv73PnTvvv70XX3wR77+977+977+9SEhI77+9K++/ve+/vWJZZSbvv73NmzdD77+977+9Ae+/ve+/vUx577+9ypU277+9P++/ve+/vWPvv73vv73vv70XAO+/ve+/ve+/ve+/ve+/vS3vv705c+agoe+/ve+/vTIHa9asQXx877+977+9L++/vWvPnj3vv73vv71WAO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vR/vv73vv71H77+9MW/vv71ZS0sLZs6c77+9bdu2YdCgQSgrK8O6de+/vWAwGO+/ve+/vWhs77+9LALvv73Vq1fvv71i77+9Cu+/ve+/ve+/vWPYsGHYsGED77+977+9bu+/vQcXAe+/ve+/ve+/vUnvv73vv73vv70LYu+/vdix4q233rIcf++/vVfvv73vv73vv73bhRBCFBYW77+977+9e++/ve+/vVrvv71OJ37vv73vv73fi++/ve+/vQ5x77+977+9RTF577+9ZGE0GmXvv73vv73vv73vv71DzJ49W++/vdu377+977+9XElJ77+9eOmll2Qb2541a9aI77+977+977+9d++/ve+/ve+/ve+/vXvvv71S14kTJ8SMGTNk77+9a9KkSe+/vdy5c0IIIe+/ve+/ve+/vSPvv71677+9Ke+/ve+/vXhz77+9amtrxaRJ77+9RGNj77+9aG1tFVrvv71WXO+/vXDvv73vv70977+977+977+977+966+/FkII77+977+9Cy/vv70PP++/vVDWmu+/vR07Ju+/vXjvv70JYTAY77+9zZs377+93Llz77+977+977+9B++/vd6T77+977+9Le+/ve+/ve+/vX/vv71a77+9PSbvv71JPO+/ve+/vSNd77+9We+/ve+/vXx177+977+9N9+IyZMn77+977+977+9eu+/ve+/vd6a77+906dP77+977+977+9NDF677+9aFFTUyPvv73vv73vv71EUlLvv73vv73vv71/77+9K++/vUbvv73vv73vv73vv70S77+977+977+9Nu+/vS1c77+9UBQXFwsh77+92Lx577+977+977+977+9c2vvv73vv73vv71rDh8+77+977+977+9ODzvv73vv71W77+9S0tL77+977+9agHvv73vv70U77+9L++/ve+/ve+/vWjvv71677+90aNH77+977+977+9Au+/vUrvv71hw4Zh77+977+9ATZ377+9Uu+/ve+/ve+/vdG7d29LXXc6e++/vSzvv73vv73vv70bZGRkYO+/vdy5OH/vv73vv71sde+/vTlmYWEh77+9Wi3vv70vX++/vR9+77+977+977+9Pe+/ve+/ve+/vUhPTwcA77+977+977+9P0dDQwPvv71e77+9KltN77+9Nu+/ve+/vXbvv73vv73avTVfZWVlGD9+PCIjIxEeHu+/vSlT77+977+977+977+977+9cu+/vcqVK2hvb++/vQMPPAAA77+9Nm3vv73vv715Oe+/ve+/vWrvv73vv73vv71X77+9Xu+/vdmzJ0bvv70YYe+/ve+/ve+/ve+/ve+/vRLbt2/vv71W77+9xZo1a2AwGGTvv73vv73vv73vv73FiwDvv73vv73vv70s77+977+977+9W++/vT0D77+977+977+977+9Xn7vv71lLFvvv70MUVFRVse9NWfvv71377+977+977+91asRExMDADhz77+9DO+/vQ4d77+977+977+9B++/vUfvv70e77+9au+/vTZzYjQace+/ve+/vUlM77+9MgXvv71n77+9FlBNPjMzEwsXLkRoaO+/ve+/ve+/vTpLPNOjRw/vv73vv73vv70HDQ0NNu+/vTFPMnDvv70PTm1t77+9LHV2dHRg27ZteO+/ve+/ve+/ve+/vQ8LC0N6ejoKCwvvv73vv73vv70O77+9Fi3vv73Nmzdl77+977+9TO+/vVbvv71n77+977+977+9fe+/vTBg77+9AO+/vVnvv73vv73vv709d86j77+9Gu+/ve+/vQgAeu+/veqFjO+/vQwA77+9N++/vdu8eTN+77+977+9X9u8z5vvv73vv715DmJiYnDvv73vv71177+977+977+9au+/ve+/vXk577+9HDnvv73vv70k77+977+977+977+977+96ZCU77+9ZDnvv73vv73ailHvv71GYcWKFSgsLERTUxPvv71577+9HVlrMmtqakJiYiLvv71s2YLvv73vv70C77+92rULx44d77+977+977+977+9fN2p77+977+9DO+/ve+/ve+/vTZb77+9eHPvv73Wrl3vv73vv73vv70E77+977+977+9fu+/vQFAY2Mj77+977+977+9Y++/ve+/vTzvv70377+977+977+977+9FO+/vRnvv73Opmgm77+9CSEhIV3vv71H77+9Gu+/ve+/ve+/vUvvv73vv73vv73vv73vv73vv71777+977+977+9BO+/vXbvv73vv71x77+9Rlzvv71477+9ckfvv70JZ++/vW7vv73vv70F77+9PHnvv73NtUIISe+/ve+/vdm677+977+977+9Tu+/ve+/ve+/ve+/ve+/ve+/vTtfd3deThcuXEB2djZW77+9XO+/ve+/ve+/vTjvv73vv73vv70b77+977+977+977+9dVZWFnJzc++/ve+/vVJ777+977+9B++/ve+/ve+/vQ9aXk/vv70+HUfvv70e77+977+9Dz8M77+977+977+9BQDvv71277+977+977+977+9P++/ve+/vTlzZk7vv70dc3fvv73vv73vv73vv70777+9FO+/vRFnNkXvv73vv73vv71FXV3vv73vv73vv73vv70bN++/ve+/veylrO+/vdChQ0hJSXF477+9Bx9877+977+977+9NO+/ve+/ve+/vQ/vv73vv73vv73vv71SfRFl77+977+977+977+9ZhQUFGDvv73vv73vv73vv73vv70677+9awgA77+977+974+677+9Ou+/vRfvv73vv73vv71Rd3UB77+9N++/ve+/ve+/ve+/ve+/ve+/vVlsbCxO77+9OmV577+977+977+977+9IDY277+977+9aWdS77+9UVfvv73vv73vv73vv73vv73vv70iNzcX77+977+977+9Vu+/vV7vv73vv73vv73vv70yTO+/vT4d77+977+977+977+92alT77+9YDQa77+977+977+9aHdsX++/vRdwOw48ee+/vSTWr19vc86Xc++/vXlOOu+/vR4D77+977+977+9KDQ3N++/ve+/ve+/vQPvv73vv73vv71277+946yA77+9axxxZlPvv70JEyZg77+977+977+977+977+977+977+977+9S++/vVBdXe+/vTFj77+977+9Uu+/ve+/vdOn77+977+9ee+/ve+/vcmTJ++/vX/vv70DAHDvv73vv70J77+9TCYMHz5c77+9WgAgPDwc77+977+9HioqKgAAO3fvv717J++/ve+/ve+/ve+/ve+/vXvvv70C77+977+977+9NywsDD/vv73Rj2Tvv70LcO+/ve+/vd2d77+9OV8PPe+/vRDvv70fP++/ve+/ve+/vQbvv73vv73vv73vv73vv73vv73vv73vv70wYe+/ve+/ve+/ve+/ve+/vQMRFhbvv73vv73vv71yAO+/vd69e++/ve+/ve+/ve+/vdq1a1jvv71oETZs77+9YO+/ve+/vQHgrrvvv73Cm2/vv73vv73vv73vv70aCCHvv73vv70f77+977+977+9K++/ve+/ve+/vWbvv73vv73vv73vv71gMO+/ve+/ve+/vQXvv73vv73vv71WY++/vWLvv73vv73Onz/vv73vv73vv70477+977+977+925zvv73vv73vv73vv73vv73vv73vv73DpUvvv73vv73vv73Rge+/ve+/vWLvv70577+92bMnEhIScO+/ve+/vQEAQFFR77+977+977+977+977+917U+77+977+9W29Z77+977+9aWxsFO+/ve+/ve+/vSIlJUU877+977+9E++/ve+/ve+/vUYIIcShQ++/vURubu+/vRDvv73vv70q77+977+977+914vvv73vv70U77+977+977+9Iu+/ve+/ve+/vUvvv73vv70bO3bvv71ob2/vv70677+977+9Rx/vv73vv73vv718Ie+/ve+/vRUc77+977+977+9F++/ve+/ve+/vWLatGnvv73vv70lcjp577+977+977+977+9FFPvv71OFU8977+977+9aGpq77+977+977+977+977+9Xe+/vVzvv71S77+977+977+977+977+977+9TFFZWSlrTVVVVe+/ve+/vT/vv73vv71ISUkR77+977+977+9Ij09XSxY77+977+977+9Lm/vv73Xvn3vv71Eamrvv71ITk4Wf++/ve+/vRBCLFjvv71A77+9OXNGCCHEuXPvv73vv71j77+9PSbvv71M77+9Iu+/ve+/ve+/vT8I77+977+9IGs977+977+977+977+9eO+/ve+/vQcsc++/ve+/ve+/vS4+77+977+9I++/ve+/vUpKSiw177+977+977+977+9XtOdNm3vv70k77+9Tu+/vSrvv73vv73vv71FQUHvv70Qwrfvv71l77+96aef77+977+9S++/vVod77+977+9Te+/vTTvv73Sm++/ve+/vcqEVu+/vRXvv73vv73vv71i77+92rXvv71kMgkh77+977+977+977+9Fe+/vQ4dEkIIce+/ve+/vWUxe++/vWzvv73vv71oRFZW77+977+977+977+977+977+9Gu+/vRvvv70RESnvv70i77+9GiIi77+977+9Te+/ve+/vUjvv73vv73kiYgU77+9Te+/ve+/vUjvv73vv73kiYgU77+9Te+/ve+/vUjvv73vv73kiYgU77+9Te+/ve+/vUjvv73vv70Pd++/vQM877+9ZlF0AAAAAElFTkTvv71CYO+/vQ==", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "x = np.linspace(-10, 10, num=50)\n", - "y = 2 * x + 2\n", - "plt.scatter(x, y)\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 130, - "metadata": {}, + "source": [ + "x = np.linspace(-10, 10, num=50)\n", + "y = x ** 2\n", + "plt.scatter(x, y)\n", + "plt.show()" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAABeQAAAO+/vQgGAAAA77+9DO+/vVoAAAA5dEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdmVyc2lvbjMuMy4yLCBodHRwczovL21hdHBsb3RsaWIub3JnLy/vv70RCwAAAAlwSFlzAAALEwAACxMBAO+/ve+/vRgAAB7vv71JREFUeO+/ve+/ve+/vX1QVO+/ve+/vQfvv73vv73vv70GHQLvv70tVglGa2PGie+/ve+/ve+/vQkx77+977+9TEReXHTvv7002qTvv71a77+977+9Pu+/vdqqY++/vWo177+9EjXvv73vv71jMWlja2vvv73vv71oFUUK77+9WiNVce+/vUsTLe+/vSROVO+/vSvvv71AAhhYYO+/vTx/77+977+9Ze+/vV3vv70u77+977+977+9Pe+/ve+/ve+/ve+/ve+/vRfuj7Pvv73vv70477+9e865BiHvv70AERFJKSzvv70BEBHvv71277+95ImIJO+/vSRPRCQxJnkiIu+/vTHvv70TEUnvv71J77+977+9SGJM77+9REQS77+9CHQA77+9NTTcg8OhfO+/vX58fAzvv73vv70177+977+9fxjvv70y77+9Sznvv73vv73GuO+/ve+/vTXvv73vv70wAx5877+9Ae+/ve+/vXXvv73vv70dDu+/vVPvv73vv708V++/vRjvv70y77+9Sznvv73vv73GuO+/ve+/vSIudu+/vRARSe+/vUnvv73vv71IYkzvv71ERBLvv71T77+9b25uxrRp77+9cO+/ve+/vQ0AQGVlJSwWC++/ve+/ve+/vVBQUO+/vTzvv73SpUvvv73vv73vv73vv73UqVPvv71677+9anR0dGgTNRER77+9Se+/vUnvv73vv73vv73vv70zZw7vv71d77+9BgBobW1FXl4eCgsLUVpa77+977+977+9KlRUVAAAVu+/vVjvv73vv71r77+977+9L3/vv70L77+9ENizZ++/ve+/ve+/vQPvv73vv73vv71377+977+977+9JO+/vX96ECsKT++/ve+/ve+/vTvvv71f77+977+9SC1a77+9Xu+/ve+/ve+/vT1777+9bu+/vTrvv71MJgDvv73vv70LF++/ve+/ve+/ve+/ve+/ve+/vURERETvv71i77+977+977+977+9HDdv77+9RGtrK8aPHw8A77+977+977+9QXl577+977+977+9dnfvv73vv70d77+977+977+9U++/vTXvv70gAO+/vTXvv73vv73vv73vv71P77+977+9KCjvv70j77+977+977+977+9N27ciAkTJjg/77+977+977+977+9aDQ6P++/vUwm77+977+91LhtNxrvv73vv73vv73vv71RLVBP77+9V3zvv73vv70O77+9y7bvv70OB++/vVd877+977+9de+/ve+/ve+/ve+/ve+/vRzvv71477+977+977+977+977+9YHB+FkLvv71gMHjdrlR8fEzvv73vv73vv71v77+9ee+/vW40DlZ8be+/ve+/vSnvv73vv70Y77+9Mnrvv70L77+9b2zvv73vv71n77+977+9Ye+/ve+/vXxCQgLvv71W77+977+977+9au+/ve+/vWRy77+9fu+/ve+/vV1nF++/vRJ1de+/vX3vv70QEDckGnUeCiluSDTvv73vv70m77+977+91oLvv704WDfvv710xbjvv73vv71rXO+/vX5jY1zvv71TI++/ve+/ve+/vRl6bBwrHkLvv73vv73vv73vv73vv71X77+977+977+977+9Gnbvv70dJSUlSE1NxbBh77+9EB0d77+9c++/ve+/vQEADh4877+977+977+9VO+/vT9e77+9HO+/vShERe+/ve+/vQpREWHvv70x77+977+977+977+9RERq77+9Rw5T3JLvv73vv73vv71Gfn4+cnNzYe+/ve+/vWA277+977+977+977+9DgDYunUr1qxZ77+977+977+9Zu+/vR07FnPvv73vv71VLVBPUu+/vSYA77+9369V77+9aEPckGjvv71HOe+/vRMR77+9P3Lvv71Bby/vv71W77+9XdOV77+977+9C++/vRXvv71S77+9cSnvv73vv73vv70Y77+9Mu+/vcalencNEREFDyZ5IiLvv70x77+9ExFJ77+9Se+/ve+/vUhiTO+/vUREEmPvv70nIu+/vRjvv708Ee+/vcSY5ImIJO+/ve+/vRd577+977+977+977+9O++/vV/vv70F77+9Gm3vv73vv71sWCIK77+9QO+/vSJp77+9fO+/vTrNne+/vXh277+977+9DO+/ve+/ve+/ve+/ve+/vSbQuUjvv73vv70a77+9NU9EehDvv71cJG3vv73vv73vv718Z0/bie+/ve+/vRDvv71cJG3vv73vv70fEu+/vWg7Ee+/vRYC77+977+977+9Te+/vVxr77+977+977+9INC5SO+/vQfvv71d77+9ae+/ve+/vRoiCu+/vUDvv70iae+/vTxw77+9cO+/vdSJKO+/vQLvv73vv73vv73vv73vv70hIiImeSIi77+9Me+/vRMRSe+/vUnvv73vv71IYkzvv71ERBJj77+9JyLvv70Y77+9PBHvv73EpB4n77+9De+/vSAmIi3vv70x77+977+9XO+/vQ/vv73vv73vv71EJCfvv73mlpDvv70J77+977+977+9RCQn77+95paQS++/vV7vv73vv73vv73vv73vv73vv70Sckk+77+977+9fhLvv73vv73vv73vv71bQi7vv70Heu+/vU8i77+977+9XnNL77+9PXgN77+977+977+9RCQn77+95paQS++/vQDvv70gJiJt77+9Me+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vUJWVhbvv71477+9DQBAZWUlLBYL77+977+977+9UFBQ77+9Su+/vURE77+9G++/ve+/vXxLSws2btyI3bt377+977+977+977+9OHvvv70s77+9Hj3vv73vv73vv708FBYW77+977+977+9FFVVVe+/ve+/ve+/vVAzXiIiUu+/ve+/vSRv77+977+977+9cDjvv73vv73Sgu+/ve+/vQ50dHQgJiYGSUlJSExMREREBCwWC++/ve+/ve+/vdWM77+977+977+9FO+/vU8+JiYGS++/vS5FRkYGBg4c77+977+977+9egrvv73vv73vv70wGu+/ve+/vWNMJhNqamoU77+977+977+977+9GF9D77+977+9OO+/ve+/vXPvv73EuO+/vWFc77+977+9NTbGpe+/vRZx77+977+977+9P++/ve+/vVPvv73btw8ffe+/vREGDx7vv73vv73Ll++/vdq1azAYDO+/vWPvv70QLu+/ve+/ve+/ve+/ve+/vRkO77+9UBzvv73vv704GFZr77+977+977+9xrjvv71hXO+/ve+/vTU2xqXvv73vv71x77+977+9GXpsHO+/ve+/vV1z77+977+9Ce+/ve+/ve+/vSA+Ph5RUVHvv73vv73vv73vv70/77+977+9D1jvv71W77+9MVbvv70VJu+/ve+/ve+/vUsQEVE/77+93JIfM2YM77+9bNmC77+977+977+9GgMHDu+/vdGjR++/ve+/ve+/ve+/vUPvv70O77+977+977+9GsOHD0dJSQlmzpzvv71m77+977+977+977+9CnJE77+9P++/ve+/vSt8Tu+/ve+/vT7vv70s77+977+977+9fyMnJwfvv73vv73vv71477+977+9x5Hvv73vv73vv73vv70TJyI3Nxc277+9DWbvv70Z77+977+977+9asarGe+/ve+/vSBHRO+/vRJs77+977+9X++/ve+/vRYuXO+/ve+/vQsX77+9bEtJSUFxcXHvv73vv70K77+977+9Vu+/ve+/ve+/vRdHRO+/vRFs77+9Iu+/vdau77+9Ru+/vSvvv70R77+977+9BFvvv71g77+977+9f3pdQe+/ve+/ve+/vSXvv71yBe+/ve+/ve+/ve+/ve+/vQpyRO+/vS/vv73vv70rQnLvv70yT++/ve+/ve+/vRwR77+9S++/ve+/vQom77+9Lu+/ve+/ve+/vRwR77+9TzDvv70Kdu+/vRARSe+/vUnvv73vv71IYkzvv71ERBJj77+9JyLvv70Y77+9PBHvv73EmOSJiCTvv70h77+9fRBMK++/vRHvv716ZO+/ve+/vUzvv70I77+9Fe+/vUgd77+977+9fXbvv73vv73vv73vv70V77+9SF7vv73vv719Ju+/vV4E24pzRO+/vQ5Z77+9Pu+/vXwv77+9be+/vTkiUu+/vSx177+9Se+/vRfvv73vv73vv70cEe+/vUPvv73vv73vv70H77+977+9CO+/vRXvv71IHe+/ve+/vX0m77+9Pgjvv70V77+9SD0y77+9fXbvv70QEUnvv71J77+977+9SGJM77+9REQSY++/vSci77+9GO+/vTwR77+977+9OO+/ve+/vR9kWO+/ve+/ve+/ve+/ve+/vUzvv70+77+9Ze+/vSLvv71QJ3tdZnfvv73vv71kWe+/ve+/vSjvv73vv71e77+977+977+9fSTvv73vv71FRO+/vU7vv73vv73vv70k77+9I1kWLyIKde+/ve+/vWUmeR/JsngRUe+/ve+/ve+/vS7vv70r77+9Hz16FDk5Oe+/ve+/ve+/ve+/vS9+77+9CwBAZWUlLBYL77+977+977+9UFBQ77+9Su+/vXrvv70yNgHvv70y77+9OO+/ve+/ve+/vQ/vv73GvO+/vTFSPO+/vSEKJe+/ve+/vWXvv71H77+9XO+/vX4d77+91q3vv73evXsRHx/vv71577+95qGi77+9Au+/vdat77+977+93bsxdO+/vVAsWu+/vQgVFRUw77+977+9asasGzIsXkREcu+/vWXvv71b77+9f++/ve+/vV/vv73vv73vv73vv73vv73vv70EREZG77+977+977+9AAMHDkRSUhISExMREREB77+9xYLvv73vv71yNe+/vSUiIgV8bu+/vVdXVyMyMhLvv70XL++/ve+/vdu3MWnvv70k77+9Hj0aRu+/ve+/vXnvv73vv71kQk1N77+9Ku+/vRIR77+9cj4nee+/vd2O77+9Z++/vWLvv73vv73vv70YNGgQXnnvv70VDBgwAAbvv73vv71577+9EO+/ve+/vXNf77+977+977+977+9GhLvv73vv73vv70+77+977+9JcalDO+/vVJO77+977+9MS5l77+977+977+977+9JO+/ve+/vUMPISUlBXFxcQDvv73vv717Du+/ve+/ve+/vQgPD3ceY++/vVphMu+/vRTvv73cuu+/vWY4HEJxPEbvv71gWO+/vU3vv73vv73vv70a77+9Uu+/vXEp77+977+977+9GO+/vTLvv73vv70VFmbvv71x77+9c++/ve+/ve+/vcmTce+/ve+/vQk0Njbvv71u77+977+977+977+977+9SE9P77+91atXUV1dDe+/vd2O77+977+9Eu+/ve+/ve+/ve+/vXoJIiLvv70n77+9W++/ve+/ve+/ve+/vVjvv71gAe+/ve+/ve+/ve+ive+/vR0TJ07EnDlzMHLvv71I77+977+977+977+9Zu+/ve+/vWw2Iz09Xe+/vXjvv71G77+9R++/ve+/vTbvv71J77+977+9EVEwCu+/vTppEEIo77+9G9GQDO+/vTXvv70XPALvv71P77+977+977+977+9Wz3vv71XV++/vUs577+9xqbvv73vv71k77+977+977+9ddeQd++/vS94RBRsQu+/vU4y77+9a0Dvv70F77+977+977+9TSjvv71JJnkNyL7vv70RUe+/vQnvv70677+9JO+/vQHvv70XPCIKNu+/vVwn77+9ZigNdD7vv70J77+9J++/vUR6FO+/vXXvv71JXiPvv70LHu+/vWnvv70BUSgL77+9Ou+/ve+/vRoiIu+/vTHvv70TEUnvv71J77+977+9SGJM77+9REQS77+9Vz/vv71cP++/ve+/vdGG77+9EHrvv71P77+9L++/vWPvv73vv73vv73vv73vv73vv73vv70Zde+/vTbvv73vv73vv71TAAjpm5BILe+/vWPvv73vv71d77+9R++/ve+/vX4G77+9P++/ve+/ve+/vWPvv73vv73vv71QXj/vv73vv70fWO+/ve+/vTHvv73vv71RKO+/ve+/vUHvv70P77+9Y++/ve+/ve+/vSjvv73vv73vv70g77+9B++/vTF3fO+/ve+/vUdd77+977+977+977+9fyLvv73vv73vv73vv71j77+977+977+977+977+9M++/vUgb77+9Y++/ve+/vV1DRCQxJnkiIu+/vTHvv70TEUnvv71977+9Ou+/ve+/ve+/vUTKsO+/ve+/vQ3vv73vv70OcCo277+9Mu+/vTN977+977+9Gh3vv71UbCJlWGfvv73vv71JXgc4Fe+/vUgZ1pnvv71j77+977+9AU7vv70mUu+/vXXvv73vv73vv71177+9U++/ve+/ve+/vWHvv73vv707Pnjvv70BTu+/vSZS77+9de+/ve+/ve+/vXXvv71T77+977+977+9Ye+/ve+/vRt277+9EBFJ77+9Se+/ve+/vUhi77+9dNe877+977+9G2hoaEB+fj4qKyvvv71p77+9Ju+/vWw2ZGRkYNmyZWpcImRxVh/vv7061oHvv73vv713S++/vdSpUygqKgIA77+977+977+9Ii8vD++/ve+/ve+/vSgtLUVVVRUqKirvv70dZO+/ve+/ve+/ve+/vTnvv73vv71zVt+p77+9dwIcGe+/vX/vv70O77+9X++/ve+/ve+/ve+/vV9+77+977+977+9Aixe77+9GABw77+977+9BSQlJSExMRERERHvv71YLCgvL1cl77+9UO+/vVl9FO+/vVgH77+977+9X++/vTVr167FsmXvv71w77+977+9bQBAbW0t77+9Ru+/vXPvv73vv71kQk1N77+977+977+9GR8f77+9czxG77+9YO+/ve+/vdWS77+9ce+/vXvvv73vv71X77+9aFPvv71377+977+977+977+977+917gA77+977+977+937jvv73vv70D77+977+977+9Jz4n77+977+9e++/vWLvv73QoUhJSe+/ve+/ve+/ve+/vQEADu+/vQMG77+977+9ee+/vRDvv73vv71zX++/ve+/vTXvv73vv70Q77+977+9MRoH77+9am1SfO+/ve+/ve+/vRNX3JBo77+907Tvv71E77+977+9d++/ve+/ve+/ve+/ve+/vde4AO+/vcamRlxa77+9Ae+/ve+/vSss77+977+9Y++/ve+/ve+/vSRfWloK77+91Yrvv73Tp+Orr++/ve+/ve+/vV9/77+977+9N28iPDzvv71577+977+9au+/ve+/vWTvv73vv70SIS/vv70877+9Ze+/vT3vv73vv73vv70o77+977+9Du+/ve+/ve+/vUnvv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73Tp++/vX7vv71677+977+977+977+977+977+9GsOHD0dJSQlmzpzvv71K77+977+977+977+977+9KNSxDu+/ve+/ve+/vTNe77+977+977+977+977+977+977+977+977+9XO+/vWw277+977+9Zu+/ve+/ve+/ve+/vXnvv73vv73vv71ZfRTvv71YB++/vUfvv70k77+977+977+977+977+977+9HABASkoK77+977+977+977+977+977+9RETvv71P77+977+9SkQkMS5QFu+/vTgL77+9ZO+/vXtaG0zvv71B77+977+9JO+/ve+/ve+/vQ7vv71r77+9EGcB77+9bHhPa++/vUk+CO+/ve+/ve+/vSQb77+977+977+9Ye+/vQ9CfO+/vSXJhu+/ve+/vXbvv73vv70Q77+9b0nvv73vv70977+9HT54DULvv70FSO+/ve+/vT3vv70dJu+/vSDvv71Z77+9JBvvv73vv73vv71gdw0R77+977+92JLvv70QJ++/ve+/vV7vv73vv73vv70/Jnnvv71wUgnvv70V77+977+977+9YHfvv71kOO+/ve+/ve+/ve+/vWZgMO+/vUvvv73vv71KSO+/vXhvBgbvv73vv71kOO+/ve+/ve+/ve+/vWZgMO+/vUvvv73vv71KSO+/vXhvBgYf77+9Su+/ve+/vUpI77+9eG8GBu+/ve+/ve+/vTjvv73vv73vv73vv73vv73vv73vv73vv73vv73vv71IYmzJh++/ve+/vRNR77+9Dw7EjGcfYe+/ve+/vTRx77+977+9HRw4cQrWhhZ277+9BBjvv71877+977+9PhHvv73vv73vv73CiSjvv70JTnrvv70XdteECE5EIX/hvaYvTO+/vSHvv70TUe+/vV9477+977+9C++/vXzvv73vv71EFO+/vRfvv71r77+977+9JB8iOBHvv73vv73vv73vv73vv73vv73vv73vv71r77+977+9PhHvv73vv71rSCvvv73vv73UgRNXOe+/vUYH77+977+9Q0jXiShG77+9YFjvv71NAe+/ve+/vWTvv70yNgHZk0bvv70e77+9ASZ577+9HO+/vWfvv71377+9ST7vv71xTDPvv73vv73vv71OcO+/ve+/ve+/vRDvv70x77+977+9K++/vTvvv73vv71fSX7vv73vv73vv73vv73vv73vv71CVlYWNm/vv70MAO+/ve+/ve+/ve+/ve+/vWJBWloaCgoKVAnvv73vv73vv70x77+977+9K++/vTvvv73vv73vv70kX1lZ77+9EydO77+977+977+9CAcOHO+/vcWLF1FSUu+/ve+/ve+/vTwUFhbvv73vv73vv70UVVVV77+977+977+9UDNeUhnvv70077+977+9eO+/vQQH77+977+977+977+9aMSqVe+/vRAVFe+/ve+/ve+/vUjvv70aNQrXrl1DUlISEhMTERERAe+/vcWC77+977+9cjXvv70l77+9cUwz77+977+977+9TnDvv705yY8ePRrvv73HjwcAXO+/vXYNZWVlMBgMMBrvv73vv71jTCYTampq77+9HSRpJ2VsAu+/vWXvv71x77+977+977+9RGNe77+9GD4477+9Xu+/ve+/vQkOBiHvv73vv73vv70P77+9fO+/vTIWLVrvv73vv73vv71c77+977+977+977+977+977+977+92LJlCwDvv73vv73Jk++/ve+/ve+/vX7vv73vv707d++/vRIs77+917Fz77+977+9x7JL77+977+90ILvv70eHO+/ve+/vRnvv71h0pPvv73vv70O77+9Au+/ve+/vULvv73vv73vv70Q77+9c++/ve+/ve+/ve+/vVdfRV5eHu+/ve+/ve+/vXDvv73vv71pWO+/vVbvv71+77+977+9Cu+/vcmk77+9Z++/ve+/vTXvv73vv71Q77+9d0fvv73vv71777+9NS5PSxPvv73vv71P77+977+91KppSy1Y77+9K++/ve+/ve+/ve+/ve+/vXtB77+9ZSZbXGFhBu+/ve+/ve+/vXjvv73vv71rQO+/vW/vv73GkiVL77+9de+/vVZkZWUBAO+/ve+/ve+/vXHvv73vv71VVFdX77+9bu+/ve+/ve+/ve+/vQTvv73vv73vv73vv71e77+9Au+/ve+/ve+/vRPvv73vv73vv71zS37vv73One+/ve+/vWzvv73vv73vv713bu+/vT17Nu+/ve+/vfORm5sL77+977+9Bu+/vdmM77+977+9dFUCJe+/ve+/ve+/vTjvv73vv717Ie+/ve+/ve+/ve+/vdesWe+/vTVr77+9eO+/vVdcXO+/vXNA77+9D++/vUPvv709VmIO77+9Cz3vv70X77+9G2fvv73vv71HHB5H77+9eC8EN++/vV1DHnVf77+977+977+9T++/vS7vv70L77+977+9Se+/ve+/ve+/vTRxV1x5UE49fe+/ve+/ve+/vQXvv70/JnlS77+9Kw/Kid+r77+977+9J0/vv71wOO+/ve+/ve+/ve+/vcqLSe+/vRTvv71wOjnvv71777+9F++/vTwpwpUH77+977+977+9VV5M77+9CO+/ve+/vcmJ36vvv73vv73vv73vv70U77+9bTgdR++/ve+/vV9P77+9Ee+/vTvvv70wyZNiPQ3vv73vv70IDX3vv73vv70777+977+9JB9215BqOEJD77+977+9He+/vR4meVINR2jvv70f77+977+977+977+9JE/vv73vv70IDe+/ve+/vXcUeu+/vSdP77+977+9Me+/vXLvv73vv70F77+9O0Lvv70PZO+/ve+/vVPvv73vv73vv70d77+977+92JIn77+9eHvvv70nAO+/ve+/ve+/vVNn77+9QO+/vcO+Uxfvv70ELFbvv711PmDvv71e77+9AO+/vV7vv70Qw5Y877+977+977+9CO+/vRXvv70n77+9Pu+/vWNy77+9Rk8PWO+/ve+/vWgi77+9Pe+/ve+/vSVP77+977+977+9Pu+/vWPvv71TJyZ577+9HB/vv73vv70fy5w677+977+977+9NO+/ve+/ve+/ve+/ve+/ve+/vWLvv73Dse+/vQs2CB07dx3vv71KLu+/vQErecSWPGlO77+9A++/ve+/vXvvv73vv70C77+9Lu+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vWJL77+977+977+977+9D2Rt77+9dj7vv71VYH/vv70X77+977+977+9Xe+/ve+/vQErdcWWPAUMHw7vv70fy5B6w5Y8BUzvv73vv71o77+977+9KH5INCdPee+/vUx6KkMi77+9LXkKIE9r77+9R0fvv71j3Kh4Tu+/ve+/ve+/ve+/ve+/vXHvv73vv70RHRnvv71yLB/vv71SV0zvv70UMO+/vR7vv73vv73vv73vv73JuO+/vUUdV0rvv73vv73vv73vv70LX++/ve+/vX/vv71P77+9A1bvv73vv701FFDvv70f77+9Gu+/ve+/ve+/ve+/vQfvv73vv714bGcrVu+/vRxv77+9W09975OeTO+/vVPvv71J77+9dO+/ve+/ve+/vXpZX0zvv73vv73vv73Gvnfvv70V77+9PO+/vU5PE3l6e++/vUXvv73vv73vv70977+977+9e++/ve+/vTjvv73vv71877+9JE/vv73vv73vv73vv71Gf3vvv73vv70e77+977+9bO+/vQZDC++/vVvvv73vv71777+977+9VO+/vWjvv707WO+/vWdM77+9S++/ve+/vTfvv73vv70i77+9AF3vv73vv73vv73vv70M77+9Q++/ve+/ve+/ve+/vS4Z77+977+977+9fO+/ve+/vTUUVDwN77+977+977+9CO+/vRzvv73vv73vv73vv70DMRzvv73bsEdvD1EdAh5/N3bvv71Qf2jSkj9077+9EHbvv73Yge+/ve+/vQ7MmzcPL++/ve+/ve+/vRbvv73vv70Q77+926Lvv71zd++/ve+/ve+/vT3vv73vv73vv70nDQbvv71977+9Wi3vv73vv73vv70L77+9ZEgNBiHvv73vv70277+9b2pqajBn77+9HO+/vd+/H1FRUe+/vT17Nn7vv73vv71f77+9W++/ve+/vVbvv73Or++/vWvvv73vv71b77+977+9B0bvv71gWO+/vU3vv73vv73vv70a77+9Uu+/vde477+977+9cwPvv71b77+977+977+977+9Pe2Pigjvv73vv73vv70TcO+/vV933Lbvv71+Zzwa77+9Wj1e77+977+9OUrvv73vv73vv73vv7122b5L77+977+9FldY77+9Ae+/ve+/vTHvv73vv73vv70nKE8qKyvvv73vv73vv71PIzY2Fu+/vQYN77+91KlTUV5e77+977+9Ze+/vVx4W++/ve+/ve+/vRBDby3vv73vv71Pbnnvv73vv73HskteW++/ve+/ve+/vQkzeO+/ve+/vXts77+977+9RFpS77+977+977+977+977+9Fkbvv73vv73vv73vv71kMu+/vcKFC30+77+977+977+9SO+/vTEaB++/vXzvv73vv70Y77+9Mu+/vcaVPWkw77+9J++/vXbvv702ZO+/vQBs77+9e++/vWXvv73vv73vv73vv71w77+977+9Gzt577+9T++/vd2GFu+/ve+/ve+/vXbvv71D77+9Xys6MhwvTxvvv71JTybvv73vv73vv70f77+9fe+/vVoL77+977+9VE/vv70O77+9Awbvv71/77+9MEII77+9z71hd++/vX/vv71KXGMf77+977+977+977+9RxXvv73vv71777+977+9HnpwIBx277+977+9c++/ve+/ve+/ve+/vX04Vu+/ve+/vTFU77+9S++/ve+/vRZXb++/vTXvv70n77+977+977+9BO+/vT1777+977+977+9au+/ve+/vWQy77+9fRnvv70+77+9Nu+/vVBJ77+977+93Izvv70U77+977+9dz40ZTcMBe+/ve+/vX3vv73vv70877+9DE7vv70677+977+977+9eu+/ve+/ve+/ve+/ve+/ve+/ve+/vUhNTVXvv70yRO+/ve+/vQ/vv717U++/vXjvv70+77+977+9RO+/ve+/vTDvv73vv70e77+93pLvv73vv70377+977+9ZcuWYe+/vdy5aG9vx6xZ77+9MG7vv70477+9L0Pvv71v77+9Wu+/vT3vv73vv719Oe+/vSjvv700GSdv77+9WGDvv71Y77+977+977+9RETvv70AZ++/vRIRSe+/vUnvv73vv71IYkzvv71ERBLvv73vv70q77+9Yd6mCWp877+977+9GO+/vTLvv71LOe+/ve+/vca477+977+9Je+/ve+/ve+/vVF977+9GiIi77+9D3bvv70QEUnvv71J77+977+9SGJM77+9REQSY++/vSci77+9GO+/vTwR77+9xJjkiYgk77+9JE9EJDEmeSIi77+9Me+/vRMRSUx377+9Gu+/vcW2be+/vRAeHu+/ve+/ve+/vVwAQGNjI++/vS9f77+977+9168jLi4O27Ztc3nvv70scO+/vTXvv73vv703b++/vUcffe+/ve+/ve+/vTDvv73vv73vv73vv71477+977+9J1Xvv73vv73vv73vv70O77+977+977+9d35uampCQ0MDPu+/ve+/vWPvv73vv71u3rzvv71p06bvv73vv70fBgA877+977+9Q9i5c++/ve+/ve+/vXRXVFTvv70377+9fBPvv73vv73vv70A77+9Se+/vSZh2bJlLse077+977+9Ye+/ve+/vdWo77+977+9woABA++/vXXvv71W77+9GjVK07jOnTvvv71N77+9Nu+/ve+/ve+/vR3vv73vv73vv73vv73vv70vf++/vWHDhu+/vRzvv73vv73vv706dO+/vRB277+92IHvv73vv70OzJs3Dy/vv73vv73vv73vv73vv71L77+9LmHvv73vv73VuHfvv70eJkzvv73vv73vv73vv73vv70jIkLvv71q77+9fe+/vXbvv73vv73vv70BAO+/vWYzVu+/vVzvv71/3759GDJkCADvv70777+977+977+9W++/vVrvv73vv73vv73vv73vv73vv73vv716Zxls2LAB77+977+977+977+977+977+9KO+/ve+/vXvvv73vv73vv73vv71zfu+/vXHvv70G77+9T++/ve+/ve+/vWvvv70677+977+977+977+977+977+977+9MXvvv71s77+977+977+977+9GD58OCorK++/vWnvv70m77+9bDZkZGTvv73vv71FAO+/vXXvv70WVu+/vVjvv73vv73vv706PO+/ve+/vSPYunUrHnjvv70B77+9FxdB77+977+977+9Ue+/ve+/ve+/vWti3Lhx4q2377+9cm5f77+9fu+/vXjvv71377+9EEIUFRXvv73vv71L77+977+977+9W1ZWJn7vv73vv70fCu+/ve+/vS7vv71c77+9Iu+/vUzvv70i77+977+977+9Ne+/ve+/vW7vv73vv73vv71eekkUFxfvv73vv70rLy8XP++/ve+/ve+/vTTvv73vv70nGzZsEO+/vQ4d77+977+9d++/vX3vv70Z77+977+906fvv73vv73vv70/77+9eVzvv70nTxbvv70uXRJCCO+/vXfvv71e77+9eO+/vWLvv71j77+9VV5377+977+9Ee+/vSdPFg0NDe+/vd69e++/vWLvv73vv73Lly/vv70c77+977+977+9JT7vv73vv71jIe+/vRDvv73vv73vv73vv71477+977+977+9Ne+/ve+/ve+/vcmT77+9F14QNu+/vU3vv73vv73vv73vv73vv71z77+9w4cP77+9HO+/vWjvv70i77+977+9f++/vVPvv71Y77+9cjgc77+977+9Z++/ve+/ve+/vR4F77+977+977+977+977+977+977+9xZQpU0RdXe+/ve+/vXZ/77+977+9J++/vXwi77+9Te+/vSbGjh0r77+9X++/vS5aWlrvv73vv71sFu+/ve+/ve+/vX9Ee3vvv73vv70/f++/vTh277+977+9eQsXLhQlJSVCCCHvv71v77+9LjZv77+977+977+977+977+977+977+977+9b3/vv70bRu+/vRjvv73vv71/77+977+9LtuPHTvvv718Scm0ae+/ve+/ve+/ve+/ve+/vR3vv73vv73vv70u77+9VFRUIDMzE2FhYXjvv71HMHTvv71Q77+9Fu+/ve+/ve+/ve+/vduH77+9Awd6fHnKv++/ve+/vS9877+977+977+9Pn0677+9zp3vv73vv70+77+9TO+/vTjvv71e77+977+977+9CBbvv70Fy5cv77+9V19977+9dsyxY8eQ77+977+9DQB46qmnUF9f77+9W++/vW5pFlNbWxvvv70uXe+/vTFj77+9AAAefe+/vVHcvn3vv71j77+977+9KO+/ve+/ve+/vUo877+977+904jvv73vv73FoEHvv70wde+/vVTvv73vv73vv70777+937x5E++/ve+/ve+/vRg/fjwAICcn77+9Ze+/vVbvv71GI1bvv71a77+977+977+9KERGRmLUqFFu77+9S1VVFe+/vXnvv70dWCwWbNiwATbvv73vv70L77+977+9du+/ve+/vRUA77+977+977+985Gdne+/ve+/vXoGAldeXe+/ve+/ve+/vT/HsmXvv70QFxfvv73dn++/vWfvv70e77+9W++/ve+/ve+/ve+/ve+/vQsXLiApKQnvv73vv73vv73vv73vv73vv73vv73vv71icSvvv73vv73vv71277+9OXMGU++/vU4F0L/vv70L77+9JD9j77+9DCxc77+9EO+/ve+/ve+/vS7vv71ra2vvv73vv70zERER77+977+977+9QX1977+977+9MV1fKG40GnHvv73vv70dTe+/ve+/ve+/vXjvv73vv73vv73vv73Tn++/ve+/ve+/ve+/ve+/ve+/vWhkZ2fvv73vv73vv70IP++/ve+/vQ/vv71k77+9Eu+/ve+/ve+/vWkSSyfvv73RiB/vv73vv71HKC4u77+90KFD77+9Ye+/vQbvv71j77+977+9Y++/vTla77+9EQBERUVh77+977+977+9AADvv73Dge+/vdu377+977+9czvvv71f77+977+977+977+9N++/vUzvv73vv73vv73vv73vv71oNO+/ve+/ve+/ve+/ve+/vdGj77+977+977+92rVrKCsr77+977+9bHbvv71377+9Hh5777+9Me+/vVjvv70CRUVFaGxsRGFh77+977+9cTU2NiIlJQXvv73vv73vv73vv73vv71r77+9Lnzvv73vv704ee+/vXN/77+9yqtTZWUlWltb77+977+977+977+977+977+977+9ce+/vUZM77+9MO+/ve+/ve+/ve+/ve+/vQwAGhoaEBMT77+977+977+977+9T++/ve+/vU/vv73vv73vv70M77+9Nm1y77+9NnLvv71I77+92rXvv71P77+9CyEQFu+/ve+/ve+/ve+/ve+/vXDvv71gMO+/vXjvv71aMR4/fhwjRu+/ve+/ve+/ve+/vT7vv73vv73vv73vv71nCe+/ve+/ve+/ve+/vTfvv718E1fvv71cce+/vWjvv73vv70vZe+/vWDvv70CTO+/vTLvv73vv71cIe+/ve+/vWXvv73XuO+/ve+/vdqwau+/vSp0dHRg0aJFbu+/vWpZXl1577+9R++/vX7vv71t77+977+9Ll/vv73vv71F77+9FmHvv73KlRgxYu+/vXPvv70DDzzvv73vv73vv73vv73vv73vv73vv73vv73vv73vv71HXl7vv73vv71+XjU977+977+9E3jvv70n77+977+9Z82a77+977+977+9Ckzvv704EUDvv73vv73vv73vv70PP3Tvv71fPxDvv73vv73vv73Ul3Lvv73vv73Xsu+/vWXvv73vv73vv73vv71w77+977+977+9E++/vcmE77+9d++/vSIhIQEdHR3vv71377+9HmJjY13vv71JSEhAbW3vv73vv73vv73du3ddWu+/vWrvv71477+977+9EWRmZno9d++/ve+/vd2YNm0aHnzvv71BAO+/ve+/vVDvv70eRnnvv73vv73vv73vv70J77+9du+/ve+/ve+/vS/vv73vv71e77+977+9DQHvv71f77+9Xltb77+9fO+/ve+/ve+/vTLvv70tLu+/vX7vv73vv71XXkFsbCx277+92IHvv73vv71I77+9Y++/vSzvv73vv70SEhJw77+977+9We+/vWfvv73vv73vv73vv73vv70nJCTvv71q77+9Oj/vv71ZPu+/vTl377+9HF5977+9Ve+/ve+/ve+/vSErK++/vWXfrVvvv71QWVnvv71Z77+9ZgHQrnzvv707e++/vSzvv73vv73bke+/ve+/ve+/ve+/vSzvv73vv73vv70277+9OXMG77+977+977+9bu+/vQJVXu+/ve+/ve+/vUvvv73vv70MAO+/ve+/ve+/ve+/ve+/ve+/vQTvv73dju+/ve+/vXDvv73vv73vv71VUHXvv714Yzbvv71x77+977+9AQBAaWkpJkzvv73vv73vv70sUlNTce+/ve+/vSHvv73vv712VFdX77+92rVreO+/ve+/ve+/vTXvv73vv71PPnHvv73vv71Zd2fOnO+/ve+/ve+/ve+/vScA77+977+906fvv71wODBy77+9SE1iAe+/vUHvv70G77+977+9d++/ve+/ve+/ve+/ve+/vQEA77+977+977+9x5bvv73vv71s77+977+977+9BwHcr++/ve+/ve+/ve+/ve+/ve+/vTfvv73vv71ZXADvv71i77+9CiQlJWHbtm3vv73vv73vv73vv71477+977+977+977+9Z++/ve+/ve+/vVPvv71QX1/vv73vv73vv70WHD58GO+/ve+/ve+/ve+/ve+/vcOGDUN0dDTOnTsHADh477+977+9fu+/vdy+fRtL77+9LO+/vdatW++/vRI8AAwYMABb77+9bO+/ve+/ve+/ve+/vSHvv73vv73vv73vv73vv73vv73vv71VW1NTEzZv77+9DO+/vc2G77+977+9ZhQVFe+/vVw3UO+/vQUA77+9fe+/vRlG77+9GO+/vUHvv70G77+977+9C1R5dUpOTu+/vdWrV1FdXQ3vv73dju+/ve+/vRLvv71y77+977+977+9xIQJE1BaWgoAOHDvv73vv73vv71l77+977+977+977+9AHvrrbdcRu+/vTQ0NO+/vUXvv70W77+977+977+9TO+/ve+/vQsv77+977+9168LIe+/vThy77+977+977+977+9E0Lvv70fCe+/ve+/ve+/vS8yMzNFZmbvv704fu+/ve+/vWbvv70bN07vv73vv73vv73vv71s77+977+977+9D8S2bduEEO+/vUdx77+977+977+977+9IisrS++/ve+/ve+/vThH77+9aO+/vcyZM2LGjBkiPT1dLF7vv71YNDY277+977+977+977+977+9Klbvv71cKTIzM8WMGTNEVVXvv73vv70xXe+/vXhRfO+/ve+/ve+/vRbvv73vv73vv70iOztbZGdn77+9BQsW77+977+977+977+977+9Ki4uFllZWSItLU3vv73vv70377+9EUII77+9YO+/vQJx77+977+9BSHvv70Q77+9Ll0SM2fvv70UU++/vU4VP++/ve+/vU/vv73vv71m77+9LO+/vU7vv73vv73vv73vv70YP37vv73vv73vv73vv73vv73vv73vv70HH3zvv70SV3l577+9M++/vVXvv71W77+9JS4h77+9KCgoEO+/ve+/ve+/vSItLU3vv73atUsIEe+/ve+/vRJC77+9P++/ve+/ve+/ve+/ve+/vT/vv73vv73LtkDvv73vv73vv73Jk++/ve+/ve+/ve+/ve+/vVJYLBbvv73vv73vv70mNm7vv70oHA7vv70QQu+/ve+/ve+/vTxx77+977+9ESHvv70QN27vv70QL++/ve+/ve+/ve+/ve+/ve+/vRDvv73vv73vv70XX37vv73vv71P77+95Zuh77+977+9JCZFdw0REXnvv70kT0QkMSZ5IiLvv70x77+9ExFJ77+9Se+/ve+/vUhiTO+/vUREEmPvv70nIu+/vRjvv708Ee+/ve+/ve+/vQ9P77+977+9T++/vWPvv705AAAAAElFTkTvv71CYO+/vQ==", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "x = np.linspace(-10, 10, num=50)\n", - "y = x ** 2\n", - "plt.scatter(x, y)\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 131, - "metadata": {}, + "source": [ + "x = np.linspace(-10, 10, num=50)\n", + "y = x ** 2 - 25\n", + "plt.scatter(x, y)\n", + "plt.show()" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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AQUFBdDpdHavEUJg165d+Mc//oHQ0FBs27YN9957r0/ram1txcqVK22POzs70d7ejo8//thuv8uXLyM9PR133XUXAGDixIl4/fXXfVrLQCUlJXjhhRcQExMDAFiwYAE2btxot09PTw+eeuop1NfXY8SIEdi9ezemT5+uaF11dXXYsWMHent7ER0djd///ve488477fbxd3sdOnQIe/bsQV9fHx577DE88sgjdtvPnj2Lp556Cl1dXUhISMCWLVsQHq7sqVRYWIjKykoAgMFgwObNmx22v/feexg3bhwA4Ec/+pFD3Ur56U9/ira2NlsbbN26FXPnzrVtD0R7HThwAG+99Zbt8ZdffonMzEw888wztuf82WY3btzAww8/jL1792Ly5MmoqanBjh07YDabkZKS4nAuAsCVK1ewadMmtLa2YurUqdi9ezdGjx7t/psLDeno6BBPPvmkmDNnjnjxxRdtz2/ZskW8/PLLQgghSkpKxIYNGxxeW1lZKX7xi1+I/v5+ceHCBbF48WLR29urWK39/f3i0UcfFWVlZQ7bqqqqxG9/+1vF3tuZrVu3ikOHDg26z2uvvWar68SJE+KHP/yh4nUtXLhQnD17VgghxIEDB8SaNWsc9vFne127dk0sXLhQtLe3i66uLmE0GsX58+ft9klLSxMff/yxEEKIJ598Uuzbt0/Rmj766CPx0EMPCbPZLHp6esTy5cvF4cOH7fbJyckR//znPxWtwxmLxSIefPDBQc8lf7fXQJ999plYvHixaG1ttXveX212+vRpkZ6eLmbPni2amprEzZs3hcFgEF988YXo7e0VK1euFEePHnV43erVq0V5ebkQQojCwkKxa9cuj95fU901H3zwAaZMmYKf/exnds8fPXoURqMRAJCeno4PP/wQvb29dvtUV1cjNTUVoaGhmDp1KiZNmuRwhe1L7733HkaOHGmr63b/+te/8NlnnyEzMxPLly/HuXPnFKvj9vcsKSmB0WjEE088ga+//tphn6NHjyIjIwMA8P3vfx9tbW24cuWKYjX19PRgw4YNmDVrFgBg5syZuHr1qtPa/dVeNTU1uO+++xAdHY1Ro0ZhyZIlqKqqsm2/fPkyuru7MW/ePABAVlaW3XYl6HQ65ObmIjIyEhEREZg+fbrD51JfX4+XX34ZRqMRW7duhdlsVrQmqwsXLgAAVq5ciYyM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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAABeQAAAO+/vQgGAAAA77+9DO+/vVoAAAA5dEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdmVyc2lvbjMuMy4yLCBodHRwczovL21hdHBsb3RsaWIub3JnLy/vv70RCwAAAAlwSFlzAAALEwAACxMBAO+/ve+/vRgAAB3vv71JREFUeO+/ve+/ve+/vXtQVO+/ve+/vT/vv703d++/ve+/vW7vv73vv73vv71WU++/vWomdCYkGVdnFO+/vS1Y77+9Tdqk77+9Witaf++/ve+/vUbvv73vv70077+9Gu+/ve+/vWZgEu+/ve+/vTbvv71JdNKYCEEK77+9Ne+/vUQD77+9VWnvv73vv71YY++/vRLvv70FViAB77+9LO+/vX1+f++/vd2677+9Lu+/ve+/ve+/vXvOs++/ve+/vV/unrPvv71n77+9eXN877+977+9PBsi77+9ECAiIinvv70G77+9ACIiUg5D77+977+9SGIMeSIi77+9MeSJiCTGkCci77+9GEPvv73vv71IYgx5IiLvv73vv70H77+977+977+977+927tg77+9eDZ0PyZmDFpbb++/ve+/vSLvv70u77+977+9Lu+/ve+/vS7vv73vv71WV2hoCMaPH++/vXLvv73vv71C77+9YhEe77+977+977+977+9asS677+9w7rvv73Duu+/vRNMde+/ve+/ve+/ve+/vUhiDHkiIu+/vTHkiYgkxpAnIu+/ve+/ve+/vW7vv71677+977+977+9Gg5Wf++/ve+/vQ4zJu+/ve+/vULvv71hOhJn77+9Bu+/vSwi77+9ISnvv71f77+9D++/vdqGa++/vXPvv73vv73vv71nAQDvv71277+977+977+977+9fwMA77+977+977+9VO+/vR/vv73vv73vv73umoPVn++/vRrIqu+/vc+C77+91Z8H77+9IiLvv73vv73vv71Hfmk+77+9Wzvvv71uPU9E77+9Fu+/ve+/vS/Nh3zMuCjvv73vv70nIlILf++/ve+/vUM+77+9MB3vv73vv73vv73vv71GZHgo77+9DO+/vQNUERHvv73vv73vv70j77+9NH/vv73vv716c++/ve+/vWvvv71Ia++/ve+/vV/vv70Pee+/vVZDJc6O77+9TjcWJlNn77+977+9ISIaNu+/ve+/vUvvv73vv701RETvv70aQ++/ve+/vUhiDHkiIu+/vTHkiYgkxpAnIu+/vRhD77+977+9SGIMeSIi77+9MeSJiCQm77+9ZChX77+977+9NO+/vXbvv70Rw5nvv71EFEDvv73vv70jaUPvv73vv73vv70T77+9WgQy77+977+977+977+977+9Ou+/vUTvv70W77+977+9I2lD77+977+977+9E++/vVoEMu+/ve+/vQ1577+9M09EahHvv70877+9Nu+/ve+/vTwR77+9RSDvv71I77+9G++/ve+/ve+/ve+/ve+/ve+/vTVEFEjvv73vv70jaUMe77+977+9Ou+/vURE77+9Fu+/vTzvv73vv73vv73vv73vv73vv70Y77+9RERSY++/vRMRSe+/vSFPRCQx77+9PBHvv73EvArvv73vv73vv73vv73vv73vv73vv73vv71CSkoK77+9e++/vTkAQE1NDe+/vUYj77+977+977+977+977+977+977+9Iu+/ve+/ve+/vTMe77+9fFNTE++/vX3vv71ZFBUV77+977+977+9DO+/vX7vv70p77+977+977+977+977+977+977+977+977+9IlRUVO+/ve+/ve+/vR7vv73vv73Vvu+/ve+/ve+/ve+/ve+/ve+/ve+/vTjvv73vv73vv73vv71vSE1NRWzvv71x77+977+977+977+9aGxsRHx8PO+/ve+/ve+/vQAARu+/vRFVVVUwGAzvv73vv73vv71H77+9BDERKUHvv73vv73vv71x77+9NzY2IiIiAmvWrO+/vdWrV++/vWDvv70CzJgxAzrvv73Otu+/vV7vv71Hc3Pvv71bPzcmZu+/ve+/vSUBAHTvv73vv73vv71uP1rXhDfvv73vv73vv73vv73vv70P77+977+9AkFvVO+/vcO477+9I++/ve+/ve+/vTjvv73vv73bm++/vQLvv71177+977+9de+/vSfvv73vv73vv71F77+9KFHvv73vv70h77+977+9349T77+9Tu+/ve+/vTfvv73EqFHvv73vv71277+9Wu+/vRgxAiEhIe+/vX3vv70Qdu+/ve+/ve+/ve+/ve+/vQYsFu+/vVFNOu+/vVjvv71M77+977+977+9U1zvv71g77+9EO+/vcy977+9KC5v77+97LuiPXpfX++/vRUI77+977+9Pe+/ve+/vT3vv71W77+977+977+977+9aV3vv73vv70h77+9Xhx7HO+/vRMnTkRiYiImTO+/vQAAWO+/vWgR77+977+977+9EBYWZu+/ve+/vWQyQe+/ve+/vXvvv70W77+977+9Eu+/vUTvv70E77+9Zu+/ve+/vTdeFy5c77+977+9x4/vv73vv73vv70D77+977+977+9OHbvv70Y77+977+977+9ce+/ve+/vUU0Njbvv73vv73vv70f77+977+977+9P3/vv70v77+977+9Gu+/vSAmIiXvv701Wzzvv73vv73vv707dy5W77+9Wu+/ve+/ve+/ve+/vSfvv73vv73vv73vv70DDzzvv70f77+977+9x5g2bRrWr18P77+977+9DO+/ve+/ve+/ve+/ve+/vWRf77+977+9LO+/vXTvv73vv73vv70C77+9BDEReU/vv73vv73vv73vv70q77+977+977+977+977+977+9zrZ7LjExEWVlZV4V77+9JC5BTERKUGvvv71I77+91LArXO+/ve+/ve+/ve+/ve+/ve+/vWzvv70GREQSY++/vRMRSe+/vSFPRCQx77+9PBHvv73vv70Y77+9REQSY++/vRMRSSwo77+9UO+/ve+/ve+/vRXvv71Ife+/ve+/vRUM77+9b++/vTZc77+977+977+977+977+9YcafK++/vQ0A77+977+977+977+977+977+977+977+9Fe+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSMDQE/vv70FB++/vT8PUEVE77+9Rlrvv70K77+977+9N9S677+9HBHvv73vv73Wsu+/vSHvv70N77+977+9IEdE6qK177+9YO+/vX8j77+9MB3vv73vv73vv73Noe+/vRXvv71IXe+/ve+/vRXvv73vv73vv70N77+977+9IEdE6qK177+9YO+/ve+/vUbvv70r77+9Ee+/ve+/vWgpK++/vV1DRCQx77+9PBHvv73vv70Y77+9REQSY++/vRMRSe+/vSFPRCQx77+9PBHvv73vv70477+9chjvv73vv73vv70cEe+/ve+/vQzvv70+Q34IWltx77+977+9fEPvv71z77+977+9NUPvv73ainNE77+9G++/ve+/ve+/vQzvv70haG3vv705Iu+/vQ1Z77+9fe+/ve+/vRDvv73vv73vv70cEe+/ve+/vSzvv70+Q34IWltx77+977+9fEPvv71z77+9N17vv73vv73vv70V77+977+9N2Q577+9Ge+/vcOg77+9Fe+/ve+/vXdkOO+/ve+/vV1DRCQx77+977+977+977+977+9P++/ve+/ve+/vVwAQE1NDe+/vUYj77+977+977+977+977+977+977+9H09ERB7vv70677+9a2trUVJSAgDvv73vv73vv71GXl4e77+977+977+9UFFR77+977+977+9elRXV3tdJBERecar77+977+96quv77+977+977+977+9NWvvv70AAM6cOe+/ve+/ve+/vXjvv73vv73vv70hPDwcRu+/vRFVVVU+Ke+/ve+/ve+/ve+/ve+/vVXvv70/77+977+9M9i4cSPGjRsHAGhpae+/vU7vv73vv71t77+977+977+9aG5u77+977+9QiIi77+9x6NrDhw477+9Se+/vSYhMTERBw8eBABYLBbvv73vv73vv73vv73vv70RQu+/vT0e77+977+977+9Me+/ve+/vQQA77+977+977+9eu+/vXp3He+/vWvvv70b77+9Z3Hvv73vv70mJu+/vR/vv73vv70pd2Pvv73vv71xAe+/vWvvv71Y77+9e1jvv71777+9Uu+/vXDvv71jf++/ve+/vQse77+9fEVFBUwmEzIzM++/ve+/ve+/vV/vv73vv73vv70vLl/vv73vv73vv73vv70w77+9Pibvv70Jeu+/vd6t77+977+977+9egMW77+977+9Ju+/vW4sTO+/vU7vv71e64mBCxjvv73vv71v77+9d07vv73vv73vv73vv71u2JXvv73vv70aLu+/ve+/vR7vv73vv70e77+977+9Ne+/ve+/ve+/ve+/vXUNV2hoyKAX77+9Hu+/ve+/ve+/ve+/ve+/vSfbvw8ePO+/vRMnTmDLli1ISkpCY2MjJk/vv73vv73vv73vv71yLFvvv73vv73Tt1Dvv73vv70WMO+/ve+/ve+/vVrvv71gIe+/vXnvv73vv73vv71QUVFR2LlzJ9avXw/vv73vv70M77+977+977+977+977+9ZF/vv73vv73vv73Isu+/vRFRMO+/ve+/vTzvv71J77+9Z2VlISsrCwDvv73vv73vv73vv73vv73vv70yX++/vVjVixkX77+977+9QO+/ve+/vQJGRO+/vUzvv73vv70zXu+/vSDvv70CRkTvv71M77+977+9a++/vXhB77+9Be+/ve+/ve+/ve+/ve+/ve+/vTFD77+9SzIsYEQU77+9ZD7vv73vv71dQ0QkMe+/vTwR77+977+9GO+/vUREEmPvv70TEUnvv70hT0QkMe+/ve+/vVFIbe+/vTXbkCzvv73vv73vv71Y77+977+9VGnvv73vv70TaUVt77+9Ne+/vR7vv73vv73vv73vv73vv710QyVdYe+/vSvvv73Zgkd/77+977+9NwBIf0AR77+977+977+977+977+9HBTvv70l77+9axQw2IJHRBQY77+9el4y77+9FSDvv73vv71HRFoU77+977+9JUNeAe+/vRY277+9Ze+/vSMiLQrvv73vv70h77+9AO+/vRc8ItKiYD0vee+/vVUBAxc877+977+9Gu+/ve+/ve+/ve+/vX/vv73vv70vcnQNee+/ve+/vQXvv73vv73vv701aETvv70mcXYsMhbvv70I77+977+977+9NUREEmPvv70TEUnvv70hT0QkMe+/vTwR77+977+9eO+/ve+/ve+/vW5f77+9Jljvv73vv70T77+9E++/vTF7DHk/Cta1M++/ve+/ve+/ve+/vSN277+977+9Ue+/ve+/ve+/vUHvv70vPO+/vRwx77+977+9KFjvv73vv70g77+9F++/vWPvv70Y77+9fhTvv71rZxDvv70L77+9MUcMeT8K1rUz77+977+977+977+9I++/vXjvv73vv73vv71r77+977+977+9P++/vW/vv70cc8SQ77+977+977+917QhIu+/ve+/vTlm77+977+9NUREEmPvv70TEUnvv70hT0QkMe+/ve+/ve+/vQsLC1FZWQkAMBgM2Lx5M2pqau+/vWPvv70O77+977+9Zu+/ve+/ve+/vWDvv73GjT4pVHbvv73vv71N77+9Hu+/vTPvv73vv73vv718TU0N77+9Hz/vv73vv73vv70S77+977+977+977+977+977+9Ae+/ve+/ve+/ve+/ve+/ve+/vUNRUREqKipQX1/vv73vv73vv71qX++/vSsl77+9VGzvv70N77+9VO+/vdqGawHvv73vv71I77+9eO+/vQzvv73vv70h77+977+96ZCb77+977+977+977+9SERERGDvv73vv73vv71077+9Eu+/ve+/ve+/vREXF++/ve+/ve+/vXAY77+9RlRVVe+/ve+/vV4pcSo277+9e3jvv70M77+977+9IT9j77+9DMybNw8AcO+/ve+/vSVUVlYiJCQEOu+/vc6277+9Xu+/vUdzc++/ve+/vUXKjlPvv73vv73vv73vv71zZu+/ve+/vR4nf++/ve+/vXnvv73vv73vv71g77+977+977+9CAsLw6VL77+9bNuEEAgJCXHvv73vv73vv73EjO+/vR7vv71u77+9V++/vVfvv71gde+/vcaP77+977+977+977+977+977+977+9fe+/ve+/vV7vv73EutyjVF3enjPvv73vv71eXu+/vXxdXR0ef++/vXHvv73vv73vv70hLS0NJ07vv73vv73vv71k77+9bTfvv71M77+977+977+9bu+/ve+/ve+/ve+/vRvvv71Y77+9R++/ve+/ve+/vQvvv73vv73vv71r77+9U++/vUcFbk3vv71e77+977+9VEV/H++/ve+/vVfvv73vv70u77+9KFnvv70377+9bO+/vRUaGjLvv73Fse+/vSF/77+977+9Ve+/vVvvv70O77+977+977+9SExMBADMnTsXFy9eRGNjIyZP77+977+977+977+9cixb77+977+907cIGu+/ve+/vU3vv70e77+9M++/ve+/vXHIv++/ve+/ve+/vTDvv73vv73YuXPvv73vv73vv73vv70ffhg7d++/ve+/ve+/ve+/ve+/vWE277+9YTAY77+977+977+977+9QmXHqe+/vUTvv73vv705Mzwe77+977+977+9Tz/vv73vv73vv71+77+96bay77+9Mu+/vQsiIiLvv73vv71XIiLvv71xFUrvv73vv70+CnY8B++/vcOQVzF+KTEFO++/vQPvv71jd++/ve+/vXFWHwU777+9A++/vWPIqxhn77+9Ue+/ve+/vTnvv70977+977+977+977+9S++/vSnvv73vv70c77+9HkNe77+977+977+977+9FO+/vXgOeO+/vTdeVe+/ve+/ve+/vSjvv73vv70c77+9HkNe77+9OO+/ve+/ve+/vR3vv70B77C777+977+9SGIMeSIi77+977+977+9Ru+/vTgT77+9ZO+/ve+/vVkZDHnvv73vv71MQO+/vQnvv71n5bC7Ru+/vTgT77+9ZO+/ve+/vVk5DHnvv73vv71MQO+/vQnvv71n77+9MO+/vTXvv70zAUkmPO+/ve+/vcOQ77+9KO+/vQQk77+977+9eFYOb++/vWoUZwLvv71MeDwr77+9Ie+/vWHvv70JSDLvv73vv70Mdu+/vRARSe+/vVfvv70S77+9ElIzHu+/ve+/vcWQ77+9DCfvv73vv73vv73vv73vv73vv70/du+/vUjvv73vv71KSO+/vXh877+9H0NeMu+/vVRCau+/ve+/ve+/ve+/vRjvv73vv70SUjMe77+977+9x5Dvv70MJ++/ve+/ve+/ve+/ve+/ve+/vT/vv71477+9DCfvv73vv73vv73vv73vv73vv70/77+977+977+9OO+/ve+/vdSMx6d/77+977+977+977+9SGLvv73vv70PIgMn77+977+9SO+/ve+/ve+/vXdFB++/vSzvv71Qbe+/vTXvv70e77+977+977+977+9Ju+/vWQCTO+/vSvvv71D77+9DiE1NRVJSUnYt2/vv70Sb0Fu77+9TkLvv70OVWvvv70w77+977+977+9J++/vW3vv70W77+977+9SDbvv71j77+977+9fhPvv73vv70mPO+/vVgLDO+/ve+/vXxzczPvv73vv73vv71/77+9fu+/ve+/ve+/ve+/vS9/77+9C++/ve+/ve+/ve+/ve+/vW3vv71N77+9Ju+/ve+/vXvvv705Ce+/vXzvv70T77+977+977+977+9IV9TU++/ve+/ve+/vQ/vv73vv73vv70YNWoU77+9LFnvv73vv73vv70qX++/vQ3vv73vv73vv71Q77+9X3jvv73vv73vv73vv71D77+977+977+9BTrvv73vv73vv71Y77+916Pvv73vv73vv73vv71vQ27vv70kFO+/vRcea++/ve+/ve+/vRvvv70W77+9BSEhIe+/ve+/vUII77+977+9Q++/ve+/vRnvv73vv73vv73vv710Y++/vXrvv71SAl3Xiu+/ve+/vSg877+9Ccy977+977+977+9IsKwIn1277+9a3NG77+9NQHvv71rOO+/vXDvv73vv73vv73vv73vv73vv73vv73vv73vv70hHxsb77+9U++/vU7vv70e77+9TCbvv73vv73vv71h77+977+977+977+9BiwW77+977+9e++/vXRjYTJ1eu+/vVol77+977+977+977+9d0Vjee+/vUzvv73vv71rAl3vv71AamgvZ1jvv73vv71Y77+977+977+977+9F++/vUbXqO+/vVhTW3tZeVpXaGjIoBfvv70+D++/ve+/ve+/vR8v77+977+9Eu+/ve+/ve+/vTBy77+9SBw+fBjbtm3vv73vv73bkAcGTkJR77+977+9TtqXODsWGQtm77+977+9UgHvv73vv73vv70dd9yB77+9Gzdi77+977+977+977+977+977+9RXZ2Nu+/vcyZ77+977+9IR/vv70477+977+9eOyonyLvv73vv73vv71GI++/vUbvv70SP++/vXzvv71f77+9QO+/veKxow1c77+9IO+/vXFMM3nvv73HjjYw77+9HO+/vTTvv73vv71477+9aANDPu+/vXFMM3nvv73HjjYw77+9HO+/vcSBPO+/vWNHG++/vQpl77+977+9OO+/ve+/vXjvv71oA0Pvv70G77+9EgcO77+9I++/ve+/vXHvv70vAFE/77+9PO+/ve+/vSFyBO+/vTjvv70677+9yZNLHCJHAO+/vQPvv71jyJNLHCJHAO+/vQPvv71jyJNLHCJHAO+/vQPvv71jyJNLHCJHAO+/vQPvv73vv71Xcu+/vUPvv70I77+9ce+/vXUMeRrvv73vv70hchxaKScO77+977+9D0Pvv73vv73vv70hdXLvv73vv70qJ++/vcmT77+9OO+/vU5O77+9XO+/vcSQJ++/vXFI77+977+977+977+9yokhT27vv706Oe+/vXPvv70TQ++/ve+/ve+/vSF1cu+/ve+/vSon77+9eCXvv70NNu+/ve+/ve+/vW7vv71h77+9z4nvv73vv71cGO+/ve+/vRFnQ++/vTg6Qxvvv73vv73vv73vv71ZyYXvv70177+9Mxzvv73vv70N77+977+977+9C0Pvv71877+977+9M++/ve+/ve+/vVNwYciT77+9cHTvv70277+9cwou77+9J++/ve+/vTJM77+977+977+9Be+/vTc677+9N2Tvv73vv71V77+9D++/vTnvv718GO+/ve+/vTPvv71GZwDvv70NWT8b77+9TXDvv73vv70NDgx577+9KWfvv70zNhV977+977+9Rh/vv71FGe+/ve+/vVzvv71j77+977+9fe+/vTjvv73vv73vv70/77+9OVkx77+9SXHvv73vv73vv71/bHPvv71idw0p77+977+9G++/vRkL77+9Bu+/vVrvv705WteE77+977+9Bu+/vTbvv73vv71V77+977+9PCkucXYsHkvvv71l77+977+977+9GRfvv73vv71SZgHvv711Q++/vdqFYO+/vTl477+977+9KWDvv71qTW3vv701FB7vv73EoQ0BOG1z77+977+9Bx9eyZNf77+9c0Pvv73vv73Ks3g+J9Gf77+9ae+/ve+/ve+/ve+/vWHvv73vv73vv71777+9eu+/ve+/vQ/vv71877+977+9Tu+/vV/vv73vv73vv73vv70hOzsb77+977+977+9eO+/ve+/vXDvv73vv71lAEBHRwdW77+9Xu+/ve+/ve+/vRQ877+977+9IzDvv71MPivvv73vv73vv73vv70m77+977+977+977+9fu+/vUTvv71477+977+977+977+977+977+977+9Te+/vVBUVO+/vVnvv71m77+977+9d++/ve+/vXPvv70977+9PXvvv73vv73vv73vv70ACQkJeO+/vVdQWlrvv73vv73bt++/ve+/ve+/ve+/ve+/vSXvv70sYu+/vUU5De+/ve+/ve+/vUcC77+977+977+9Du+/vT1c77+9IW/vv73vv73vv71HV++/vT09PdiwYQNmzbrVrzpz77+9TFzvv716FQBw77+977+9URjvv71GAEB6ejo+77+977+9Q++/ve+/ve+/ve+/ve+/vVzvv73vv73vv73vv73Ll++/ve+/vW3vv73vv70z77+977+977+977+977+9WiBKDThX77+9MWd6DO+/vSLvv73vv73vv73vv70NVu+/ve+/vUchHxkZ77+977+977+9TADvv73vv71iQWFhIRYtWgQAaGlp77+9Tu+/vQMA77+977+977+9Y8yYMWhra++/vVHvv70kE1c3ZBfvv70bx5USB3Dvv70eZz5v77+977+977+977+9XO+/vWAl77+977+97K6p77+977+9xI4dO+yemzZtGu+/ve+/ve+/ve+/ve+/vdOD77+977+9XO+/ve+/ve+/vSEnJ++/ve+/ve+/vRAIDR3vv73fku+/ve+/vTHvv73vv73vv70Z77+9Tu+/ve+/ve+/vVjvv71zGQvvv70iY++/vQzvv73vv73vv71c77+9Ke+/vXXvv73vv73vv73vv71XeO+/ve+/vSzvv73vv73vv73vv73vv73vv70j77+9PO+/vW4s77+9N07vv71SAe+/ve+/ve+/ve+/ve+/vTU577+9fu+/ve+/vceCe++/ve+/ve+/ve+/ve+/vSvvv73Hlyvvv71U15Ah77+977+977+977+977+977+9FO+/vee7uu+/ve+/vXbvv71aREdHY8+ePe+/ve+/ve+/vQAA77+977+9elzvv71+He+/ve+/ve+/ve+/ve+/ve+/vUNXVxfvv73vv73vv73vv71dUGvvv70NWCxi77+977+977+9bXTvv73vv70w77+9Oj1677+977+9WO+/vXt077+977+977+94KKvedSIMO+/ve+/ve+/vWnvv71V77+977+977+9Jl5677+9NDo677+9Fe+/vXrvv71Hew1cc++/ve+/ve+/ve+/vR4Z77+9Gzfvv70c77+977+977+977+9Fe+/vVo/R++/vTV877+977+9FRoaMu+/vcWxVzde77+977+977+9Ze+/vRbvv70rde+/ve+/ve+/ve+/ve+/vVLvv71Z77+9BhUVFUhISO+/ve+/vQEgGi5X77+9eUJCQu+/ve+/ve+/vXzvv70g77+977+9Re+/vVzvv71Udu+/vS0TER7vv73vv73vv71QTm4i77+9eRTvv71+77+9KT7vv73vv70DfO+/ve+/ve+/ve+/vQ9+77+9AwDvv73vv73vv71ffe+/vVVs2LAB77+977+977+9SEtL77+92LFj77+9e++/vW7vv70WTO+/ve+/ve+/vUrvv73vv70e77+977+977+977+977+9G++/vVpY77+9cu+/vRUiXQ1977+977+977+977+9L++/ve+/ve+/ve+/vR8xUg/vv71C77+977+977+977+9Ls6dO++/vXRbdHQ077+977+977+977+9VVFE77+977+9CVTWkBsoNATvv73eqA1UODrvv71iH++/ve+/vWBDIu+/vXIkee+/ve+/vRrvv73vv73vv70adu+/ve+/vTbvv73vv70qORBDMV0NexxsAu+/ve+/vd+P77+9Mu+/vSkua0Dvv73vv70b77+977+9V++/ve+/vRZOc9WX77+977+9FXtoCO+/ve+/vVHvv71e77+9D1YX77+977+9Qu+/vRDvv70NZVEIR++/ve+/ve+/vUx1De+/ve+/vQbvv71w77+9ciBnNzJvXzht77+9Rd+Pw5Hvv71NDu+/vT/vv71YfO+/ve+/vWs+eW9P77+9XO+/ve+/ve+/vR9k77+9a++/ve+/vTXvv70hKe+/ve+/vVjvv71qeu+/vWBX77+977+977+977+977+977+977+9C++/ve+/vVfvv73vv73vv73vv73dme+/ve+/vXECEynvv73vv701JA1XNybdue+/vR9sYS9X77+977+9dO+/vR9P77+9cH7vv71u77+9fmHvv73vv70/77+9Su+/ve+/ve+/ve+/vRV+zLgo77+9V++/vS4u77+9ee+/vU5q77+9K3nvv73vv707V++/ve+/vVEs77+977+977+9FTvvv70BQ++/ve+/ve+/vXBG77+9OO+/ve+/ve+/ve+/vTsn77+9du+/ve+/vW9P77+977+9GFIl77+9PAXvv73vv73vv73vv71dbXPvv71577+9QGPvv708Ee+/ve+/vRjvv71ERBJj77+9ExFJ77+9IU9EJDHvv73vv714dTUW77+9X++/vVcK77+9cg/vv71yD++/vXLvv71MdQ3vv70a1a1dQ0RE77+977+977+9GiIi77+9MeSJiCTGkCci77+9GEPvv73vv71IYgx5IiLvv70x5ImIJMaQJyLvv70YQ++/ve+/vUhiDHkiIu+/ve+/vW5Z77+977+9KCgoQFhYGNavXw8A77+977+977+977+9E08877+977+977+9Jkzvv70wAQUFBe+/ve+/vXR277+9EUJg165d77+977+9P++/ve+/ve+/ve+/vVBs27YN77+977+9e++/vU/vv71qbW3vv73KlStt77+9Ozs777+977+93o7vv70/77+977+9bu+/vcuXLyM9PR1377+9dRcAYO+/vcSJeO+/ve+/ve+/vX1a77+9QCUlJXjvv70XEBMTAwBY77+9YAE2bu+/vWjvv71PT08P77+9eu+/vSnvv73vv73vv71jxIgR2L17N++/vU/vv73vv71oXXV1ddixYwd6e3sRHR3vv73vv73vv73vv73vv73vv73vv73vv70777+977+977+9d3sdOnQIe++/ve+/vUFfXx8ee++/vTE877+977+9I3bvv73Pnj3vv73vv73vv716Cl1dXUhISO+/ve+/vS1bEB7vv73vv71UWFjvv73vv73vv71KAO+/ve+/vWDvv73vv73Nmx3vv73vv73vv73vv717GDduHADvv71HP++/ve+/vUPvv71K77+977+9T3/vv73vv73vv702Wxts3boVc++/vc61bQ9Eex04cABv77+977+977+977+977+9X37vv73vv73vv71MPO+/ve+/vTPvv73vv73vv73vv71mN27vv73vv73vv70PP++/ve+/vXvvv71i77+977+9yajvv73vv73vv73vv70dO2A277+977+977+977+977+9cC4C77+977+9K1fvv71p77+9Ju+/ve+/ve+/vWLvv73Uqdi9ezdG77+9Hu+/ve+/ve+/vQsN77+977+977+9EE8+77+977+977+9M2fvv71477+977+9F23vv71v2bJF77+977+977+977+9QgghSkpKxIYNGxxeW1lZKX7vv71f77+977+977+9fnHvv73vv70F77+9eO+/vWLvv73vv73bq1jvv73vv73vv73vv73vv73vv71HHxVlZWUO26rvv73vv73vv71vf++/vVvvv73vv73bme+/vVvvv73vv71D77+9Dg3vv73vv71r77+977+9Zu+/ve+/vcSJE++/vT/vv73vv73vv711LVzvv71Q77+9PXtWCCHEgQMHxJo1axzvv73vv71ne13vv712TSxc77+9UO+/ve+/ve+/ve+/ve+/ve+/vS5hNBrvv73vv73vv73vv73vv73vv71JS0sTH3/vv73vv70QQu+/vSfvv718Uu+/vdu3T9GaPu+/ve+/vSPvv73vv71DDwnvv73vv70senp677+977+977+977+977+977+9w4fvv73vv73vv73vv73vv70R77+977+977+9PxXvv73vv70Z77+977+9Ih5877+977+9Qe+/vSV/77+977+9QO+/vX3vv73vv71Y77+9eO+/vWhtbe+/vXvvv71fbXbvv73vv71p77+977+977+9LmbPni3vv73vv73vv73vv73Nmzfvv73vv71gEF9877+977+977+977+9FStX77+9FEfvv70edXjvv73vv73Vq0V5ee+/vRBC77+977+977+9Qu+/vWvvv70u77+977+9X1Pvv701H3zvv70B77+9TO+/ve+/ve+/ve+/ve+/vWd277+9Hz16FEbvv70RAO+/ve+/ve+/ve+/vQ8/77+9EO+/ve+/ve+/vXbvv71UV1cjNTUV77+977+977+977+9OnUqJk3vv73vv71w77+977+9S++/ve+/vR5G77+9HGnvv73vv71277+977+917/vv73vv71n77+9ITMzE8uXL8e5c++/vRTvv73vv73vv73vv70sKSnvv73vv71o77+9E08877+977+977+977+977+9Ye+/ve+/vUfvv70iIyMDAO+/ve+/ve+/vX8fbW1t77+9cu+/vWI177+977+977+9YMOGDe+/vTVrFgBg77+9zJnvv71677+977+977+977+977+977+9XjU1Ne+/ve+/ve+/vRAdHe+/vVHvv71GYcmSJe+/ve+/ve+/ve+/vW3vv71877+9Mu+/ve+/ve+/vTFv77+9PABAVlbvv73vv712Je+/vXQ677+977+977+9IjIyEhEREe+/vT5977+977+977+9Ul9f77+977+9X34ZRu+/vRFb77+9bu+/ve+/vWxW77+9Ju+/vQsXLgAAVu+/vVzvv73vv73vv70M77+977+9ZyAw77+9Ne+/ve+/vX7vv707bNy4ERMmTO+/vXvvv71fbe+/ve+/vTvvv73vv73vv71n77+977+9Xu+/vQcA77+9OXMG77+977+98YiLi0N4eDjvv71G77+9Q++/ve+/ve+/ve+/ve+/ve+/vcmTWO+/vWQJAO+/ve+/vU1TIe+/vXTvv71S77+9Xu+/vRphYWF2z7fvv73vv73Yumfvv73vv73vv70xZu+/vRjvv73vv73vv70577+9Y21k77+91olz77+977+9NUXvv73vv73vv73vv73vv73evXvvv73vv73vv73vv73vv73vv73vv73vv70oZGRk77+977+977+9BD/vv73vv73PsW7vv70677+977+977+9KFLvv73vv71O77+977+9L3/vv71L77+977+977+9YdKkSdi6de+/ve+/vT7vv73vv73vv73vv701Su+/vREAREZGIjMzEwBg77+9WFBYWO+/vUXvv70WOe+/ve+/ve+/ve+/vRrvv70Geu+/vR7vv73vv73vv70u77+977+9dDrvv73vv71K77+9MWPvv70tJC9d77+977+977+977+9ShgMBu+/ve+/ve+/ve+/vS7vv71977+977+92LRpE0pKSu+/ve+/vdGB77+977+9IkVr77+977+977+977+9QGJiIu+/ve+/ve+/vT/vv73vv73vv70Yb++/ve+/vTY+77+977+9I++/ve+/vUDvv73vv73vv71qamrvv73vv73dje+/ve+/vRTvv73vv73vv73vv71m27dvR0JC77+977+977+9UO+/vRgA77+977+977+9Y8yYMe+/vW4tb++/vU3vv7198pWVldixY++/ve+/vXPTpk1DcXHvv71eL++/vUBo77+977+977+9L++/vcWC77+977+977+9Qe+/ve+/vVXvv73Hjh3DlClTMHPvv71M77+977+977+977+9SwBu77+977+977+977+977+9C++/vXDvv73vv73vv70b77+9ae+/vVXvv71WYe+/ve+/ve+/vQ7vv70VQu+/ve+/ve+/ve+/vVtXT08PcnNz77+977+914fvv73vv70c77+977+9Ku+/vV4DOTtObn8877+9diXvv70/fx45OTnYvHkz77+9TO+/vWJ7fu+/ve+/ve+/vXjvv73vv71Xbe+/vVfvv71c77+977+977+9PO+/ve+/ve+/ve+/vXbvv70977+977+977+9e++/vT3vv73vv73vv71GdXU1Hnjvv70BAO+/vW0vAHjvv73vv73vv70d77+977+9DwTvv73Nhu+/vSbOnu+/ve+/vVQZ77+9KSkpDn95B++/ve+/ve+/vXHvv73vv71177+977+9xqLvv73vv70PXV1d77+977+977+977+977+9JzY2Fi0tLe+/ve+/vdevX++/ve+/ve+/ve+/vWXvv71H77+9HEFqau+/ve+/vde+77+977+9SE9P77+977+977+977+9Ae+/ve+/vUB9dSPvv71ZXe+/ve+/ve+/vSguLsaKFSts77+9N++/vX9DAHDvv70dd++/ve+/ve+/ve+/vXbvv73vv73vv702Gu+/vS7vv73vv70V77+92rVrER0d77+9PXvvv70gIiLvv71hHyXvv71r77+977+977+9WO+/vTp177+977+977+9ZDLZtUFsbCxMJu+/ve+/ve+/vS/vv71oMHV1dXjvv73vv73Hke+/ve+/ve+/ve+/ve+/vTTvv71tV++/vVxBTU0N77+977+977+9ASjvv70+A++/vTp1Cu+/ve+/ve+/vUhMTHTvv73egWov77+9Vnfvv73Jkyfvv71z77+9Tu+/vW3vv71s77+977+9bTLvv70YA++/vQkTJu+/ve+/ve+/vRPvv73vv73vv70ICwtz77+977+9cGnvv73vv73vv70V77+977+977+977+977+9UgBARUUFEhISHO+/vWLvv73vv73vv704dO+/vRDvv73vv73vv73vv73vv73YiEvvv70u77+9e++/ve+/ve+/vSLvv73vv70+fe+/ve+/vWcD77+9PHkS77+977+9LgDvv73EiRPvv71YLO+/vTZt77+9Iu+/vQDvv73vv71R77+977+977+9a++/ve+/vU8+AQDvv73vv73vv71bTu+/ve+/vQ0GA++/vX/vv719AO+/vU7eqO+/vSh877+9W++/vVLvv70uANi0aRPvv73vv73vv71RUFDvv73vv73vv71I77+977+977+977+977+977+977+9fu+/ve+/vdai77+977+9DTdv77+977+977+9w4cxf++/vXzvv73vv70777+9E1FRUe+/ve+/ve+/vQMA77+977+977+977+9dtuVcO+/ve+/vVXvv71b77+9Du+/vXfvv712CHgAGDFiBO+/ve+/ve+/vT/vv73vv73vv70JQgjvv73bt++/ve+/veerhO+/ve+/vU7vv73atQtm77+9GTdu77+9QElJ77+977+9ewfvv73vv73vv73OnTvvv70pU++/vWDUqFEO77+9Au+/vWZz77+977+977+9xYsX77+977+92Ijvv73vv71+77+977+977+9O++/vUlERAQSEhJQUVEBACgtLe+/ve+/ve+/vTzvv71dG2Av77+977+977+977+977+977+977+9du+/ve+/ve+/vSNSU1Pvv71DDz0k77+977+977+977+9EEIcOXJE77+977+977+9CSFu77+9Ati5c++/vUhNTRXvv73vv73vv73vv73YsWPvv73vv703Z++/vRzvv73vv73vv71t77+977+977+977+977+9RUFB77+9EO+/ve+/vQjvv70VK1bvv73vv73vv70077+977+977+9ZRtd77+977+977+9J0/vv73vv71L77+977+977+977+9ZO+/vWbvv70a77+977+977+977+9UFd3d++/vdi8ee+/vUhNTRVL77+9LhXvv73vv73vv73vv73vv73vv73vv73vv70g77+977+977+977+977+9VO+/ve+/ve+/vSEyMjLEqlXvv70c77+977+9d3vvv73vv73vv73vv73vv73vv70077+977+977+9JF5577+9FSHvv70Q77+9Vu+/vRJnzpwRQghx77+977+9We+/vWzvv70y77+9ZO+/vRLvv73vv71f77+9Wu+/ve+/vWZF77+92bZt77+977+9N2/vv73vv73vv70yMjLvv73vv73vv73vv73vv71q77+977+977+977+91Zzvv73vv73vv714Te+/ve+/ve+/ve+/vRfvv73vv73vv70iKSlJFBcXCyEC77+9XlZ/77+977+9X8Wvfu+/vSvvv73vv70C77+9ZgsXLu+/vWVTTU3vv70wGu+/vSIpKUls375dWCwWIe+/vRB5eXnvv73IkSNCCCHvv73vv73vv71L77+96KOP77+977+977+9FO+/vXLvv71K77+977+9V19577+977+977+9ZigiIu+/vUnvv71dQ0RE77+9MeSJiCTGkCci77+9GEPvv73vv71IYgx5IiLvv70x5ImIJMaQJyLvv70YQ++/ve+/vUhi77+9H++/ve+/ve+/vQ9C77+9DW4AAAAASUVORO+/vUJg77+9", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "x = np.linspace(-10, 10, num=50)\n", - "y = x ** 2 - 25\n", - "plt.scatter(x, y)\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 132, - "metadata": {}, + "source": [ + "x = np.linspace(-10, 10, num=50)\n", + "y = -x ** 2 + 25\n", + "plt.scatter(x, y)\n", + "plt.show()" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAABeQAAAO+/vQgGAAAA77+9DO+/vVoAAAA5dEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdmVyc2lvbjMuMy4yLCBodHRwczovL21hdHBsb3RsaWIub3JnLy/vv70RCwAAAAlwSFlzAAALEwAACxMBAO+/ve+/vRgAAB3vv71JREFUeO+/ve+/ve+/vXtQVO+/ve+/vT/vv703Kxdj77+977+9QBbvv70kXiLvv73vv73Squ+/ve+/vVbvv73vv73vv73vv714WWDvv73vv700zpjvv73vv71WTO+/vRJbZe+/vdim77+9Wu+/vRoyYVIaNe+/vRnvv701Ou+/ve+/vQTvv73vv71lHO+/ve+/vUlw77+977+9RO+/vSXvv71v77+977+9eGMFWu+/ve+/vWVh77+977+9H2bvv73Hsu+/ve+/vV7vv73vv71n36/vv73vv71zdtmPz57vv73vv73vv70577+9eTZGCCFARERS0oTvv70AIiJSDkPvv73vv71IYgx5IiLvv70x5ImIJMaQJyLvv70YQ++/ve+/vUhiDHkiIu+/vcWG77+977+977+9Wlrvv71h77+977+9N3U/JSURTU3vv73vv71cUe+/vVjvv71vWO+/vW9Y77+9b2Tvv71L77+977+977+9fe+/ve+/ve+/vXV/xIXvv73vv70u77+9Dnnvv73vv70jEe+/ve+/vQ3vv73vv70N77+977+9TTTvv73vv73vv70aIiLvv70x5ImIJMaQJyLvv70YQ++/ve+/vUhiEXfvv70oVO+/ve+/ve+/ve+/vQ9r77+9QlPvv70VKUMTMNeQ77+9Ke+/vXrvv73vv71y77+9JXl9TV8/77+9KO+/vRjvv70U77+977+977+977+977+977+9NX/vv73vv70uOwDvv73vv73Viu+/vTV/77+977+977+9ae+/ve+/vVvvv704fO+/ve+/vW3vv73vv71977+9H3zvv73vv70bHn8W77+977+9wo0hT++/ve+/vXTvv73vv71h77+9V++/vVB277+977+977+977+92q/vv73vv73uva/vv73vv73fuE1x77+97LKj77+977+9a++/vT3vv73vv73vv73vv70ZPu+/vRND77+977+977+97Yy9d++/vTs077+9Wu+/ve+/vSxvc++/ve+/vU1t77+977+9XjzDp3BgyJM0fDlj77+977+9eA7nlKEJADzvv73vv71GE++/vTHvv73vv70sTe+/ve+/vQh477+9T++/ve+/ve+/vTUkBe+/vRnvv70j77+9HWfvv73vv73vv73vv73vv70C77+977+9dT3vv73vv71jNe+/vWtI77+9XEPvv73vv71977+9fzLvv73vv712w6QHPG7vv73vv70M77+9d++/ve+/ve+/ve+/vRjvv73vv73vv71o77+9eCZP77+9E++/vTN277+967ydTe+/vc+uGe+/vQfvv73vv73vv71rHnlI77+9Ju+/vX8R77+9ce+/vc+ZOhRsDHlSFV/vv73vv70dZ++/vT3vv70777+92Kfvv73rvYbvv73vv71977+9bu+/vV1b77+9Wnpqau+/ve+/vTnvv71BT++/ve+/vXAN77+9Sl9n7J6kDE3vv71i77+9eO+/vVjvv73vv71xKAJzSu+/ve+/ve+/vXs7Hnvvv73vv73vv71ZP0Tvv70K77+9TO+/ve+/ve+/vRxm77+9GQBgMBhQWFjvv73vv73vv706FBcX77+9au+/ve+/vWg0Ys2aNUEp77+9CO+/vT7vv73vv73vv70zdu+/ve+/vXLvv70/15Dvv73vv73vv73vv73vv73vv71z77+977+977+9Q++/vRfvv71D77+977+977+9Du+/vXzvv70JKisrERMT77+9ZcuW77+977+977+9AygtLe+/vc6dOzF877+9cO+/ve+/veejtu+/vRYG77+9Ie+/vTVT77+977+9NDbvv70yNO+/vWPvv70NZO+/vT1SOGrvv71U77+977+9ce+/ve+/ve+/vQkc77+9J++/ve+/vR3vv70677+9DkVFRe+/ve+/ve+/vQcA77+977+977+977+977+977+977+9GDVqFEbvv70YAQAw77+9TO+/ve+/ve+/vWbIk8+877+9TT/vv71D77+977+93aVAZO+/ve+/ve+/ve+/vVvvv71zDWke77+977+9J++/ve+/vXgd77+9z5nvv70U77+977+9Se+/ve+/vR7vv70fO3YsJk3vv70EAO+/vXzvv70y77+9ZjNiYmLvv73vv73vv73vv71JTU3vv73NmzcDLu+/ve+/ve+/ve+/ve+/ve+/ve+/vV8177+9be+/vT0U77+977+977+977+977+977+9Y++/veSXgGfvv71c77+9eBHvv73vv73vv70oLCzEoEHvv71w77+977+9Ze+/vT4hBGJi77+9XBHvv70iJSUx77+9enTvv73vv70877+9YV3vv71p77+9Mgbvv73vv71qRc6077+9yJk2Nu+/vRXvv70V77+977+9ypnvv73vv73vv73vv71777+977+9WO+/ve+/ve+/vSLvv71zZF3vv71R77+977+977+9Qu+/ve+/ve+/vR7vv71X77+9xoYNG++/ve+/ve+/ve+/ve+/vceP77+9Yu+/vTjvv71bLBbvv73vv73vv73vv73vv70z77+977+9bu+/ve+/vRVYOl0SLO+/vTbvv71e77+9JO+/ve+/ve+/ve+/vR7vv70i77+977+977+9e++/vdCE77+977+9HO+/ve+/ve+/vT1q77+9G1Bx77+9bMSN77+9R++/ve+/ve+/vWx1aTQxfe+/vRzvv709XHPvv73vv71177+9XO+/vRLvv73vv73vv73vv73vv73vv70CAEzvv704EV9/77+9Ne+/vVzvv73vv73vv73vv71uHDhwAFPvv71O77+977+9LUhy77+977+9Uu+/ve+/vW/vv71677+977+9XENaOEoNO2/vv70xIS0F77+9e07vv73vv71Z77+977+977+9M++/vXfvv715B1bvv70VJSUl77+9bQsWLEBJSQlW77+9WgXvv73vv70K77+977+977+92bNnB++/vVDvv73vv73vv71x77+977+977+977+977+9f++/vTjvv70TaWfvv73vv73vv71tRs6H77+9X++/vWrvv712eW7Pu2fvv73vv70O77+977+9Gzdi77+9xo0e77+977+927fvv73vv70oenjvv73vv71977+977+9A++/ve+/vRko77+977+9U3twXj3vv73vv73vv70aUEjvv70y77+977+977+977+977+9CUPvv73vv73vv73vv719A++/vVdPAO+/vTXvv70Q77+9Nu+/vT4hLe+/ve+/vTjvv70i77+977+9KFPvv73vv70a0pAQN++/vWVb77+9ee+/vRzvv70n77+9PCnvv73vv70577+977+9Hh8R77+9MlVpSu+/vR7vv73vv71N77+9eu+/ve+/vTXvv704b++/ve+/vU3vv71W77+977+9B++/ve+/ve+/vUcgfe+/ve+/vWUb77+977+9yYFn8qS4vlZdJGXvv73vv73JgWfvv70UVO+/vS7vv715W++/vSVa57yHQn9tzovvv73Rg2fvv70UNO+/vS7vv70C77+9eu+/ve+/vUjvv71tDRzvv703T++/vWzvv73vv73vv708BU1fX3jvv73vv71v77+9ZO+/ve+/ve+/ve+/ve+/vR19fU7vv73vv73vv73vv70zeQrvv73vv70u77+9Uu+/ve+/ve+/vRRdGO+/vRQ077+92KcO77+977+977+9C0Pvv73vv73vv73vv73vv73vv70DP++/ve+/ve+/vTF577+9S1/vv70zOGsj77+977+977+9OXHWjXwY77+977+9M29f77+9B3BRMe+/ve+/ve+/vTnvv73vv73vv73vv706ce+/ve+/vXzvv73vv73vv70MUi9+77+9cmLIk++/vTg7Q07vv71c77+9xJAn77+9cXbvv73vv73vv73vv73KiSFPPu+/ve+/vQw577+9c++/vRMv77+977+977+9OO+/vUZO77+9XO+/vcSQ77+9Pnnvv71S77+9WTRy77+977+977+9cmrvv716Me+/ve+/vStO77+9I++/vceB77+9cUzvv73vv73vv706Angc77+9HUPvv73vv73vv706Angc77+9HUPvv73vv73vv706Angc77+9HUPvv73vv73vv706Angc77+9HS/vv73vv71X77+9UkcA77+9A++/vWPvv71T77+977+977+9OFXvv70ATu+/vVQz77+9fO+/ve+/ve+/vTjvv70X77+9HXXvv73vv71877+977+977+9OO+/vRfvv70ddWDvv71HOU7vv70jf++/ve+/vVEH77+9fO+/ve+/ve+/vTjvv70X77+9HXVQJO+/ve+/ve+/vd+P77+977+9TMycORPvv71277+9Uu+/vS0oSDg977+977+977+9Y0cd77+9fu+/ve+/ve+/vc2beO+/ve+/ve+/ve+/ve+/vR8iPj4eCxYs77+9T37vv70TPO+/ve+/vSPvv71+KwoCTu+/vSN/77+977+9Ue+/ve+/ve+/vXxdXR0mT++/vQzvv71WCwDvv701axbvv73vv73vv73vv73vv73vv73vv70H77+977+9KEg4Te+/ve+/ve+/vWMn77+9BT3vv70bGxvvv73vv73pnI9TU1Nx77+977+977+9YO+/vQ3vv73vv73vv73vv73vv70l77+977+9SB/vv70Nd1kk77+9Y2dv77+977+9Y++/ve+/vXTvv70MP8yCHu+/vXbvv70dMTEx77+977+9Qgjvv73vv73vv71JSUkM77+977+9de+/ve+/ve+/vV7vv73vv71w77+9VVPfgO+/vVVf77+977+977+9De+/ve+/vQzvv73vv70977+977+9fO+/vURMe3xEWGvvv70k77+977+977+9De+/veqfp2Pvv71v77+9FzA0aXDvv70ca++/ve+/vV49KVFX77+9Q17vv73vv73vv73vv73Jk++/ve+/vRbvv70F77+977+977+9A359U++/vW3vv73vv73Cr++/ve+/ve+/vWDvv73vv73vv73vv71aJUVCXRUH77+9Ojvvv73vv73vv73Wje+/vQNnI++/vWw+Eu+/ve+/vRPvv701MO+/vX7vv71FWns577+9W++/vUYT77+977+977+9ce+/vWfvv70877+977+9Ezh277+9GO+/ve+/ve+/ve+/ve+/vdGBQ++/vQ5h77+91Knvv71+G++/vRHvv700U++/ve+/vVjvv70sQT/vv70fNmwY1qxZ77+9Re+/vRbvv71m77+9Ye+/ve+/ve+/ve+/vTBhQu+/vd+GfO+/vTI077+9Yyfvv71mCjYea++/vUXvv73vv71rTCYTTCbvv70SP++/ve+/vTTXkO+/ve+/vQgAJO+/vQ3vv71mCjpP77+9Gu+/vc+HDxco77+9Eu+/ve+/vTRzdg0p77+9ce+/vVV977+9NWfvv71EAO+/vXwU77+9Pe+/vTlSL0Dvv73vv71NSe+/vSNn77+9WB5fEe+/vWvvv70QEUnvv71n77+9Eu+/vRc5UCTvv73vv70ZWgx577+977+977+9HCjvv73vv73vv70MPQ7vv71I77+9X++/vUDvv73vv73vv71n77+9Me+/vSXvv70bUSjvv73vv73vv70MPe+/ve+/vWTvv71FDhTvv714fO+/vR5DXjLvv70iB++/vWQ8PkPvv70XXiXvv70vcu+/vUjvv73vv70z77+9GO+/vRLvv70XOVAk77+977+9GVoc77+9ISLvv70Y77+977+9Ve+/vTfvv73vv71MeDwr77+9Ie+/vVLvv73vv73vv71k77+977+9WTkc77+9USnvv71UQjLvv73vv70c77+977+9Su+/vRLvv70J77+9Z++/vTDvv71V77+9N++/ve+/vUx4PCvvv70h77+9Uu+/ve+/ve+/vWTvv73vv71ZOe+/ve+/vVLvv73vv73vv71k77+977+9WTkMeRXvv71NJSQTHu+/ve+/ve+/vXANEe+/ve+/vRjvv71ERBLvv71wTe+/ve+/vV3vv70U77+977+9BwLDkO+/vWDvv70L77+977+9He+/vUDvv704XBPvv714FyBFO++/ve+/ve+/vTHvv70jGO+/vQLvv71o77+9PhA477+9fATvv71d77+9FO+/ve+/vQcCx5Dvv71g77+9C++/ve+/vR3vv71A77+9eO+/vTXvv73vv70uQO+/vXbvv70D77+9Y++/vUc477+9BUjRjn0gMBzvv70hIu+/ve+/ve+/vSFfX1/vv73vv73vv73vv70jNzcX77+9Fy/vv73Vq1cBAO+/ve+/ve+/vVjvv718Oe+/vUYjFi5cCO+/ve+/vRLvv71i77+977+977+9N34P16xb77+9Dm/vv73vv70Gxo8f77+977+977+9fx9/77+905/vv71t77+9Nu+/ve+/ve+/vSEjIwNv77+977+9Ju+/ve+/ve+/ve+/vWXvv70W77+977+977+9Be+/vWQ577+9PiLfsO+/vQzvv71fZ/KdnZ0oKCjvv73vv73vv73vv70BAO+/vcaN77+977+977+977+9AQA1NTUw77+9TADvv73vv73vv71sHD16FDbvv70tSO+/ve+/ve+/vXFX77+9Y++/veOuvmNnb++/ve+/vTLvv73vv73vv70+M3B+77+9fHx8PHJzcwEAdu+/vR3vv73vv73vv7146qmnAADvv73vv73vv73vv73vv710AO+/ve+/ve+/vVgkJibvv73vv73vv705SO+/vcqJd++/vRHvv73vv719Zu+/ve+/vR3vv70x77+977+9KC4udu+/vTZm77+9GFRUVO+/ve+/ve+/vRNFRUXvv73vv73vv71Cfn7vv73vv73vv70LIe+/ve+/vQzvv713SUpK4oCf77+9Tu+/vRTvv73vv73vv71XXe+/vV7vv73vv71rbu+/vSrvv73vv71RY3vvv70T77+977+9UnUF77+9Z++/ve+/ve+/ve+/vQ1577+977+9CO+/ve+/vei2ve+/ve+/vR3vv70977+9HO+/vVot77+9bduG77+977+9OABAamoqbt26Be+/vV7vv73vv73vv70u77+977+977+9Q++/ve+/vQ7vv73vv73vv73vv73bsO+/ve+/ve+/ve+/vQc977+9dEnvv71Y77+977+9eu+/ve+/ve+/ve+/vSt5aO+/ve+/vdu077+977+9Jijvv73vv71Ra3vvv70L77+977+9dQXvv71nZGsv77+9Ju+/vc+TY++/vWfXrFvvv70O77+9Ru+/vUJZWRnvv73vv73vv73vv70NBgPvv73vv73vv70AAAcPHkRGRu+/ve+/vRcAeca777+977+9fO+/vT4zcH7Nrjl377+9HO+/vRw577+9Rx55BE8/77+9NO+/ve+/vWfvv71v77+977+9FgoKClBUVO+/ve+/ve+/vSwkJSXvv73vv73vv70077+9BcuId++/vRHvv73vv719Zu+/ve+/vQrvv73vv71/77+977+977+9cO+/ve+/vX1a77+9Ftu3bw/vv73vv71oxLvvv73vv71877+9PjMw77+945WISGIMeSIi77+9MeSJiCTGkCci77+9GO+/vRoOMe+/ve+/vUHvv70s77+9MVcM77+9EO+/vTfvv70TKe+/vX3vv70d77+9a0Lvv73vv71tECnvv71977+9HUM+77+977+977+977+9RO+/vWIfc8eQDyF+77+9PO+/ve+/ve+/ve+/ve+/vTHvv71D77+977+9bRAp77+9fe+/vR0v77+977+9EO+/ve+/vSBSFu+/ve+/vTvvv71877+9ce+/vQ0iZe+/ve+/ve+/ve+/vXANEe+/ve+/vRjvv71ERBJj77+9ExFJ77+9Y++/vQrvv715a++/ve+/vXsw77+9D3Pvv73vv70ozI7vv73vv73vv73vv71P77+977+977+977+9ETUXZRnvv70K77+9fWvvv73vv73vv70j77+9b++/vSYK77+9aF3vv73vv701Cu+/ve+/vUTvv70nWu+/vSVDXgHvv73vv73vv70o77+9RGvvv71k77+9K++/ve+/vVYTRe+/vWjvv70MeQXvv73vv71q77+977+9E++/ve+/ve+/vRdeFe+/ve+/ve+/vWrOriEKP0fvv73vv73vv73vv71rzq7vv73vv73vv73vv73vv71a77+9S++/ve+/ve+/vRbmiohoSu+/vR4577+977+9RlV/77+9cA0R77+977+9GO+/vUREEmPvv70TEUnvv70hT0QkMe+/vTwR77+977+9OO+/vSZAPRci77+977+9KVlE77+977+977+9HzPvv70DEO+/vQseEe+/vUTvv71+77+977+9AETvv71HRDLvv73vv70fBxzvv73vv73One+/vQ9+77+9A++/ve+/ve+/ve+/vVYsX++/vRxG77+9EQsXLu+/ve+/vWIJ77+9LSJW77+9LnhEJBPvv73vv71xQCHvv73vv73Rgc2bN++/vWbvv70577+977+977+977+9ISMjA2bvv70ZeXl52LJlS++/vUVG77+9aF3vv73vv71IJu+/ve+/ve+/vULvv73vv73vv70E77+9Fy9277+9VlNTA++/ve+/vQQA77+977+977+977+90aNHXX4J77+9JFoXPCLvv73vv73vv73vv73vv73vv70L77+9R++/vRzvv73vv707dzB777+9bO+/ve2Nje+/ve+/ve+/vXR3f3hsLBITE++/ve+/vdyMYcOGDe+/veempCTvv71bEu+/ve+/ve+/vcSESs60JAxNGu+/ve+/ve+/ve+/ve+/vVZLB++/ve+/vR4sMj7vv71p77+977+9CGtd77+9YF3vv71hXe+/vVFDXe+/ve+/ve+/vVDvv70VLO+/ve+/ve+/ve+/vWxGcXHvv73LtjFj77+977+977+977+926jvv73vv73vv73vv70N77+9EO+/vWgG77+9B0NT77+9be+/ve+/vWLvv73vv73vv70pHAvvv73vv73vv73vv73vv71/77+9bO+/vV1D77+9LlDGunzDunzvv73vv73vv70G0o/vv73vv71ve2k0MX3vv70c77+9G++/vUbvv70RRu+/ve+/vWXbnj1777+9Y++/vQ4sXO+/vdC5LTc3F++/vXbvv71Camoqbt26Be+/vV7vv73vv73vv70u77+977+977+9Q++/ve+/ve+/vVw4EREFzq/hmrzvv70877+977+977+9OR/vv70bNw5777+977+9BQAYDAZUVVVhxYoVOHjvv70gMjIyEBcXF++/vWrvv73vv73vv70nQe+/vRnvv73vv73vv70ARUVF77+977+977+9QlJSEkpLS++/ve+/vRZERDRAQQnvv70LFy4477+977+977+9au+/vX3vv73vv71g77+9WCIiChDvv714JSLvv70Y164ZAO+/vRcvIiLvv71k77+977+9DO+/vX7IvngREXkmS++/ve+/vXBNP2Rf77+977+977+9PO+/ve+/ve+/vTPvv73vv70h77+977+9RUTvv70sfe+/vSHvv70P77+9Fy8iIu+/vWTvv73vv70M77+9fsi+eBEReSZL77+977+977+9fjgu77+977+977+9CjsR77+9Ru+/ve+/vc+QH++/vSnvv71677+9fe+/vUQUOBnvv70+77+9a++/ve+/vSTGkCci77+9GEPvv73vv71IYgx5IiLvv70x5ImIJMaQJyLvv70Y77+9UO+/vSDDinNE77+9PDVlBUPvv70777+977+9OEdE77+9UltWcO+/ve+/vTvvv73vv704R0Tvv71SW1Yw77+9I8uKc0Tvv70s77+9ZQVD77+9O++/ve+/vThHRO+/vVJbVjDvv70jy4pzRO+/vSzvv71lBS/vv71+R++/vRXvv71IWWrvv70K77+9fA8y77+9OEdE77+9U1NWcO+/ve+/ve+/vUhiDHkiIu+/vTHkiYgkxpAnIu+/vRhD77+977+9SGIMeSIi77+9Re+/vRRKNe+/vSBHRO+/vRHvv73vv73vv71377+9NzY2Yu+/vcaNaGxs77+977+977+977+9UVpa77+977+9HnoI77+977+977+9WO+/vXYtGhoa77+977+977+977+977+977+9Mu+/vXTvv71g77+9HBDvv73vv70gR0Tvv70Q77+977+977+977+9cE1hYSHvv71P77+977+977+977+9Ku+/ve+/veaitO+/vRQAUFZW77+977+977+9DO+/ve+/vWbvv73vv73vv71hy5YtQSs2GNS277+9HBHvv71D77+9Zu+/vV8h77+977+93Iwv77+977+9AgsWLAAAzJs3Dy/vv73vv70CAO+/ve+/ve+/vQYm77+9CQDvv73vv73vv73vv73vv71H77+977+9Zu+/vQXvv73vv70gUO+/vQpyRO+/vQ7vv73vv70tfu+/vXxDQwMeeO+/vQHvv73vv73vv71g3rx5WO+/vXo177+977+977+9AO+/vR3vv71xDO+/ve+/ve+/ve+/vSIxMRHvv73vv73vv73vv73vv704QGpbQe+/ve+/ve+/vSFS77+977+977+9MXnvv73ZjO+/ve+/vWLvv71t77+9Ru+/vcK5c++/vWrvv70q77+9X++/vR5777+977+9QVFREXbvv73vv73vv73vv716IQQ077+977+977+9LklJSRzvv71zPe+/ve+/ve+/vdy/JDsd77+9e07vv71q77+9dm5L77+9G++/vSXvv73vv73vv73vv71WybrChXXvv73vv71177+9Ju+/ve+/vQpG77+9KFFX77+9EELvv73vv73vv71v77+977+9Bk8/77+9NO+/ve+/ve+/vQEAHR0d77+9PHkyTu+/vTrvv73vv73vv73vv71n2L17N++/vXo977+977+977+977+977+9H++/vRjvv73vv73vv70/77+9Z++/ve+/vWlq77+9De+/ve+/ve+/vQDvv71tIO+/ve+/ve+/ve+/ve+/ve+/vQrvv71A77+9CjXvv73vv70b77+977+9aO+/vSvvv71s77+9Lu+/vSbvv73Pk2Pvv71m14wcORJ677+9Hu+/ve+/ve+/vTAYDO+/veijj++/ve+/ve+/vQ4AMBgM77+977+977+9wooVK3Dvv73vv71BZGRkDDjvv71DRU0r77+9Ee+/vXpEYu+/ve+/vT3vv73vv70vf++/vQteeu+/vSXvv73vv73vv70rSExMRElJCQDvv73vv73vv70ARUVF77+977+977+9QlJS77+9c++/vQ0REe+/ve+/ve+/vSE/Zu+/vRjvv71j77+9Wu+/vRbbt28P77+9KCIiCg4ua0BEJDHvv708Ee+/ve+/vRjvv71ERBJj77+9ExFJ77+9IU9EJDHvv708Ee+/vcSkXk8+Eu+/vXYm77+977+9FO+/vTzvv70277+9I3VtZyLvv70+77+977+9I2nvv71rInVtZyLvv70+77+977+9I2lDPlLvv712Ju+/ve+/vRPvv70877+9Nu+/vSN1bWci77+9Pu+/ve+/vSNpQ37vv70hDe+/ve+/ve+/ve+/vVgN77+9Gu+/ve+/vVQREUXvv71w5pG0F14dFzM477+977+977+977+9Le+/vXkkbe+/vQPvv73vv73vv70zEUXvv71w5ZG077+9NURExJAnIu+/vRpD77+977+9SGIMeSIi77+9MeSJiCTGkCci77+9GEPvv73vv71IYlLMk3cs77+977+977+9akUyb3oiIhVROu+/vVQf77+9XFLvv73vv73vv70qFO+/ve+/ve+/ve+/vRouKUxEahXvv73vv71Sfe+/vXNJYSJS77+9UO+/ve+/vUPvv71LChPvv71a77+9Iu+/vVQf77+9XFLvv73vv73vv70qFO+/ve+/ve+/vQvvv70977+977+977+977+9GiJS77+9UO+/ve+/vUMe77+977+9S3jvv710Se+/vVjvv73vv71dDhHRgCnvv71f77+9H++/vSEiIu+/vRjvv71ERBJj77+9ExFJ77+9IU9EJO+/ve+/ve+/ve+/ve+/vcSE77+977+9SmFd77+9YV3vv71hXe+/ve+/ve+/ve+/ve+/vV4TI++/vRDvv70WRERE77+977+977+9NUREEmPvv70TEUnvv70hT0QkMe+/vTwR77+977+9GO+/vUREEmPvv70TEUnvv70hT0QkMe+/vTwR77+977+9GO+/vUREEu+/ve+/vWUNBu+/ve+/ve+/vQzvv70GDcKqVe+/vQAA77+977+977+9WO+/vXYtGhoa77+977+977+977+977+977+9Mu+/vXQ677+977+9CCHvv71177+9Vnzvv73vv71H77+9aDTYvHkzHn/vv73vv73vv73vv73vv73UhO+/vUvvv706H++/ve+/ve+/ve+/ve+/ve+/vQXvv71977+977+977+977+9Xu+/ve+/ve+/ve+/vWzvv70cORIAcO+/ve+/ve+/ve+/vXfvv70Jai3vv71VVlbvv73vv71XX0VKSgoAYNq0aVjvv71m77+977+9czo7O++/ve+/vS/vv73MmTMYPHgwSktL77+977+977+977+9N2zvv73vv73Xo++/ve+/vRg277+9DVrvv70Wf++/ve+/ve+/ve+/ve+/vQ/vv708J++/ve+/ve+/vX/vv71+bNu2DV1dXVjvv714MRYuXO+/ve+/ve+/ve+/ve+/vXjvv73vv70X77+977+93o7vv73vv70M77+977+977+9y4jvv71V77+9K++/ve+/ve+/ve+/vWw2AwAMBgMKCwvvv73vv71/77+977+9Bxg6dCgA77+977+9P++/ve+/vVvvv71K77+977+9L37vv73vv73vv71mZxts2rQJEydOdO+/vQ9He++/vdmzB++/ve+/ve+/ve+/ve+/ve+/vX7vv73vv73vv71c77+977+9D39wbgtl77+93b59GwsWLO+/ve+/ve+/ve+/ve+/ve+/vUMP77+977+977+9Du+/ve+/vcWwWu+/vTAa77+9bn0RAO+/vV3vv73vv71177+91qHvv73vv70JDz/vv70wSktLce+/ve+/ve+/ve+/ve+/vUJFWltb77+977+977+977+9xYQJE++/veuvv++/ve+/ve+/ve+/ve+/vS/vv70dO3YIIe+/ve+/ve+/ve+/vRQFBQVu77+9Ne+/ve+/ve+/vde/77+977+977+977+977+9Fu+/vS5dEjNm77+9EDbvv71N77+9Wu+/ve+/ve+/vcWz77+9Pivvv73vv73vv73ntq/vv73vv71a77+977+977+977+9V++/vT3ZtGnvv73Yv39/77+977+9ee+/ve+/ve+/ve+/vXUdP35c77+977+977+9KV7vv73vv73vv73vv73vv73vv73vv73vv70QQu+/vdmzR++/vVjvv73vv73vv70577+9bO+/vRs3bu+/ve+/vdOn77+977+977+9Fu+/ve+/ve+/vS5MJu+/ve+/vXjvv73vv71z77+977+977+977+9Z++/vX0m77+9EGLvv73vv73vv71i165d77+977+977+96aef77+9Z++/vXlGWO+/vVbvv73vv73vv70pFi1aJA4dOu+/ve+/ve+/ve+/vXzvv71/77+9S++/vTo877+977+977+977+9P++/vWnvv719Ke+/ve+/ve+/vduXX34pZsyYIe+/ve+/ve+/vVzvv73vv73vv73vv70+77+977+9c++/ve+/ve+/vS3vv73vv73vv71FQ0Pvv73vv73vv73vv70QBu+/vUF877+977+9N++/vWbvv73vv73vv71L77+977+977+977+9Gu+/ve+/vS1f77+9XBw4cEAIIUR5ee+/vdi6de+/vV/vr6rvv70jR++/vWDvv73vv73vv73vv73vv70vf+myve+/ve+/vQYm77+9CQDvv73vv73vv73vv73vv71H77+977+9Zu+/ve+/vTzvv73vv73vv70W77+977+977+977+9aDR477+977+9MXzvv71w77+9M++/vWDvv73vv73vv70PcO+/vT3vv70477+977+977+977+977+977+9N++/ve+/ve+/vUvvv73vv73vv71i0aJF77+9cO+/vWJ177+9fO+/ve+/ve+/vUrvv71MJu+/vV3vv70W77+977+977+9f92eU1NT77+977+977+9HADvv73vv71+77+9IzQ3N++/vdq1a++/ve+/ve+/ve+/vdmJ77+977+9Au+/vR8/HgAwbu+/vThc77+9fu+/vWPvv73vv71q77+977+977+9Okzvv708GVrvv70WQ++/vQzvv73vv71Z77+9UF1d77+977+9f++/ve+/vVXcuXMH77+9Jk0CAMydO++/vWXvv70SdDod77+977+977+9EB8f77+977+977+9OO+/ve+/ve+/ve+/vX0uZ86c77+977+9HTtgMu+/ve+/vWnvv70mWO+/vVZFa3Lvv71077+9EgBg77+90qXvv73vv73vv71xOXsG77+977+9Xu+/ve+/ve+/vX/EmjVr77+977+977+977+9PVRt77+977+977+977+9HS/vv73vv70SUlNTAQDvv71P77+9xqhR77+9MGLvv70I77+977+977+977+9ZDLvv73vv73vv73vv71mw4kTJzBr77+9LADvv73vv73vv73vv71Cfs6cOVjvv718OQYNGuSyve+/ve+/ve+/vTk8Exsb77+977+977+9RDQ3N++/vT3vv73vv73vv73vv73djnPvv73vv70NRe+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vQTvv73vv73koLLvv70S77+977+91a/vv71y77+9SnR2dipS77+977+9Tu+/ve+/vW9+77+9G++/vdu3D8OHD8emTe+/vdye07MdHe+/vVHvv73vv70AID4+Hu+/ve+/ve+/vQAA77+93Y7vv73vv71yPO+/ve+/vVNu77+9C2V777+9bu+/ve+/ve+/vVTcvHnvv73vv71+77+9Tu+/vV8JY8eOde+/ve+/ve+/vcuXYTbvv71hMBjvv73vv73vv73vv73vv73vv73oo49i3bp177+977+977+9RGtrK++/vXjvv70NRWtyaG1txZQpU++/vde/77+9FRUVFXjvv73vv73vv73pp58677+977+977+977+9eu+/ve+/ve+/vcOdO3dgNBpd77+977+977+9zbZs2YLvv73vv70M77+977+977+977+9MQBoaWlBYmLvv71zWCvvv71277+977+9MXnvv73ZjO+/ve+/vWLvv71tY8aMQUVFxYBeL++/ve+/vUbvv73vv73vv73vv71u77+9IyYm77+977+977+9BO+/vcaPP++/vRjvv71H77+9xrhx77+9PO+/ve+/vXEtAe+/vTvvv73vv73qq6/vv73SpUvvv70z77+9QAzvv73vv70tW++/vRkzZu+/ve+/vVYIEe+/vTYaaF3vv73vv73vv70oKipCV1cX77+977+977+977+9Xu+/vWR777+977+977+9OO+/ve+/ve+/ve+/ve+/vUrvv71477+9Iu+/ve+/ve+/vVFYWO+/vdGjRzvvv73vv71777+9eOutt++/ve+/ve+/vS5d77+9DRs2eBzvv70N77+977+9HnsM77+9Pe+/ve+/ve+/ve+/ve+/ve+/ve+/vVFbW++/vSfvv718EkB477+9CwDvv71777+9Pe+/ve+/ve+/ve+/ve+/ve+/vUDvv73vv73vv702f++/vS0iQ++/vWg077+977+977+977+9S2pqKm7dugXvv71e77+977+977+9Lu+/ve+/ve+/vUPvv73VujxH77+916Pvv73vv73vv73vv73vv73WrVsuZ++/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vdqdO3ciOzsb77+977+9dx/vv73vv70faO+/vS5Eee+/ve+/ve+/ve+/vQ0VFRVY77+9ZO+/ve+/ve+/vXrvv701BADDhg1DY2Pvv73vv70CZ++/vW3vv71fXe+/ve+/vTPvv73vv717Dlrvv70W27ZtQ1xc77+977+9c++/vWzvv73vv73vv716PU7vv70877+9fGzvv71YXO+/vUDvv73vv73vv71i77+9OB8H77+977+977+9Ul9f77+91atXY8OGDe+/ve+/ve+/vXLvv71377+977+9Ne+/ve+/ve+/vWHvv73vv73vv70A77+9be+/ve+/vU7vv708Ce+/vc2GKVPvv714fO+/vXDvv70XcHc477+9xIkTKCkpce+/vRfvv70277+977+9Ju+/ve+/vTEASE5ORltbG++/ve+/ve+/vTFo77+9IO+/ve+/vRkoVQ3vv714YzAYUFVVBQA4eO+/vSAyMjLvv73vv71i77+91KnYv38/77+977+977+9ce+/ve+/vRVc77+9fBk/77+977+9DxXvv73vv73vv73vv70/d++/ve+/vRMnTu+/ve+/ve+/ve+/vQcAHD9+HHbvv70dY8aMUe+/vRYAGDJkCO+/vX7vv71t77+9OnUKAO+/ve+/ve+/vXo877+9NxgM2Lt3L++/ve+/ve+/vTchIQEPPO+/ve+/vWJ1Ae+/ve+/vXXvv70wau+/vSjvv73vv73vv70hPj7vv73vv71zQu+/vV5PPO+/vQTvv70dO++/ve+/ve+/vWZ0dHTvv73QoUPvv706de+/vXPvv73vv70PPu+/ve+/ve+/vQTvv73vv73vv70DAO+/ve+/ve+/ve+/vV8J169f77+9ypUrUVpa77+9Fu+/vQAweO+/vWDvv73vv73vv70raGho77+9EALvv71277+977+977+977+9Ku+/ve+/ve+/vQ1b77+9bu+/ve+/vWrvv73vv73bt1FZWe+/ve+/ve+/ve+/vWgv77+9CxcuYO+/ve+/ve+/vRgyZO+/vdu+cO+/ve+/vcSJE++/ve+/ve+/vV/vv73KlSvvv73vv73vv73GgQMH77+977+9JC4uDhkZGTh477+9IADvv73vv73vv73vv73vv71277+977+9cm3vv73vv73vv73vv73vv70u77+9a1paWkR+fu+/ve+/ve+/ve+/vRTvv70877+9aGhoEEIIce+/ve+/vWHvv71h77+9BiHvv73vv71ZACUlJSIzM1NkZmbvv73vv70/77+9WO+/ve+/vSZM77+9IO+/vdy577+9be+/ve+/vd2i77+977+9TAhxdwbHkiVLRFZW77+977+9O3fvv71zdu+/ve+/vU7vv704Ie+/vcyZI2bPni1W77+9WCFaW1vvv73vv71z77+9KCwsFO+/ve+/ve+/vWLOnDnvv73MmTPvv73vv71077+977+9We+/ve+/vX1PZGZm77+977+977+9HO+/ve+/ve+/vSPvv70tW++/vVZX77+977+9a9++fSIrK0vMnDlT77+977+977+9Qggh77+9LVsmTu+/vT4t77+9EO+/ve+/ve+/ve+/vWLevHli1qxZ4re/77+977+977+9Wu+/ve+/vdazee+/vWYxae+/vSRnG++/ve+/ve+/vd27d++/ve+/vVRdXe+/ve+/ve+/ve+/ve+/vUjvv716eu+/ve+/ve+/ve+/ve+/vdmz77+9zJkzRUVF77+9ECLvv73vv73vv73vv73vv71/77+9Q++/ve+/ve+/vQsu77+977+977+9ZtOnT3dmU11d77+9MO+/vUxi77+9zJliy5Yt77+9bu+/vQsh77+92LBh77+9OHzvv73vv70QQu+/vW/vv73vv71WPO+/ve+/ve+/vWg077+977+9S++/ve+/ve+/ve+/ve+/vT9+77+9L++/vRnvv73vv71IYlIM77+9EBHvv71nDHkiIu+/vTHkiYgkxpAnIu+/vRhD77+977+9SGIMeSIi77+9MeSJiCTGkCci77+977+977+9A3jvv73vv73VvO+/vRPvv70AAAAASUVORO+/vUJg77+9", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "x = np.linspace(-10, 10, num=50)\n", - "y = -x ** 2 + 25\n", - "plt.scatter(x, y)\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "source": [], "outputs": [], - "source": [] + "metadata": {} }, { "cell_type": "code", "execution_count": 133, - "metadata": {}, - "outputs": [], "source": [ "# LogSpace\n", "# LogSpace returns even spaced numbers on a log scale. Logspace has the same parameters as np.linspace.\n" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 134, - "metadata": {}, + "source": [ + "# Syntax:\n", + "\n", + "# numpy.logspace(start, stop, num, endpoint)\n", + "\n", + "np.logspace(2, 4.0, num=4)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([ 100. , 464.15888336, 2154.43469003, 10000. ])" ] }, - "execution_count": 134, "metadata": {}, - "output_type": "execute_result" + "execution_count": 134 } ], - "source": [ - "# Syntax:\n", - "\n", - "# numpy.logspace(start, stop, num, endpoint)\n", - "\n", - "np.logspace(2, 4.0, num=4)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 135, - "metadata": {}, - "outputs": [], "source": [ "# to check the size of an array\n", "x = np.array([1,2,3], dtype=np.complex128)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 136, - "metadata": {}, + "source": [ + "x" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([1.+0.j, 2.+0.j, 3.+0.j])" ] }, - "execution_count": 136, "metadata": {}, - "output_type": "execute_result" + "execution_count": 136 } ], - "source": [ - "x" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 137, - "metadata": {}, + "source": [ + "x.itemsize" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "16" ] }, - "execution_count": 137, "metadata": {}, - "output_type": "execute_result" + "execution_count": 137 } ], - "source": [ - "x.itemsize" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## NumPy Statistical Functions with Example\n", "NumPy has quite useful statistical functions for finding minimum, maximum, mean, median, percentile,standard deviation and variance, etc from the given elements in the array. The functions are explained as follows − Statistical function Numpy is equipped with the robust statistical function as listed below\n", @@ -3861,54 +3860,58 @@ "# A set of age of students in python class\n", "\n", "data = [19, 20, 22, 33, 45, 60, 25, 24, 40, 20, 15, 22, 24, 26, 26, 28, 27, 24, 35, 40, 40, 24, 38, 40, 28, 23] " - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 138, - "metadata": {}, + "source": [ + "np.random.random()" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "0.7506861412184562" ] }, - "execution_count": 138, "metadata": {}, - "output_type": "execute_result" + "execution_count": 138 } ], - "source": [ - "np.random.random()" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 139, - "metadata": {}, + "source": [ + "np.random.random(3)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([0.60783067, 0.32504723, 0.03842543])" ] }, - "execution_count": 139, "metadata": {}, - "output_type": "execute_result" + "execution_count": 139 } ], - "source": [ - "np.random.random(3)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 140, - "metadata": {}, + "source": [ + "np.random.randint(5, 10, (3, 4)) # does not inlcued the last value [5, 10)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[8, 9, 9, 9],\n", @@ -3916,41 +3919,41 @@ " [5, 9, 8, 7]])" ] }, - "execution_count": 140, "metadata": {}, - "output_type": "execute_result" + "execution_count": 140 } ], - "source": [ - "np.random.randint(5, 10, (3, 4)) # does not inlcued the last value [5, 10)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 141, - "metadata": {}, + "source": [ + "np.random.normal(0, 2, 5)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([-1.79093312, 0.773805 , -1.02161028, -2.36126437, -0.05636446])" ] }, - "execution_count": 141, "metadata": {}, - "output_type": "execute_result" + "execution_count": 141 } ], - "source": [ - "np.random.normal(0, 2, 5)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 142, - "metadata": {}, + "source": [ + "np.random.normal(0, 2, (3, 4)) # mean = 0, stdev = 2, 3 x 4 array" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[ 0.85666374, 0.13303444, 0.6049438 , -1.26864419],\n", @@ -3958,23 +3961,34 @@ " [-3.4525652 , 0.35485228, -0.80356187, -3.26039669]])" ] }, - "execution_count": 142, "metadata": {}, - "output_type": "execute_result" + "execution_count": 142 } ], - "source": [ - "np.random.normal(0, 2, (3, 4)) # mean = 0, stdev = 2, 3 x 4 array" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 143, - "metadata": {}, + "source": [ + "from scipy import stats\n", + "np_normal_dis = np.random.normal(5, 0.5, 100)\n", + "np_normal_dis\n", + "## min, max, mean, median, sd\n", + "print('min: ', two_dim_arr.min())\n", + "print('max: ', two_dim_arr.max())\n", + "print('25th percentile', np.percentile(two_dim_arr, 25))\n", + "print('50th percentile', np.percentile(two_dim_arr, 50))\n", + "print('75th percentile', np.percentile(two_dim_arr, 75))\n", + "print('mean: ',round(two_dim_arr.mean(), 2))\n", + "print('mode: ', stats.mode(two_dim_arr)) # numpy has no mode method\n", + "print('median: ', np.median(two_dim_arr))\n", + "print('sd: ', round(two_dim_arr.std(), 2))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "min: 1\n", "max: 55\n", @@ -3988,30 +4002,23 @@ ] } ], - "source": [ - "from scipy import stats\n", - "np_normal_dis = np.random.normal(5, 0.5, 100)\n", - "np_normal_dis\n", - "## min, max, mean, median, sd\n", - "print('min: ', two_dim_arr.min())\n", - "print('max: ', two_dim_arr.max())\n", - "print('25th percentile', np.percentile(two_dim_arr, 25))\n", - "print('50th percentile', np.percentile(two_dim_arr, 50))\n", - "print('75th percentile', np.percentile(two_dim_arr, 75))\n", - "print('mean: ',round(two_dim_arr.mean(), 2))\n", - "print('mode: ', stats.mode(two_dim_arr)) # numpy has no mode method\n", - "print('median: ', np.median(two_dim_arr))\n", - "print('sd: ', round(two_dim_arr.std(), 2))" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 144, - "metadata": {}, + "source": [ + "print(two_dim_arr)\n", + "print('Column with minimum: ', np.amin(two_dim_arr, axis=0))\n", + "print('Column with maximum: ', np.amax(two_dim_arr, axis=0))\n", + "print('=== Row ==')\n", + "print('Row with minimum: ', np.amin(two_dim_arr, axis=1))\n", + "print('Row with maximum: ', np.amax(two_dim_arr, axis=1))" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[ 1 2 3]\n", " [ 4 55 44]\n", @@ -4024,36 +4031,18 @@ ] } ], - "source": [ - "print(two_dim_arr)\n", - "print('Column with minimum: ', np.amin(two_dim_arr, axis=0))\n", - "print('Column with maximum: ', np.amax(two_dim_arr, axis=0))\n", - "print('=== Row ==')\n", - "print('Row with minimum: ', np.amin(two_dim_arr, axis=1))\n", - "print('Row with maximum: ', np.amax(two_dim_arr, axis=1))" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## How to create repeating sequences?" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 145, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tile: [1 2 3 1 2 3 1 2 3]\n", - "Repeat: [1 1 1 2 2 2 3 3 3]\n" - ] - } - ], "source": [ "a = [1,2,3]\n", "\n", @@ -4062,26 +4051,22 @@ "\n", "# Repeat each element of 'a' two times\n", "print('Repeat: ', np.repeat(a, 3))" - ] - }, - { - "cell_type": "code", - "execution_count": 146, - "metadata": {}, + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ - "min: 3.4769284726000365\n", - "max: 6.58548738664509\n", - "mean: 4.9757236255377535\n", - "median: 4.974828091188378\n", - "mode: ModeResult(mode=array([3.47692847]), count=array([1]))\n", - "sd: 0.4859817987330746\n" + "Tile: [1 2 3 1 2 3 1 2 3]\n", + "Repeat: [1 1 1 2 2 2 3 3 3]\n" ] } ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 146, "source": [ "from scipy import stats\n", "np_normal_dis = np.random.normal(5, 0.5, 1000) # mean, standard deviation, number of samples\n", @@ -4093,64 +4078,77 @@ "print('median: ', np.median(np_normal_dis))\n", "print('mode: ', stats.mode(np_normal_dis))\n", "print('sd: ', np.std(np_normal_dis))" - ] + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "min: 3.4769284726000365\n", + "max: 6.58548738664509\n", + "mean: 4.9757236255377535\n", + "median: 4.974828091188378\n", + "mode: ModeResult(mode=array([3.47692847]), count=array([1]))\n", + "sd: 0.4859817987330746\n" + ] + } + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 147, - "metadata": {}, + "source": [ + "plt.hist(np_normal_dis, color=\"grey\", bins=30)\n", + "plt.show()" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAABeQAAAO+/vQgGAAAA77+9DO+/vVoAAAA5dEVYdFNvZnR3YXJlAE1hdHBsb3RsaWIgdmVyc2lvbjMuMy4yLCBodHRwczovL21hdHBsb3RsaWIub3JnLy/vv70RCwAAAAlwSFlzAAALEwAACxMBAO+/ve+/vRgAABQiSURBVHjvv73vv73vv71/bO+/vXUd77+977+977+9de+/ve+/vQYb1ZU7Ru+/vWki77+9YO+/vXZGFO+/vS3vv70zWDrvv71zSWnvv70mESMhMO+/ve+/vdaI77+90qwpCnbvv73vv71077+9VWIIRO+/ve+/ve+/vVZa77+9ekDvv70277+9ayTvv73GpjLvv73vv73vv73vv71c77+977+9QO+/vW7vv71de++/ve+/vQ/vv71J77+977+9d++/ve+/vW9777+977+977+977+977+977+977+977+977+977+977+977+977+977+977+9Pu+/ve+/vU8977+9ZVkCABjvv73vv73vv70FAAAWDyEPAAYj77+9Ae+/vWDvv708ABjvv73vv70HAO+/vRHvv70AYDBCHgAM77+9LXYBF3rrrbNK77+9C++/vXXvv73vv71q77+9Jifvv70d77+977+9OO+/vd6D77+977+977+9VO+/ve+/ve+/ve+/ve+/vTx677+977+977+977+977+977+977+9C++/vXTvv70qOO+/ve+/vT3vv73bue+/vQfvv73vv70v77+9Q++/ve+/vQfvv73vv73vv70BAO+/vRHvv70AYDBCHgAMRu+/vQPvv73vv70IeQAwGCEPAAYj77+9Ae+/vWAld++/vTzvv73vv70qKyvvv73vv73vv70u77+977+977+9XyNJSibvv73vv73vv71KLFVZ77+9Y3IK77+977+977+9aW3dulU/77+977+977+9dO+/ve+/ve+/vSsW77+977+9Bz/vv73vv70S77+977+9Nm/erO+/ve+/vVZJ0rFj77+977+977+9Qw/vv73vv73Zs++/ve+/vVvvv73vv73vv70p77+977+9f0dQ77+9fD7vv706Ozvvv73vv73vv73vv73vv70h77+977+977+977+9ZO+/ve+/ve+/ve+/vV/vv73vv71t27ZpbGxM77+9dO+/ve+/vXnvv73vv73vv73vv73vv73vv71bAwMDGh0d77+977+90JAk77+977+9Bx/Url3vv73vv73vv73vv73vv73Lsizvv73fv39R77+9BwAsLGvvv73vv73fv18dHR0KBALvv73vv73vv73vv70R77+977+91Kjvv73vv71aXu+/vVfvv71wWO+/vWhUJ07vv73vv73vv73vv73vv71+77+9eklSU1Pvv73vv73vv73vv70WDwBYWNa577+9Rx55ZO+/ve+/vVPvv71O77+977+977+9Zx4HAgFNTExc77+977+977+977+977+977+977+9RO+/vQVVVe+/ve+/ve+/ve+/ve+/ve+/vXfvv71S77+977+977+9Pe+/ve+/ve+/vQvvv73vv70f77+977+977+9Xu+/vWBf77+9E++/ve+/vXRaHu+/vSfvv73Ysix5PO+/ve+/vT7vv73vv73vv73vv73vv70X77+977+977+977+9KB4/U++/vTHvv73vv73vv70977+977+977+9fF54bu+/ve+/vUJuGe+/ve+/ve+/ve+/ve+/ve+/ve+/vTwLXhzvv719C++/vXXvv70U77+977+9M++/ve+/ve+/vQLvv73vv71Fz7/vv73vv70b77+9KR4AQHHvv70d8rW1tTp+77+977+977+977+9x5VK77+977+977+936/vv73vv706XXfvv71177+977+977+977+90aNHJUnvv73vv73vv73vv73vv73vv71z77+9YABA77+98p6uqe+/ve+/vVBXV++/vVpaWu+/vUgkVF9f77+977+977+9Rknvv71j77+9Pe+/ve+/ve+/vXZNT0/vv73vv71v77+9Pe+/ve+/ve+/vXjvv70A77+977+977+9HPKDg4Pvv73vv70OBu+/ve+/ve+/ve+/vWjvv73vv71u77+9Se+/vT7vv73vv70z77+9AQAKxrIGAGAwQh4ADEbvv70D77+977+9CHkAMBghDwAGI++/vQHvv71g77+9PAAY77+977+9BwDvv70R77+9AGAwQh4ADEbvv70D77+977+9CHkAMBghDwAGI++/vQHvv71g77+9PAAY77+977+9BwDvv70R77+9AGAwQh4ADEbvv70D77+977+977+977+9Q++/vQAWVllZIe+/vc+Xde+/vWQy77+977+977+977+9ElTvv73ljJAHHO+/ve+/ve+/ve+/ve+/vdmZde+/ve+/ve+/vQ5J77+9PBYX77+9NQBgMEIeAAxG77+9A++/ve+/vQh5ADAYH++/ve+/vVXvv71zBe+/vQ8hD1fvv73vv70VID9M77+9AO+/ve+/vQh5ADAYIQ8ABiPvv70B77+9YAXvv718b2/vv71C77+977+9Qu+/ve+/vXbvv73vv70tSe+/ve+/vWIK77+977+9amhoUCQSce+/vUgA77+9Pe+/vUN+ZmZG77+9PO+/vX7vv71p77+977+977+977+9yJEjGhwcVFtb77+977+977+977+9NTAw77+977+977+9UQ0NDTlZLwAgD++/vUM+77+9Sinvv71Oa2ZmRnNzc++/ve+/ve+/ve+/ve+/vdWrVVNT77+977+977+9annvv71e77+977+9YUXvv71RJ++/vQUA77+977+977+9fe+/vVfvv73vv73Xv++/vXVt3rxZ77+9Vu+/ve+/ve+/vT/vv71x77+9OnVKfu+/vT/vv71PIBDvv73vv73EhCPvv70CAO+/vWc777+977+977+977+977+977+977+977+977+977+977+9H++/ve+/vTVr77+977+9W++/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vXgy77+9WO+/vTXvv71xLu+/ve+/vVbvv70taR7vv71/77+9I++/vSkm77+977+9UO+/ve+/ve+/vTzvv73vv73vv73cou+/ve+/vRQ/77+9Yu+/ve+/vRPvv73vv70+77+9IX/vv73vv71hBe+/vUFVVVVJ77+977+977+977+977+977+9E09oxYoV77+9fe+/ve+/vQLvv71AXsed77+977+9Vjpt77+9LUvvv707P++/vXjvv71MQe+/vSg277+977+977+9WO+/ve+/ve+/vULvv73vv73vv73vv70e77+977+977+977+977+9TVvvv73vv71v77+977+9Zu+/ve+/ve+/ve+/ve+/vUcSPWRTVu+/vVnvv73vv73vv73vv73vv73vv71NN92kWCzvv71z77+977+9ybIsDQ4O77+977+977+9VsePH++/ve+/ve+/ve+/vVLvv73vv73vv73vv73vv71VV1dn77+9FADvv70C2b7vv73fuHHvv71efe+/vVU1NTXvv73vv73vv71cH++/ve+/ve+/ve+/ve+/vdKiDRs277+977+977+9Re+/vURC77+977+977+9amxsdO+/vV4AQB4KWu+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vT/vv71gMO+/ve+/ve+/ve+/ve+/ve+/vQIAOO+/vW/vv70C77+977+9CHkAMBghDwAGI++/vQHvv71g77+9PAAY77+977+9BwDvv70R77+9AGAwQh4ADEbvv70D77+977+9CHkAMBghDwAGK2jvv70a77+9VC3vv73vv73vv73vv70Q77+9MFLvv73vv73vv73vv70777+9Rkzvv70A77+977+9CHkAMBghDwAGI++/vQHvv71g77+9PAAY77+977+9BwDvv70R77+9AGAwQh4ADEbvv70D77+977+9CHkAMBghDwAGI++/vQHvv71g77+9PAAY77+977+9BwDvv73vv73vv70wFlVlZe+/vXw+X++/ve+/vWZnZ1VeXu+/vQQVAe+/vQsh77+9Re+/ve+/ve+/vXJe153vv73vv70B77+9MV0DAAYj77+9Ae+/vWDvv708ABjvv73vv73vv70fHBxUU1Pvv702b96s77+9f++/ve+/ve+/ve+/vVgs77+9cDjvv73vv73vv70GRSIRR++/vQQA77+9Yzvvv71ff++/vXV1dHTvv73vv73vv71bfX19eu+/ve+/vVc1NDTvv73vv73vv702dXd3a2BgQO+/ve+/ve+/vRoaGnLvv71eAEAebO+/ve+/ve+/vS/vv73vv70777+9Q++/vdatU3l577+9Iu+/ve+/vVbvv71a77+977+977+9GlVXV++/ve+/ve+/vSocDisa77+9OlkvACAP77+9b++/vRwfH1d5ee+/ve+/vW/fru+/vSdP77+905/vv73vv71u77+977+9Ru+/ve+/ve+/ve+/vT7vv71AQBMTE3kd77+977+9au+/vd2S77+977+977+977+9OHLvv71icnsPbu+/vX8pLO+/ve+/vciEce+/vQfvv71s77+9fCrvv73SkSNH77+977+977+9T++/vSvvv73vv71X77+977+9Fe+/vVzvv71SHu+/vSfvv73vv71lWe+/vR7vv71icnJa77+9Ze+/vSxJ77+977+9MO+/ve+/vTMFHe+/ve+/ve+/ve+/vcO777+977+977+977+9XEzvv70977+9bu+/vT3vv73vv70h77+977+9Ms+CF8e2Q++/veqrr1YwGO+/vdq1ayVJ77+977+9du+/ve+/vdGoVu+/vVjvv73vv70nHu+/vSsQCO+/vT0FAO+/vUDvv73vv73vv703bdqkw4cP77+977+977+977+9Su+/vVJ66aWX77+977+92Kjvv73Hj2t8fFzvv71USu+/ve+/ve+/ve+/ve+/ve+/vXPvv71eAEAebF/vv73vv73vv73vv73vv73vv73vv73vv70X77+977+9Be+/ve+/ve+/vWrDhg3atm3vv70+77+977+9D++/ve+/ve+/vUXvv71EQu+/ve+/ve+/vWpsbHTvv71eAEAeClrvv73vv73vv73vv71Z77+977+977+977+9Cwbvv73vv73vv73vv70r77+9KADvv73vv73vv70ib++/vWRSU1Pvv70l77+9CG7vv70CZUDvv73vv71n77+9N++/ve+/ve+/vXzvv708UCRzc3Pvv71977+9RUfvv70DRe+/ve+/vXpZXhnvv73vv70F77+9AO+/vWDvv708ABjvv73vv70HAO+/vRHvv70AYDBCHgAMRu+/vQPvv73vv70IeQAwGCEPAAYj77+9Ae+/vWDvv708ABjvv71lDQBDXG4t77+9C++/vWPvv73vv73lhZAHDO+/ve+/vVo477+977+9cu+/vXQNABjvv73vv70HAO+/vRHvv70AYDBCHgAMRu+/vQPvv73vv70IeQAwGO+/vVDClu+/ve+/vQrvv71877+9Be+/ve+/ve+/vQLvv71H77+977+9Fu+/ve+/ve+/ve+/vScFXO+/ve+/vRoAMBghDwAGI++/vQHvv71g77+9PAAY77+977+9BwDvv70R77+9AGAwQh4ADEbvv70D77+977+9HAnvv73du3dr77+9zp3vv73vv71YLO+/vXA477+977+977+9BkUiEScODwDvv73vv73vv73vv70fHh5WT0/vv70k77+977+977+977+9amtrU3d377+9BgYGNDo677+977+977+977+977+977+9BADvv71TUMi/77+977+924pEItq+fe+/vSRpZGRENTU177+977+977+977+977+977+9VTgcVjQade+/vVAAQO+/vQoK77+9Xe+/vXbvv73vv73vv71VV11177+9JO+/vdSpU++/ve+/ve+/ve+/ve+/vUBAExMT77+9VQgA77+977+977+9AmUHDhzQte+/vV7vv71gMO+/vUPvv70OSe+/ve+/ve+/vTweT2Yfy7Lvv70977+9RVXvv71q77+9Je+/vWPvv70K77+9Ju+/ve+/ve+/ve+/vS3vv73vv717Ke+/ve+/ve+/vXbvv70PDAwoHu+/vWvLli3vv73vv73vv73SuXPvv71077+977+9Ce+/vVjvv70i77+9TzweVyAQ77+967iT77+977+9Su+/vS3vv71lSXrvv70Z77+977+9Ke+/vRjvv71W77+9Pe+/ve+/vVvvv71K77+9d++/vULvv73vv71a77+977+9Yu+/vVBW77+9We+/ve+/ve+/vXbvv70/77+95JOZ77+9PnTvv71eee+/vRV1dnbvv73vv73vv71B77+977+977+977+977+977+977+977+9368777+977+977+9KQAABXJ0Pe+/ve+/ve+/vQp1dXXvv73vv73vv71F77+9RELvv73vv73vv71qbGx077+9FADvv708OBLvv71NTU1qamrvv70kBe+/vUHvv73vv73vv705cVgAQO+/ve+/ve+/vSsAGO+/ve+/vQcA77+9Ee+/vQBgMEIeAAxG77+9A++/ve+/vQh5ADAYIQ8ABiPvv70B77+9YO+/vTwAGO+/ve+/vWUN77+9bu+/ve+/vRXvv73vv71877+9LgPvv73vv70IeWTvv718PnV2du+/vW9HR++/vSJXA++/vQlM77+9AO+/ve+/vQh5ADAYIQ8ABiPvv70B77+9YO+/vTwAGO+/ve+/vQcA77+9cQsl77+977+977+977+977+977+977+92JPJpO+/ve+/vRJLUBEWEyEPLDNe77+9N++/ve+/vUPvv73vv71dCELvv73vv70IeQDvv73vv70V77+9GQh5AO+/ve+/vRXvv70ZCO+/vWXvv701ae+/veWLkF8Gcl3vv73vv73vv71oAO+/vXALJQAY77+977+9BwDvv70R77+9AGAw77+977+9Xe+/vQ9UAWRDyLsYH++/vQLIhu+/vQdQ77+9XO+/vTQl77+9xaliIO+/vQEUJO+/vS9NSXxx77+9GO+/ve+/vRUADEbvv70D77+977+9Cgrvv71977+977+9KRQKKRQKac+ePe+/ve+/vVgs77+9cDjvv73vv73vv70GRSIRR++/vQQA77+9Yzvvv71j77+977+9Dh8+77+977+977+9Hj3vv73vv71z77+977+977+977+977+977+977+9fu+/ve+/ve+/ve+/ve+/ve+/vVsDAwMaHR3vv73vv73QkO+/ve+/vQIA77+9YDvvv73vv71+77+9du+/ve+/vSnvv73Pp++/ve+/vXLvv71w77+9DRobG1NNTe+/ve+/ve+/ve+/ve+/ve+/vXoVDu+/vRXvv71G77+977+9FwDvv70H77+9IX/vv703au+/ve+/ve+/ve+/ve+/ve+/ve+/vTHvv73vv71377+977+977+977+977+977+977+977+9EwgENDExUXDvv70AAHsK77+977+977+977+977+977+9Hnjvv70Bfe+/ve+/ve+/vdaKFSs0Njbvv73vv71mWe+/vTweT17Hq++/vVpdaEnvv73vv73vv71977+977+9zIQe77+9C++/ve+/ve+/vTbvv71Q77+9HgoK77+977+9R++/vWrHjh1qa2tTKBTvv70r77+977+977+9eDzvv73vv70e77+977+9FQgE77+9Ou+/ve+/ve+/ve+/vWnvv73vv73vv73vv73vv73vv71RPH7vv73vv71jFFsuPe+/ve+/ve+/ve+/ve+/vSfvv73vv73vv71yeT3vv71VVu+/vVnvv73vv73vv73vv71077+9yZMn77+91a9+Ve+/vT3vv73vv71C77+977+9JO+/ve+/ve+/vVbHjx/vv73vv73vv73vv71S77+977+977+977+977+9VVdXZ++/vRQA77+9Atm+77+9f++/vSfvv71IJO+/ve+/vdWVeW7vv73Wre+/ve+/ve+/vVJLS++/vRLvv73vv73vv73vv73vv73vv73vv73vv73vv71I77+9AO+/ve+/ve+/vQ7vv73vv73vv71277+977+977+9X3JbX1/vv73vv70AAO+/ve+/vRvvv70AYDBCHgAMRu+/vQPvv73vv70IeQAwGCEPAAYj77+9Ae+/vWDvv708ABjvv73vv70HAO+/vRHvv70AYDBCHgAMRu+/vQPvv73vv70IeQAwGCEPAAYr77+9L0Pvv71577+977+9Fe+/ve+/ve+/vSAACkfIlyDvv73Pp++/ve+/vc6s77+9dXR0LEE1ANyM77+9GgAwGCEPAAZj77+9BkDJqe+/ve+/ve+/ve+/ve+/ve+/vTzvv73vv73vv71T77+9ZFJTU++/ve+/vSrLlQh5ACUn77+9z6UI77+977+9EO+/vQ7vv73vv73vv71y77+977+977+9cjc3N++/vV1jS++/ve+/vXcAVx1Abu+/vV4vd++/vS0xQh7vv71r77+977+977+9YDnvv73vv70m77+9Ae+/vVZ+77+9DAh5LDLvv70jASw1Qn4JMR8JYO+/vS3vv73vv73vv73vv71OGGl577+977+9ASZZ77+9c++/ve+/vS7vv71z77+9E0Za77+977+9eO+/vUnvv73vv73vv70977+9GgDvv73vv70IeQAwGCEPAAYj77+9Ae+/vWDvv73vv73vv718cF8777+977+977+9eBfOou+/ve+/vW9/77+9W++/ve+/ve+/vT/vv73vv73cnO+/ve+/ve+/vS/vv73vv73vv71e77+977+9LDrvv71rB++/vRcT77+977+9cTzvv70nJiYU77+9RHTvv73vv70h77+9fD5t3bpV77+977+9eu+/vT7vv73vv70POn3vv715cl1/GgAK77+9z7vvv73vv73vv71ZSe+/vTNp77+977+9HTge77+9WEzvv73vv73vv70n77+977+977+977+9T++/vXTvv73vv73vv70rGu+/ve+/vWtf77+9Wk7vv71/We+/ve+/ve+/vXl9Pu+/vX7vv73vv70fZe+/ve+/vRvvv73vv73vv70qKytzPm7vv73vv70u77+977+977+9ee+/vVLfr++/ve+/vS7vv73vv73vv715bifvv73vv71677+9Oe+/ve+/vU7vv73vv71NZWXJnO+/ve+/vV7vv70y77+9Y1nvv73vv73vv71RF++/ve+/ve+/ve+/vdy5c2ptbe+/vSQdOHBAIyMj77+977+977+977+977+977+9aQAAOXDvv73vv710Oi3vv73vv73vv73vv73vv71Y77+9Ne+/vTEAYO+/vTge77+977+91q1TPB7vv70877+977+977+9CgQCTu+/vQYA77+9A++/vUPvv71T77+977+977+977+977+977+977+977+9b2pmZkYv77+977+977+977+977+977+9Pg0AIAfvv71/77+9eu+/vTXXqO+/ve+/vVXvv73vv71z77+9Zmdn77+977+93Kzvv71877+9I07vv70GAO+/vQPvv70/eAUA77+9Du+/vTUAAO+/vRHvv70AYDBCHgAMRu+/vQPvv73vv71c77+9Cu+/vX/vv71jPe+/ve+/ve+/ve+/vXg8am5u1pfvv73vv73vv71577+977+977+926fvv70HD+qqq++/ve+/vSTvv71177+9XSXvv71Q77+977+93bvvv73vv71bb++/ve+/ve+/vWvvv73vv73Hjh3vv71DDz3vv73vv71n77+977+9W25RZ2fvv73vv73vv73vv70c77+977+977+977+977+9ce+/ve+/vRfvv73vv70377+9fDPvv71977+977+9VVtb77+977+977+9ce+/vdaDG++/vWFwcFDvv73vv73vv73vv73vv73MjDZs2KDvv73vv73vv71577+977+9MA7vv716KO+/vThYLu+/ve+/vT/vv73vv73aunXvv701Oztr77+977+977+9WO+/vTZt77+9Xnvvv73vv71577+9PO+/ve+/vQPWn++/ve+/ve+/vSJV77+977+9WCxm77+9eu+/ve+/vXfvv73znYu277+9QiHvv70vf++/ve+/vWVZ77+977+977+977+9fu+/vXrvv71n77+977+977+977+9LO+/vUPvv73vv71DOu+/ve+/vTZu77+9aO+/ve+/ve+/vV5277+9Uh/vv71ceijvv71x77+977+977+977+9bW3cuO+/vTp577+9TCbvv71t27ZZf++/ve+/vR/vv73vv71T77+977+9Sw/vv70YB1dO77+9fO+/vRPvv73vv70vfu+/vQt577+9Xk1OTirvv71K77+9K++/ve+/ve+/ve+/ve+/ve+/vR5/77+9ce+/ve+/vWE977+977+977+9SiRKb1nQt++/vX5b77+9SETbt2/vv71o24kTJ3Tvv73vv71577+9X++/vV7vv73vv73vv73UpGg077+977+9FWbvv71QD1Lvv73Dv++/ve+/vS9J0r3vv73eq++/vX/vv73vv73vv73vv70vfzlv77+9G++/vSFbD1Lvv73Diy/vv73vv70777+9Q++/vdatU3l577+9Iu+/vci8dyJuGO+/vWw9SO+/vRkHV++/ve+/vSTvv73vv73vv71r77+93r0K77+9QgoG77+977+977+9azLvv73Onj3vv70Pfe+/vUN677+977+9B++/ve+/vdOj06dP77+977+977+977+977+977+9XtquXe+/ve+/ve+/vdqaee+/ve+/vV7vv71O77+977+977+977+977+9PO+/ve+/ve+/ve+/ve+/ve+/vVjvv73vv71y77+9UA9uGO+/vdOnTysYDO+/vSc/77+977+977+9eu+/vSnvv73vv73Xv++/ve+/vS/vv73vv73vv73vv71x77+91oMb77+9YXx8XO+/vVRK27dv15YtW++/ve+/vV/vv71q77+9au+/vW4Y77+9bD0UaxxcG++/vWPvv70ODQ8P77+977+9yZPav39/77+977+9K++/ve+/vVI/77+977+977+9de+/vQ0377+977+977+977+977+9e++/ve+/ve+/ve+/vVARK++/vdiBAwd077+977+977+9KhgMXnLvv70bFnrvv73Wgxvvv73vv70f77+977+977+977+92aM1a++/vWjvv73atWpubu+/vVfvv70b77+9IVsPbhjvv71UKu+/ve+/ve+/vWE977+977+977+977+9b37vv73vv73vv70R77+977+977+9ZO+/ve+/vWEc77+977+9UO+/vXFwZci/77+977+9azp277+9JGnVqlVqaGjvv70/77+977+977+977+977+977+977+977+9eu+/ve+/vWcz77+9Le+/vSrvv70PaAYGBu+/ve+/ve+/vS9ry5Yt2rt377+9BgcH77+96KOPZu+/vV/vv73vv73vv70bb++/vVFyC++/vWXvv73vv70N77+9cO+/ve+/vRENDw9nHl9Y77+9G++/vSFbD24Y77+977+977+977+9Wu+/vWBQa9eu77+9ypUrde+/vW3vv71pZGQk77+977+9DeOQre+/vWLvv73vv70rQ++/vT/vv73vv73vv73vv73vv73blUwm77+9TCbvv73vv73vv73vv71eH++/ve+/ve+/vTLvv71X77+9XO+/vR/vv73vv73vv71677+977+977+9ZVnvv73vv71577+9GX3vv73vv73vv70tYu+/vRd777+977+9J++/ve+/vd+v77+977+9Xu+/vdixQ++/ve+/ve+/vWfvv73vv73Wlu+/vX7vv71116nvv73vv71CR++/vR7vv70k77+977+977+977+977+9Qm/vv716cO+/vTjvv705c0Z777+977+9USLvv73vv73vv73vv73vv716enrvv73vv73vv71x77+91oMb77+9YdOmTTp877+977+9Tu+/vT7vv71UKu+/ve+/vV56STfvv718c2bvv70b77+9IVsPRRvvv70l77+977+977+9QXvvv73vv702b++/vWx977+9c++/ve+/ve+/ve+/ve+/vWtZ77+9Ze+/vXfvv71977+977+9yIhlWe+/vRXvv71G77+9UChkNTQ0WDt377+9Eu+/vUQx77+9Xe+/ve+/ve+/vQczd++/ve+/ve+/ve+/vWPHjll377+9ee+/vXXvv73vv73vv71b77+977+977+9N13Zgxvvv70hEu+/vVjvv73vv73vv71WQ0Pvv73vv73vv71TT1nvv73vv71x77+91oMb77+977+977+977+9A++/vRo7Ozvvv71UKu+/vXHvv73vv71DMcaBBe+/vQDvv71g77+977+977+9AQDkhpAHAO+/vRHvv70AYDBCHgAMRu+/vQPvv73vv70IeQAwGCEPAAYj77+9Ae+/vWDvv70DZu+/vSHvv73vv71/WO+/vQAAAABJRU5E77+9QmDvv70=", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "plt.hist(np_normal_dis, color=\"grey\", bins=30)\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 148, - "metadata": {}, + "source": [ + "x = np.random.normal(28, 15, 100000)\n", + "ax = sns.histplot(x, kde=True, linewidth=0)\n", + "ax.set(xlabel='x', ylabel='y', title='X vs Y')\n", + "plt.show()" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "77+9UE5HDQoaCgAAAA1JSERSAAAB77+9AAABFwgGAAAAUVoY77+9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8v77+9EQsAAAAJcEhZcwAACxMAAAsTAQDvv73vv70YAAAxeklEQVR477+977+977+9eXRU77+977+977+977+977+9Pe+/ve+/vTbvv73vv70k77+9AO+/vQgt77+9Fe+/ve+/ve+/vR/vv73vv73vv73vv71S77+977+936Lvv73vv73vv71UOe+/ve+/ve+/ve+/ve+/vVUPfO+/ve+/ve+/vV8qX++/vcWfbe+/ve+/vV9r77+977+9FhLvv70YakUQ77+9Ku+/ve+/vTtZCElIJnsySWbvv73vv70/Ainvv702Ce+/ve+/vTPvv73vv73vv70e77+977+977+977+9C86E77+977+9z73vv73vv71HUVVVRQgh77+9CO+/vU7vv70AQggh4oeU77+9EELvv73vv71JaQgh77+9CO+/ve+/ve+/vRBC77+977+9SWkIIe+/vQjvv73vv73vv70QQu+/ve+/vUlpCO+/vU3vv73vv73vv73vv73vv71r77+9Ze+/vd69Xe+/ve+/ve+/ve+/ve+/ve+/vVvZuHFj77+977+9Tnl5Oe+/vV57LR9/77+977+9Oe+/vTdt77+9xI0377+9SHV1de+/ve+/ve+/vRDvv71SZO+/ve+/vRDvv73vv73vv73vv73vv73vv71f77+977+91atXY++/vVp56KGH77+9MGEC77+977+977+977+977+977+9KSgo77+977+977+977+9We+/vWYNdu+/ve+/ve+/ve+/vQbvv73vv71Ofu+/ve+/vXPvv70t77+977+977+9awkRDikNIXpo77+9woXvv73vv73vv70xYO+/vQDvv73vv73vv73vv73vv70vf++/ve+/vSjvv708ZsuWLe+/ve+/veKLrFnvv70G77+977+977+9Zu+/ve+/ve+/vW/vv71/77+977+977+977+977+9b++/ve+/ve+/vRjvv71G77+9ZjPvv70977+9HEPvv70OPe+/vXV+77+977+9H++/ve+/ve+/vXjvv73vv71Xee+/ve+/vUcZNGgQTz7vv71kVO+/ve+/vUJ877+977+977+9ED3vv73vv73vv73vv71dd++/vUUgEGDNmjVY77+977+977+9Hu+/ve+/vSrvv73vv73vv73vv71577+9Vxg9ejTvv73vv70OO3fvv73vv73vv70XX2Tvv73YsWzYsAHvv73vv71FQUEBXu+/ve+/vXvvv73vv73vv73vv73vv73vv73vv73vv73MmTPvv73vv70377+9SVlZGe+/ve+/ve+/ve+/vTEYDO+/ve+/vSMKcR7vv73vv70hRA/vv73vv73vv73vv73vv714aG5uZu+/ve+/ve+/vRd877+977+9KHzvv70777+9Ye+/ve+/ve+/vQDvv71a77+977+977+9fu+/ve+/ve+/ve+/vXrvv71O77+9ypw5c3jvv73vv71ITU1l77+977+977+9F++/vRk277+977+977+9f++/vTVr77+977+977+977+9L0thCE3Jme+/vRA9UF9f77+977+92bN577+977+9J++/vXrvv70sX++/ve+/vdWrV++/vXQ677+9e2x1dTV377+9fTdv77+977+9Ju+/vT/vv70477+916/vv73vv73ekSNH2Lp1K0VFRWRlZe+/ve+/vSvvv71c77+977+9Tu+/vTzJjBkz77+977+977+9LyPvv71nEiIccu+/vSFENwXvv71B77+9eO+/vQkmTe+/ve+/vR1377+977+9d++/ve+/vR1u77+977+9Fu+/vXjvv70J77+977+977+9ee+/ve+/ve+/ve+/vWLMmDEsXu+/ve+/ve+/vWzvv73vv73vv73vv73vv70TJ++/ve+/ve+/vc6DDz7vv73vv70/fu+/ve+/vVhC77+9KikNIe+/vemll17vv73vv73vv73vv73vv73vv73vv70nXe+/vRYvXkxTUxMv77+977+977+9Be+/vXPvv70977+9cO+/ve+/vUHvv73vv71uAO+/vXY777+977+977+977+977+9Bx9k1qxZ77+977+9F++/ve+/ve+/veefj0p+Ie+/ve+/vQxPCSHvv70I77+977+9aQgh77+9CO+/ve+/ve+/vRBC77+977+9SWkIIe+/vQjvv73vv73vv70QQu+/ve+/vUlpCCHvv70I77+977+977+9EELvv73vv70l77+9egQNDR5C77+977+977+9Ve+/vXDYqO+/vWvvv73vv71r77+977+9eO+/vRxveUEyR0Pvv73vv73vv73PrO+/vSlkZO+/ve+/ve+/ve+/vRkJXxrvv73vv70a77+977+9OO+/vTrvv70m77+9Mu+/vVte77+977+977+9EG95IT4z77+9Ie+/vVNCCCHvv70m77+9Ie+/vRAibFIaQggh77+9Ju+/vSHvv70QImxSGkIIIe+/vSbvv70h77+9ECJsUhpCCCHvv70m77+9IUQMKe+/vVxM77+977+9Yu+/vWMIcVFSGkLvv70RKRXvv73vv73vv73vv70RLkQ8Ce+/vVROVO+/ve+/ve+/vde277+977+977+9R++/vVNw77+9Whjvv73vv73vv73vv73vv712Au+/vRAG77+9fO+/vRPake+/vRAiBhRsLu+/ve+/vRtg77+977+9Ghpafe+/vVrvv73vv71sKO+/vUJbR++/ve+/ve+/ve+/vXx+77+9Gu+/vVHvv73vv73vv73vv71RVRVFUe+/ve+/vS3vv70gKQ0hYu+/ve+/vRfvv73Tve+/ve+/ve+/ve+/ve+/vR/vv71f77+9C8ap77+9Sn3vv73vv73vv73vv73vv70r77+977+9aw/vv73vv70R77+977+977+9UgDvv71l77+9Bu+/vUVfJO+/vSHvv73vv73vv73vv70Q77+9Du+/ve+/ve+/vQ9y06hsMlLvv73vv709RlEUHGkWJu+/vWZx77+9ZBPvv73vv70/77+90aAj77+9Zu+/vSDvv73vv73vv71kcFQI77+9FWwp77+977+977+977+9NUMzL1gYZ1MU77+977+9ee+/vQzvv71N77+93ZVU77+9eu+/ve+/vVLvv71OUhpCaO+/vXhlE0Xvv73vv71gQO+/ve+/vVzvv73vv73vv70w77+977+9EQMyyLDvv73vv71977+9Dl8gGO+/ve+/vULvv71LSkMI77+9BO+/vSF+77+977+9EBkpZkYO77+9d++/vTrvv73CmO+/ve+/ve+/vQMh77+9VzRHKO+/vRDvv73vv70QQiMfbivvv73vv73vv73vv73vv73vv70077+977+977+977+9Ku+/vVlN77+9Zlop77+9bO+/ve+/ve+/vRvvv73vv71C77+9T0pDCA3vv703d++/ve+/vWLvv73vv71JZNuTe++/vXPvv70PSCcUUu+/veWqvTLvv71PRO+/ve+/ve+/vRBRcu+/vWzvv71uOu+/ve+/ve+/ve+/ve+/ve+/vXvvv71SX2VLMu+/vS/vv73Kie+/vRbvv73vv71Qb++/vRTikqQ077+977+977+977+9U++/vXzvv73vv73vv73vv73vv73SsFrvv71X77+977+977+9SyUQVCnvv71u77+9dEJc77+977+977+9EFHvv73vv70qKzccw5ZkZFjvv73vv71e77+977+977+9KWYc77+9Zkoq77+9CQTvv71sQ0Tvv73vv73vv70QUVTvv73vv73OoRPvv73MvO+/ve+/vR5d77+977+977+9Ie+/ve+/vWjvv70F77+9fu+/ve+/ve+/vX7vv70QFyLvv70hRO+/ve+/vVTvv70D77+9DWTZk++/vTjvv71f77+977+977+9LHsSVu+/ve+/ve+/vV/vv73vv73vv71q77+977+9bCHvv70m77+9IUTvv73vv71X77+977+977+977+977+977+9a0jvv73vv71U77+9KApDcu+/vSg777+9wpHvv73vv71e77+977+9Qu+/vU1KQ++/vSgI77+9Qhw977+9RO+/ve+/vcS4Ye+/vRF577+9PO+/vRVb77+977+977+9X++/vUfvv73vv70LAe+/vWDvv70QUe+/ve+/ve+/vWravAFGXe+/vXBLSUReQ++/ve+/ve+/vW/vv73vv73vv73vv73vv71U77+9ee+/vXHvv73vv70s77+9EO+/vTMNISIs77+977+977+977+977+9MlLvv73vv71k2ZMi77+9Wu+/ve+/vUZ/DHodH27vv73vv70NERlSGkJE77+977+977+9Bu+/ve+/ve+/vRjvv73vv70W77+9Uu+/vSZuHO+/vcWn77+9Tu+/ve+/ve+/ve+/vWvvv73vv71JSkPvv70I27Dvv73vv73vv73vv709Xy7vv707Jl83AH8g77+9xp0VUXk90bfvv701DSEi77+977+977+977+9Xe+/vWrvv71277+9QO+/ve+/ve+/vWzvv73vv70v04orI++/vXXvv73vv73vv70PBu+/ve+/vXTvv73vv73vv73vv701cu+/vSFEBG3vv71T77+977+977+977+9H++/vT0vzqxvNe+/vV8qPn/vv73vv70177+9Se+/ve+/vV1SGkJE77+977+977+9bO+/vXcKZ++/ve+/vWRLdE/vv70z77+9LO+/vVlNHO+/vWgiJO+/ve+/vUQv77+977+9ECJCDu+/ve+/vVPvv73vv71Bf++/vS3qr60oCu+/ve+/ve+/ve+/vXQEZEtY0asiWhrvv73vv73vv70a06dPZ++/ve+/ve+/ve+/ve+/vUsAbN2677+9GTNmMHnvv71k77+9L1/vv73vv73YgwcPMmvvv70s77+9TO+/ve+/ve+/vU8/TSAQAO+/ve+/ve+/ve+/ve+/ve+/n++/vVPvv70yf++/vXw8Hu+/vQUQ77+9YeOOk++/ve+/vTpyHNG5AO+/vVU577+9ZFLvv73vv70cPSlnG++/ve+/vUTvv70077+9bu+/vcqWLVtY77+9ejUFBQXvv73fv++/ve+/vWvvv73vv73vv71TT++/vWLvv70K1q1bx75977+92LRpEwALFy5k77+977+9xaxf77+977+9cyXQlSsBeO+/ve+/vWfvv707dy5FRUXvv70aNe+/vRUrVkQq77+9EO+/ve+/vWBzMe+/vTYdZ++/vQrvv70x77+977+977+9S++/ve+/vUtRFO+/ve+/vU/vv73vv73vv73vv73vv73vv71177+9ZBDvv70nYu+/vWbvv73vv73JokXvv70w77+9TBjvv71G77+9DBlCaWkpAwcOJC8vD++/ve+/ve+/ve+/vRkzKCoq77+977+977+977+977+977+9DsaNGwfvv73vv71Z77+9KCoq77+977+977+977+9be+/vTbvv71M77+9cu+/vXEhYl1tUwfvv73vv71+QiFtP++/ve+/vcu0YjHvv73vv71w77+9TO+/vRPvv70jYlfvv70NG++/ve+/ve+/vUtLS++/ve+/ve+/vQ/vv73vv71/77+9N++/vU5n77+9ce+/ve+/vUV1dTU1NTXvv70cdzrvv71UV1fvv73vv73QgO+/vWbvv71gMO+/vXPvv707HO+/ve+/vSc777+9KVF577+977+9FG/vv73vv70l77+977+9au+/ve+/ve+/vQHvv71eYVBuGnrvv73vv700zrh6QAZ777+977+977+9Ce+/vQzvv71J77+977+977+977+977+977+977+977+9eO+/vQvvv73vv73vv73vv73vv73vv71x77+977+9UR5+77+9YX7vv73vv70f77+977+977+9KS0t77+977+977+977+977+9KO+/vUIoFDpn77+977+977+9Z++/vXvvv73vv73OqO+/ve+/vWvvv73vv73vv70977+9MwXvv70777+9dk3vv73vv73vv73xlLe177+977+977+977+9FnIy77+9dHTvv73vv73vv71DP3sS77+9dQrvv719eO+/vQfvv73vv73vv73vv71j77+977+977+9Ge+/vS8v77+9fmbvv71O77+977+977+9fgTasWMHDz7vv70gP++/ve+/vQ/vv73vv73vv73vv73vv73vv73vv73vv712d33vv73vv71277+9cu+/ve+/vTteW1vvv73vv73vv73vv71u77+977+977+977+9QjAYPO+/ve+/vULEsu+/vRYvXn/vv73vv73vv73vv73vv700aTLvv73pl5nvv73vv70H77+977+977+977+9M19EJO+/ve+/ve+/vUZVVRU/77+977+9D1jvv71sGdOnTwdg77+92LHvv73vv73vv71QVlZGMBhk77+92rXvv73vv73nk5vvv73vv73vv71sZseOHQAUFhbvv73vv73vv73vv73vv71oZO+/ve+/ve+/vVvvv70O77+977+977+9Au+/ve+/ve+/vSMVWe+/vV5x77+977+9DUXpvJ4QKwbvv71S77+977+977+9fu+/vRdEbHjvv73vv70377+977+977+977+977+9dO+/vdKuY3Pvv73vv71h77+90qUsWO+/vQDvv73vv73vv73EiRPvv706dSoAy5Yt77+9Z++/ve+/ve+/ve+/ve+/ve+/vSNHMm/vv708AO+/vSxZwqJF77+9eO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vV/vv71UZCF6RXVDO++/vVQLJu+/vR7vv70v77+9dRwA77+9Zlzvv71JfO+/ve+/ve+/ve+/vUbvv71oHUfvv70xRU3vv70h77+9xoXvv71b77+9eO+/ve+/vW5s77+9J++/ve+/vTNGXu+/ve+/ve+/vWEuPB7vv73Wke+/ve+/vXUK77+9N++/ve+/ve+/vSMT77+9TO+/ve+/vRLvv73vv73vv73vv718Ru+/ve+/ve+/vc+s77+9NQ0h77+977+9Pe+/ve+/vUNkZWgz77+977+9Uu+/vSzvv73vv71N77+977+977+9Fe+/ve+/vRDvv70X77+9OV7vv73vv71i77+977+9ZO+/vTrvv71577+9FiNpVhMfbivvv71gc++/ve+/vXFE77+977+977+9EO+/ve+/vXjvv71BDu+/vWjvv73vv70R77+977+977+977+9RO+/vUwr77+977+9Pu+/vTpi77+9Wu+/ve+/vT9SGkLvv73vv71DZQ3vv70D77+977+9HO+/vTrvv73vv71GUO+/vXXvv73vv73vv73vv70ZKQ0hesme77+9OkxGHe+/vTTvv73vv71RLu+/ve+/vRBVVV3vv73vv71RRO+/ve+/ve+/vRDvv70X77+977+9yp5jdXx977+9He+/vS7vv71/77+977+977+977+9NO+/vXhp77+977+9Hu+/ve+/vWLvv73vv70tRO+/ve+/ve+/vWvvv73vv73vv73vv70xQxxaR++/ve+/vSx777+9Ne+/vT3vv73vv73vv70BKQ0heu+/ve+/ve+/vQBxURppVhMW77+977+9Xe+/vWrvv73vv70i4pCU77+9EO+/vWDvv73vv71aUu+/ve+/vXzvv73vv71S77+9KO+/ve+/vSgKWe+/vWTvv73vv73vv73vv70P77+9WlTvv71777+9NO+/ve+/vULvv70eH++/vU4277+977+977+9Dn0977+9bU86fe+/vXDvv73vv71RRO+/ve+/ve+/vRDvv70K77+9Olbvv71K77+977+977+977+9IjPNgtmoZ++/vVEZ77+9Eu+/vSPvv70h77+9Fe+/vXnvv71NZu+/ve+/vVTvv71J77+9KGHvv73vv710fH1QBu+/ve+/vdeS77+977+9z4leJu+/vSHvv70VaO+/vQY4UFrvv701w5zvv73vv70gTGvvv71lUu+/veylvO+/vVXvv70oIu+/vUhpCO+/vUMF77+977+977+93brvv70E77+9Kt+4OlPvv70477+9NnZIJgrvv70Q77+977+9FikNIe+/vUBVXRvvv70kI++/ve+/ve+/vWsd77+977+9Uu+/vSYG77+9yq3vv73vv71b77+9NO+/ve+/vVBI77+977+977+977+9ce+/vTLvv73vv73vv71raO+/vXFDMyk977+9QkNL77+977+977+9IWLvv73vv73vv70QPVTvv73vv71xemjKqXXvv70eKe+/vVxMXVMHAO+/ve+/ve+/vdmGCO+/ve+/ve+/vRA9VFXfhl7vv70wclDvv73vv71Reiwl77+9SGbvv73vv73vv71yXUPvv71JSkPvv70eCO+/vSrvv73vv73vv71wZSRhNOi1ju+/vWPvv73vv70wbmgmB++/vRrvv73vv71ldu+/ve+/vTwpDSF677+977+977+9Ge+/vT8YVxPvv70u77+977+977+977+9Hwhx77+977+9Xu+/vSgiDhjvv70OIEQ877+9ecSN77+9dO+/vRgb77+9W++/vTpSLRjvv70K77+977+977+9Mu+/ve+/ve+/vVrvv70RMU7vv70077+977+9JlVV77+9Zu+/ve+/ve+/ve+/ve+/vRk677+977+9Kz3vv71d77+977+9CO+/vWR277+977+9NCkNIe+/ve+/ve+/ve+/vR/vv73vv73vv73vv73vv70EGO+/vToj2558eu+/ve+/vUbvv73vv73vv70YJ++/vSFEN++/ve+/vW8HSO+/ve+/vXBlJO+/vQDvv71377+9fu+/ve+/ve+/vRgn77+9IUQ3Vde377+9ZjXvv71kTu+/vUvvv70m77+9Hnvvv73vv70KWe+/vUpc77+977+977+9EO+/ve+/ve+/veajvu+/vdu1ZWoiybIn77+977+96qW277+9Xe+/vSgi77+9SWkI77+9DXvvv70777+977+977+977+9SO+/ve+/ve+/vTPvv70M77+977+9PiZ777+977+977+977+977+9EO+/vRt2He+/ve+/vWzUk2bvv73vv73vv70z77+9ZUsy77+977+9bO+/vQUM77+9JUlpCBHvv71AMMS+77+9Ou+/ve+/vUlx77+9d0bvv71y77+9Vg7vv70177+977+9DWgdRe+/vSgpDSHvv71077+977+977+9Dl8wIe+/ve+/ve+/ve+/vXXvv70I77+9VO+/ve+/ve+/ve+/vXBxYVIaQu+/vWnXsVrvv70GHe+/ve+/vRbvv73vv71ETGZ6Eu+/vWYDe++/veW6hu+/vTApDSHCoO+/vSpb77+977+9wp5ixqBP77+9Xxvvv71OYe+/vVV277+9Fu+/ve+/ve+/ve+/ve+/vRLvv73vv70vRC/vv73vv71r77+977+9I0BWRu+/ve+/vWrvv71V77+9Bztoau+/ve+/ve+/ve+/veKCpDTvv70Iw77vv73vv70177+9BO+/vQV+MSfvv70t77+977+9bi8W77+9bFIaQu+/vWF/aQPvv70kA++/vQk0C++/vWIsJgNpVhN777+9S2nvv73vv71F77+9NFpbW++/ve+/vTs4ee+/vSQA77+977+977+977+977+977+9yZPvv705cyYzZ++/ve+/ve+/vQ8/BO+/ve+/ve+/ve+/vcyaNe+/vSlT77+977+977+977+9TxMIdO+/ve+/vVdZWe+/ve+/ve+/ve+/ve+/vdSpU++/vT9/Ph7vv70n77+9ce+/ve+/vSB/IO+/ve+/ve+/vQbvv73vv70/NHXvv70rI++/vWMn77+9WO+/ve+/vVHvv73vv73vv70YE++/ve+/vdi9ezfvv73vv713H++/ve+/ve+/vV3vv73vv73vv73vv73vv73vv71v77+9TWFhIe+/ve+/ve+/ve+/vXbvv71tACxc77+977+9xYsX77+9fu+/vXpUVWXvv73KlQA877+977+9zJ0777+977+977+9Ikbvv70axYoVKyIVV++/ve+/vTpW0YTvv70fwpnvv713SiMrIwkVcDd2aB1FxJjvv73vv73vv73KlStZ77+9ZAku77+9C++/ve+/ve+/vXYqKyt56qmn77+9MWMG77+977+977+9Ku+/vVDvv73vv73vv70KOjo6GDduHADvv71mzaLvv73vv70I77+977+9z7Zt25gyZe+/vTnHhe+/ve+/vQPvv73vv73vv711Cu+/ve+/vcS977+977+977+9MlLvv70YDTpqGmQdKnHvv73vv70N77+977+977+9Zz8777+977+977+977+9Wm7vv73vv70G77+9LFlCSkoKDz/vv70wf++/ve+/vV8YNmwYTu+/ve+/ve+/vXFO77+977+977+977+9ahoaGu+/ve+/vWwYDO+/vXPvv70LEW3vv71L77+9Ge+/vS8V77+977+977+9XAJU77+9zo3vv71qGu+/vQjvv70q77+9BO+/vQEv77+9L2pX77+977+977+977+977+91a9+77+977+977+977+977+977+9PQoKChgyZO+/vTlLMu+/ve+/ve+/ve+/vShd77+9PVtP77+9bnA4bD0P77+9DU5nSlRe77+9N++/vVvvv71o77+9fWfvv70h77+977+9IGXvv70t77+9N3lE77+977+9LVjvv73vv70IJO+/ve+/vTPvv73vv71T77+977+977+977+977+9CzHvv71/77+977+977+9LiHvv73vv73vv70Q77+977+9z4haaRw+fO+/ve+/ve+/vdKu77+9JlVVMRgMZGdn77+9du+/ve+/vR5XW1vvv73vv73vv73vv71u77+977+977+977+9QjAYRO+/ve+/ve+/vXbvv73vv73vv73vv73vv73vv73vv73vv70177+9W1g677+9Ke+/vU/fphgv77+9Le+/vRZ5PR4vFe+/vR5UFU5UNmJP77+977+977+977+9au+/ve+/ve+/vUYoXWTvv73vv705Ne+/vQjvv73vv70d5aSZY3Nb77+9eHsfQ++/vWfvv73vv71LftiO77+977+977+977+977+977+977+977+9P++/ve+/ve+/vQnvv73vv73Pn++/ve+/vWdu77+977+9NnJzczHvv73vv73vv73YsQPvv73vv73vv71C77+977+977+9MRrvv73vv70fP++/vXXvv73vv70BUFBQQH5+fu+/ve+/vQoB77+977+977+9He+/vV4hPSXvv73vv70Y77+977+9xaQn77+9au+/vUDvv73vv71DJe+/vSVqZxojRu+/ve+/ve+/ve+/ve+/vT7vv73vv713H++/vUDvv73Jkydz77+9HXcA77+9bO+/vTLvv71577+9GVpbWxk5ciTvv73vv73vv70DYMmSJSxa77+977+977+9X3/vv73vv73vv70cXn7vv73vv71o77+9FQJVVXE377+977+977+977+977+9Z++/ve+/ve+/vWlJHD3ZhO+/vRfvv71s77+9zbMNEV3vv73vv73vv70L77+977+977+91IXvv71bZi3vv73vv73vv73vv71s77+9We+/ve+/ve+/vXbvv73vv71J77+977+977+977+9fXgK77+977+977+977+9fx7vv73vv73vv71l77+9YO+/ve+/ve+/vS4s77+977+977+9EO+/ve+/vWNmeErvv714U++/ve+/vXnvv71pX++/ve+/ve+/vVXvv71UMwbvv70iS++/ve+/vS5SGkJcRF3vv70X77+9Se+/vdWS77+9S++/vVzvv71B77+9Y1jvv71077+977+9Ie+/vUhpCHEB77+977+9Uu+/vdyBI9WS77+977+977+977+977+9Mjjvv73vv73vv73vv70aX0NtIjLvv70077+977+9AHdTBx3vv70g77+91L5377+977+9V++/vU8P77+9HShr77+9OO+/ve+/vQVSGkJc77+977+9E++/vQB9aumQi0nvv73vv70wGnQc77+977+9GgIpDSEu77+9SHkjJu+/ve+/ve+/ve+/vRPvv73vv70yRVFw77+9We+/vV9aL++/ve+/vQkpDSEu77+9SHnvv70M77+9fj3vv70MZ3oS77+977+9Pu+/ve+/vdq077+9IjQm77+9Ie+/vVc077+9eO+/vWls77+9Ie+/vTPvv71k77+9dw7vv73tl7vvv73vv708KQ0h77+977+9SHkjIO+/vTPvv71m77+9GEnvv70Y77+9eO+/vUnvv73vv70I77+9SWkI77+9FUfvv70bMe+/vRVS77+9Ju+/ve+/vcSU77+9VAt1Td6I77+977+9IGLvv73vv73vv70QX3Hvv73vv70Re++/ve+/vc+uN3Ux77+977+9Fu+/ve+/vRAnamJ3CQwReVIaQu+/ve+/ve+/ve+/vUdF77+9B0fvv71c77+977+977+977+977+977+9dQdl77+9Ru+/vSbvv70h77+9We+/ve+/vWwC77+977+977+9GX3vv73vv71k77+977+9ZO+/vVBZ77+977+9Ue+/ve+/ve+/vTTvv704y5Hvv71G77+9Bh3vv702OdO477+977+9NAtH77+9GwkEQ1pHERrvv73vv70Q77+9LO+/vR/vv70mNdmEXifvv70zLiQzzYLvv70f77+977+9Re+/ve+/ve+/vSI0Iu+/vSHvv71p77+977+9AE0e77+9XM+477+9M++/vSHvv702dWjvv71EaEVKQ++/vdOOVXRe77+9cO+/ve+/ve+/ve+/vTIbO++/ve+/ve+/ve+/vei7pDTvv70477+9SHkj77+9Ahl9cD/vv73vv73vv71MS++/ve+/ve+/vQN/IO+/vXUU77+977+9y5bGggUL2Lp1azTvv70I77+977+977+95Y2k77+977+9GO+/ve+/vVnvv71SMu+/vSzvv71UOFbRrHUU77+977+977+977+9du+/vXbvv71t77+9WO+/ve+/vSlT77+977+977+9b++/ve+/ve+/vRjvv71YQkTvv73vv70f77+977+977+9WdabCsOZ77+9QzJf77+9T++/vWxp77+9eeedvO+/ve+/vdusWO+/ve+/ve+/ve+/vTpmz57vv73ChQvZs2dPNO+/vQkRFcWV77+9BEPvv71c77+9CEPvv70t77+9Jg7vv73vv73vv73vv73vv706Dw/vv71C77+977+977+9UVpaSjAY77+977+9cO+/vV/vv73vv71f77+977+96quR77+9J0RUHClvRAHZqS9M77+9aUnvv71UNu+/ve+/vQtoHUVE77+977+9cg9Y77+9fDnvv71W77+9Ii8v77+977+9c++/ve+/ve+/vSvvv71gNBppa2tj0qRJPO+/ve+/ve+/ve+/vSlERB0ubyTvv71l77+9aO+/vWsdJS5k77+9WThW77+9xLHvv71N77+9Gu+/ve+/vTrvv73vv73vv73LlkZ9fT3vv73vv73vv71vGDFi77+9OceT77+977+977+977+9L34R77+9YEJESyAY77+9eEUT77+9Y++/vWkdJW7vv71T77+9KArvv73vv71p77+977+9Rh9z77+977+977+977+9T39677+977+977+9fO+/vc29GkYILe+/ve+/vWrvv70XCHF1Xjon3a1ax4kLBu+/ve+/ve+/vRTvv73vv73vv73vv73vv73vv71C77+977+9HTp9QXdYXu+/ve+/vUHvv71MZu+/ve+/ve+/vVYfbR1+77+977+977+9KO+/ve+/vRB93oHvv70G77+9O23vv73Jpkvdku+/ve+/vQR0Xg8Sfe+/ve+/ve+/ve+/vdO877+9IEdPNjLvv70q77+977+9Ue+/vU5G77+9Ge+/vU7vv73vv70177+9GCkN0acdLm8gEFRp77+9eCnvv71c77+9de+/ve+/ve+/ve+/vSnvv71TzLLvv71GHyPvv70h77+977+9fSXvv70YDTrvv73vv73vv71D77+9aRZO77+9W2lu77+9aR1FRO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vTM8Lx3vv71OfhV6IjPvv71zBu+/ve+/vRPvv73vv70GEVEj77+9Ke+/vc+q77+9b++/ve+/ve+/ve+/ve+/vTLPoO+/ve+/vW1mLCbvv71c77+977+9Q++/vTRE77+977+977+9cA0A77+9Dndq77+9JH7vv70U77+977+977+977+9Ze+/ve+/vT5ESkPvv71Z77+9D++/vRnvv70vFe+/vSxSeEVGDO+/ve+/vVR9Gw0tXu+/ve+/ve+/vSjvv73vv70Qfe+/ve+/ve+/ve+/ve+/vVMtXDvcpXXvv73vv73vv73vv73vv70Z77+9LO+/ve+/vVdIae+/vT5p77+9YTcAde+/ve+/vXLvv73vv70V77+9ee+/vQbvv71BJ0vvv73vv70RES3vv73vv73vv71W77+977+9Dk7vv708Ce+/vdatW++/vTFjBu+/vSdPZu+/ve+/ve+/vV3vv707eO+/vSDvv71m77+9YsqUKTzvv73vv73vv70EAu+/ve+/vS1XVlZy77+977+977+9M3Xvv71U77+9z5/vv73vv73vv71kXNGHbD9c77+977+977+9FO+/vRbvv73vv71R4p6iKDhSLe+/vTzvv70C77+9AyJWGu+/vXfvv73vv73vv73uo7Tvv70U77+977+977+9Du+/vXrvv70pVu+/vVjvv73vv71177+92LdvH++/vTZtAmDvv73ChSxe77+977+977+977+916Pvv70qK1fvv70E77+977+9Z++/vWXvv73cuRQVFTFq77+9KFbvv71YEe+/ve+/ve+/vQ/vv71v7qC477+977+977+9cgHvv73vv70477+9Le+/vXkDeO+/vWUd77+9RBfvv73vv71Y77+9ciVL77+9LO+/ve+/ve+/vRwz3rNnDwMHDiQvLw/vv73vv73vv73vv70ZMygqKu+/ve+/ve+/ve+/ve+/ve+/vQ7GjRsH77+977+9We+/vSgqKu+/ve+/ve+/ve+/vW3vv70277+9TO+/vXLvv71xIe+/vdSZ77+9Ke+/vXDvv71777+977+977+9UO+/vTTvv71r77+9RETvv71l77+9Ru+pn++/ve+/vWfvv718XVNT77+977+977+977+9T3Yu77+977+977+977+977+977+9O++/vU7vv73vv73vv71paGjvv71m77+9YTAY77+9Oe+/vV0O77+977+977+9f++/ve+/vXE6U++/ve+/vTrvv70p77+9Mu+/vVbvv73vv73vv71177+977+977+9ZGVG77+977+9Ye+/ve+/ve+/vUzvv71kTk42YUsyUu+/ve+/ve+/ve+/vSrvv73vv73vv70Q77+977+9z4hYaXxVKBRCUe+/ve+/ve+/vVVVRVHvv73vv70eP++/vd+zfe+/ve+/vXDvv73VtRIK77+9PQ8eBu+/vTMF77+977+9Je+/ve+/ve+/ve+/ve+/vS1zb++/vW1o77+9cu+/ve+/ve+/ve+/vQfvv73vv73vv71E77+9TO+/vWo1R++/vTV625Vk77+9TO+/vVBe77+9SmVVY++/vXZA77+977+977+9Me+/vX5m77+9Tu+/ve+/ve+/ve+/ve+/vT3vv73vv73vv73vv73vv73vv73vv73vv73vv73vv71277+9cu+/ve+/vTteW1vvv73vv73vv73vv71u77+977+977+977+9QjAYPO+/ve+/vUJc77+977+9R9yoQD9H77+977+9URLvv70rI++/vWBI77+977+977+9Ju+/ve+/ve+/vQjvv71aae+/vR0777+977+977+9Eu+/ve+/ve+/vQgG77+977+9Xe+/ve+/ve+/ve+/vXxyc3Mx77+977+977+92LED77+977+977+9Qu+/ve+/ve+/vTEa77+977+9Hz/vv71177+977+9AVBQUEB+fn7vv73vv70E77+977+9cA3vv70y77+977+9JO+/ve+/vRnvv70tM82CTu+/ve+/ve+/veu0jiIiKGrvv71hNu+/vVnvv710KQsWLO+/ve+/ve+/vW9n77+977+977+9TO+/vToV77+9ZcuW77+977+9Cy8wde+/vVTvv73vv73amDdvHgBL77+9LGHvv73Kle+/vX7vv73vv71s377vv73vv70ffzxacUUCau+/ve+/vTh077+9EVtS77+9RmXvv70U77+9Xu+/vSPvv73vv73vv71iKe+/vUQW77+9354NGzZ077+977+9CRMm77+977+977+977+977+977+9ESNG77+977+977+947m577+977+977+9D3/vv71oPu+/vXfvv70877+9OQzvv73vv71q77+9JHHvv73Sk++/vV/vv71AbVN777+977+9fiLvv73IjHDvv71n77+9OFTvv73vv71iIDVZJu+/vUXvv70r77+977+9KO+/vRXvv71r77+9RETvv73vv73vv73vv70TVm44yoHvv70G77+9ZVp7dBfvv70I77+9LcmII1Xvv73vv70S77+977+977+977+9E07Vt++/vQI5cu+/vVREKe+/ve+/ve+/ve+/vXYO77+9NRAI77+977+977+9IyJASkPvv70J77+9dW0k77+9De+/vVnlrqlI77+9dATvv73vv73vv70c77+9W28T77+977+977+9SHhtHX7cje+/ve+/vTjvv71laCoK77+9aRYUBVZ9clzvv70oIgLvv700RO+/ve+/vXXvv70WVe+/vX7vv71y77+9VDQYDDoc77+9FmoaZB3vv71EJO+/vSES77+977+9Q27vv71Meu+/vW0yNBUt77+977+9JFrvv73vv73vv703d2gdRe+/vTIpDe+/ve+/vdq9Ae+/ve+/vdST45C777+977+977+977+977+977+9Eu+/ve+/vTbvv71Iae+/ve+/ve+/ve+/vXgd77+9YO+/ve+/vUzvv71rKu+/vVLvv73vv71YTHpZUiQBSWnvv73vv73vv73vv71wDWk2E++/ve+/ve+/vVvvv70877+9Ke+/vUJWRhLvv71K77+977+9B++/ve+/ve+/vUQi77+9IRLvv73vv70XZO+/ve+/vTrvv73vv73vv70pQ1MayLYn77+977+9BTkse++/vScUKQ3vv73vv73vv70W77+977+9C++/vRg/XO+/ve+/ve+/vUJm77+9Be+/vVHHl++/vWrvv73vv70ieu+/ve+/ve+/vUhY77+9D++/vWAy77+9OFgmF2Pvv73vv73vv73vv70YOe+/vc6u77+977+977+9amQ3QhPvv70j77+9IRLvv71fNx5j77+9YTc5du+/vdCn77+9ce+/vTJpaO+/vXLvv73vv71V77+9KO+/ve+/vUhp77+977+9VO+/ve+/vU4w77+977+9IxPvv700NW5oJjpFYe+/ve+/vRrvv73vv73vv71eIu+/vSESUu+/vduDyagjM82ide+/vT4tJe+/vcSI77+977+9bD9UI0NUCUJKQyTvv712b++/ve+/vXbvv70577+977+9ZGhKUwXvv73vv70x77+9dVQ377+9U14jQ1Tvv71ASkMk77+977+977+9agnvv71UcmVoKiZ0Xlfvv73vv73vv71aRxHvv71ASkMk77+9Lw7vv71gMemxp8qE77+9WGA277+9GTEg77+9Lw5U77+9EFUC77+977+9EAnvv73vv73vv71nb3Hvv73vv73vv70XYybvv73Mpu+/ve+/ve+/vWMV77+977+9Ru+/ve+/ve+/vRAJZe+/vRHvv70MTcWga++/vTsxGXV877+977+977+977+9Ue+/vRXvv73vv70QCeWLgzU477+9Le+/vQx677+9STIb77+977+9ahfvv70O77+977+977+9B++/ve+/vSPvv73vv73vv73vv71IGO+/vR4fB0sb77+977+917JkaCrvv70UbC4GVNq9AXbvv70F77+9Ju+/vSES77+977+9B++/vQnvv70q77+9du+/ve+/vVHvv70FZO+/vVnItifvv70dJ++/ve+/vSLvv73vv73vv73vv71IGO+/ve+/vSLvv71qIu+/vSpDU++/vUhRFO+/ve+/vRZK77+977+9OV4pF++/veOVlO+/vUgIJ2taOVHvv71K77+9y6Z1FHEJeU4bBu+/ve+/vUfvv73vv71sI15Jae+/ve+/ve+/ve+/vSrvv70677+9XO+/ve+/vTUV77+9DAYdA1wpbDtUQ0Pvv71X77+9OO+/vQfvv700RO+/vQvvv71C77+9c381Y++/vTgwG++/vVrvv70R77+9MSgn77+9UEhl064K77+977+977+9Hu+/ve+/vRBxb39JA00eHzfvv73vv73vv70677+9CO+/vS3vv73ImCEONn5ZIVvvv73vv70hKQ0R77+9CjYX77+977+946OYDDrvv71ONWsdR++/ve+/ve+/ve+/vXk077+977+977+9du+/vVrvv70o77+977+977+9NERc77+9B++/ve+/ve+/vWsj77+9aUXvv73vv73vv70Z77+977+9SHkD77+9JCPvv719fO+/vdWfHO+/vTrvv73vv70GKQ0R77+9Tu+/vT3vv73vv73Ou3JE77+9UBTvv73vv705KTR5fO+/ve+/vQXvv70i77+9IeKWqu+/ve+/ve+/vWoh77+9aiI9RVbvv73vv70377+9XTbvv70GHcWVMu+/vRhP77+9NETvv706Xu+/vUxL77+977+9Qe+/vSlaRxE9YO+/ve+/vRjvv71l77+9VF0bdU0dWu+/vRFh77+977+9EHHvv73vv70vT2Lvv73vv73cjHg2KCcV77+9DTtl77+9X++/vTBo77+977+977+977+977+977+977+977+977+9YO+/vXzvv73vv717Du+/ve+/ve+/vQsv77+977+977+977+9Zdq0aTzvv73vv70TABw8eO+/ve+/ve+/vX4a77+977+977+977+977+977+9ee+/ve+/vWfvv73vv70n77+977+977+9Nh/vv70O77+977+977+9Ye+/ve+/vWfvv71477+9bDbvv73vv71IZtOuSu+/ve+/vSrvv70m77+9ZxPvv73vv73bpu+/vSrvv73vv73vv70UFhZ277+9b++/ve+/ve+/vTzvv73vv71T77+9WO+/ve+/vXXvv73WsW/vv70+Nm3vv70E77+9woULWe+/vXgx77+9169HVVVW77+9XBnvv73vv70iBn3vv73vv70U77+9YEjvv73vv70S77+977+9fu+/ve+/vXkDfO+/vV/vv73aiAdRL++/ve+/ve+/vWIAHnrvv70h77+977+9Tu+/vX7vv71t77+977+977+977+977+977+9A++/ve+/ve+/ve+/vWAwMGPvv70M77+977+977+977+977+977+977+977+977+977+9ce+/ve+/vQEwa++/vSzvv73vv73vv73vv70dWcSY77+977+977+977+9Su+/ve+/ve+/vWVx77+9BGBPMe+/ve+/ve+/ve+/vRXvv70dbBzvv716aTQ3NzNh77+9BH7vv73vv71f77+977+9W2/vv73vv73vv71SWVnvv73vv73vv73vv71677+977+95aK677+977+977+977+977+9c++/vTvvv71O77+977+9ZTJQX3fvv73vv70BT0fvv73vv71y77+977+9EBRFIe+/vWbvv73vv73vv73vv73vv70q77+977+9Ku+/vUXvv73vv73vv70177+9XO+/vTXvv71c77+977+977+977+92bN577+977+9V++/ve+/ve+/vWvvv73vv73vv73vv73vv73vv70o77+9Qu+/vXM277+9OXPvv707HO+/ve+/vdy/77+9dO+/ve+/vT9g77+977+9TN6NBe+/vTDvv73vv70MG++/ve+/vT7Gr2dY77+977+9dyvvv70W77+977+9Hu+/ve+/vUBZA++/vR3vv73hhrHvv73vv73vv73vv714ex9DfGY+I+qlsX3vv71277+9fj8TJkwAOu+/vSA3Nxfvv73vv71f77+9ee+/ve+/vW5cLhfvv73vv73vv73vv70c77+977+977+977+977+9cnXvv73vv73vv73vv71aCe+/vSJ777+977+9dO+/ve+/vXbvv71E77+9NXpb77+9ZT7vv73vv73vv73vv73KjkM1DB/vv71OR0dsb++/vWTvv73vv73vv71477+9a+Kalu+/vXPvv702Nu+/veCumwZhSzLvv73vv73vv714ex9D77+9Z++/ve+/vUt+2I7vv73HtO+/ve+/vRZeeu+/vSXvv71eL++/ve+/ve+/ve+/vV7vv73vv70n77+9fO+/ve+/ve+/vRLvv73vv73vv70IBu+/ve+/vV3vv73vv73vv73vv718cnNzMe+/ve+/ve+/vdixA++/ve+/ve+/vULvv73vv73vv70dWcSQ77+977+977+9MRl0cgE8AQ3vv71O77+9Hwjvv71177+9XBDvv71lUT/TmDRpEu+/vXfvv73mrrvvv70iFAoxd++/vVzvv73vv73vv70a77+9Ll3KggUL77+9eu+/vUzvv70477+977+9U++/vQLvv71s77+9Mu+/vXnvv70ZWltbGTlyJO+/ve+/vc2LdmQRI++/vVrvv73vv71z77+9KW4Z77+9T++/vUBPQGlWExkpZu+/vW4t77+977+977+9Ze+/ve+/vRjvv73vv70Jfu+/ve+/vQxPXVjvv71ldjpTeOOvu++/ve+/ve+/vTImfSM377+977+9Cy3vv73vv71U77+977+917Tvv73vv73vv71aFu+/vXcNXxvvv71x77+977+977+977+977+9GGI/c++/vQ1PCe+/vRMd77+9AO+/vSgny54UF++/vSF677+977+9Ixnvv71B77+977+9L2Xvv73vv71YJe+/vSHvv73Ch1/vv73vv70fCDHvv71f77+977+9UUQE77+977+9Ou+/vVw2dh5x77+977+977+9aR1HXO+/ve+/ve+/ve+/vXnvv71A77+977+9bDjvv7091Yw9Ne+/vW5hFe+/vTMoK++/vWBIZe+/ve+/vUrvv73vv73vv70L77+977+9EDFv77+9Ku+/vTsY77+977+9LhdH77+9AFvvv73vv73vv70N77+9YNOuSu+/vSHvv70ONu+/vUhp77+977+977+9D++/ve+/ve+/vWdlfG3vv73vv73vv70077+977+9cUTvv73Ykgzvv701d++/ve+/ve+/ve+/ve+/vQ8WUSXvv70hYtqW77+9VTTvv71477+9M3nvv73vv71l77+9Ie+/ve+/vWRsSQY+77+9Z++/ve+/vUcVY++/vTRE77+9CgRD77+977+977+977+9Ie+/vVLvv73vv71q77+977+9IBLvv73vv70oDO+/vU3vv71ETSvvv71K6rWOI++/vSLvv70hYu+/ve+/vT1V77+9NXtx77+9W++/ve+/ve+/vQ9rHUdEWX/vv70Ne++/ve+/vVXvv70UE++/ve+/ve+/ve+/vSHvv70hYlLvv703QO+/vRLvv73vv71Pw5nvv73vv711HO+/vQHvv71OYWBWCmXvv71a77+977+977+977+9bh0r77+9NERMKu+/ve+/vQTvv70eH++/ve+/vWTvv73vv73Rh++/vXdaSe+/ve+/ve+/ve+/ve+/vXh9Qe+/ve+/vQjvv700RAzvv71tbGfvv70XJ++/ve+/vUgmI0Xvv71l77+9Ze+/ve+/vTDvv70qO++/ve+/vV7vv73vv73vv71x77+977+9CDTvv70jXO+/vUt577+9H0dB77+977+9X2Xvv70677+977+9Ae+/vTQL77+977+9Rn8+77+9fu+/ve+/ve+/vQDvv700C3fvv70yWO+/vVh977+977+9ae+/ve+/ve+/ve+/vV3vv71q77+977+977+977+9JO+/ve+/vTPvv73vv73vv73vv73vv70177+977+9dAs777+977+977+977+9Ze+/vUpLUhoiZjTvv73vv73vv71977+9Ie+/vVw2bh3fve+/ve+/vURi77+977+9DMy/axRef++/ve+/vUfvv70RX++/vVpc77+977+977+977+9Ce+/ve+/ve+/vcO0eQMM77+977+92q3vv71aRxIx77+9YHMx77+977+977+9Mnrvv70Dd2MH77+9f1rvv71177+9PktKQ8SEDTsr77+9ce+/vc2s77+9Ie+/vVpNWu+/vRExakDvv73vv70877+977+9Ne+/ve+/ve+/ve+/ve+/vU7vv704fe+/ve+/ve+/ve+/ve+/ve+/vSbvv73vv73vv70oWRlJ77+9e2N777+9b++/vS1FURg977+9Qe+/ve+/vcav77+977+9T01977+91pHvv70cKQ3vv73vv73vv702H++/ve+/ve+/vS7vv71GPe+/vVzvv70pczLvv71lGe+/vTrvv73vv71L77+977+9D++/ve+/ve+/vQdkJe+/vWjvv73vv70Q77+9Ce+/vVR+77+977+9fnzvv70g77+9RzgxGWTvv71vER5b77+977+9a++/vWVS77+977+977+977+977+9H++/vUUN77+9SEpDaO+/ve+/vU9L77+9X++/ve+/ve+/ve+/vQ7vv71tMu+/vU90T++/ve+/vcqo77+9Dj7vv71777+9D++/ve+/ve+/vTpO77+9ITfvv70LTe+/vTle77+977+977+977+977+977+9MiDvv73vv73vv70LcSnvv73vv704MBt077+9ee+/vVHvv70577+9GTXYoXXvv73vv70nZxoi77+9Kmo977+977+977+9PlLvv73vv73vv70e77+977+9GO+/ve+/vRRF77+9f++/ve+/vTVyM23vv71e77+977+9Cnfvv73WkRLvv73vv73vv73vv73vv71m77+977+9V++/vduN0aDvv71f77+9wqDvv73vv73vv73vv70yRe+/ve+/vWDEgDRMRh3vv73vv73vv73vv73vv71/P0zvv73vv71i77+9YyUs77+977+9FVHvv70PBO+/ve+/vT00e3w8Nnvvv70sEyJ6Te+/ve+/vciP77+9XEMw77+977+977+977+9U++/vXUE77+977+977+977+977+9NERUBO+/vSF+77+977+9AO+/vSvvv70ZM++/ve+/ve+/vWPvv71aRxIJJjfvv73vv70P77+9HUcg77+9WRwNLV7vv70jJSQpDRFx77+9YO+/vTfvv73vv73Pju+/vW5GXu+/vUHvv71M77+91pFEAirvv71czJdH77+9XD/She+/vR/vv73vv71/77+9Qe+/vUzvv73vv711Uhoi77+9Wu+/ve+/vSx7d1dXYQzpl6Z1JO+/ve+/ve+/vSkWbhzvv73vv73vv70f5IW3d3Dvv73vv71F77+9SAlFSkNE77+977+9Ju+/vXtrG++/vU4277+9M++/vTBE1KTvv73vv71cN8KJPxDvv73vv713dnLvv73vv71e77+9SAlDSkPvv73vv712b++/ve+/vRvvv73vv73vv707UVXvv71xdDbvv73vv70yF0NEV0rvv73vv73vv73vv73vv71gT++/ve+/ve+/vXdT77+977+9CUIyc++/ve+/ve+/ve+/vSvvv73XhFTvv73vv73vv71X77+9cu+/vTHvv71afQxw77+9GHlVBkZZHkRoJO+/vWxg77+9EAfvv73vv73vv73Kj++/ve+/ve+/ve+/ve+/vQfvv73vv70gMy1J77+9aHFLSkNc77+9YCjEtu+/vTXvv73po6Pvv73vv73vv71J77+977+977+9ZUzvv73vv73vv70tYu+/ve+/ve+/ve+/vRFO77+9Uyzvv71577+9Ue+/ve+/ve+/ve+/vUzvv73vv70Abu+/vWEgZu+/vXzvv73vv70uKQ3vv71j77+9QO+/ve+/ve+/ve+/ve+/ve+/ve+/vSfvv71pbCcl77+977+9N++/vWXvv73vv73vv70sbxFTFEXvv73vv73vv73vv73Ese+/vThQ77+977+977+977+977+9bO+/vVvFnTcN77+977+9OTLJtBvvv700RO+/vXXvv70CbO+/vV1F77+9FydoaO+/vTIoO++/ve+/vUY4ybYnS1nvv73vv73vv71kNnDvv71wJ++/vXJS77+9X1Lvv73vv70rOsya77+977+9TO+/vX4g77+9Y3NkKDUMUhoibFV1Hjbvv71g77+9Ktq9QRzvv71mbu+/vXoW77+9dO+/ve+/ve+/ve+/vSvvv71UC++/ve+/ve+/ve+/ve+/ve+/vUFtcwd/77+977+9CGvvv73vv70y77+9A++/vXlMDu+/vSTvv73vv70RY++/ve+/ve+/ve+/ve+/ve+/vToPO++/ve+/ve+/ve+/vWgtxZXvv73vv711CteNcGHvv70r77+9Uy1a77+9E++/ve+/vRRF77+977+977+977+9M92CK++/vcKR77+9Te+/ve+/ve+/vRjvv70+Ke+/vRFObhnTj2F5ae+/vXUydHU2KQ3vv71FVVVqGu+/vTlc77+977+977+9E++/vRwpb++/ve+/ve+/vQPvv71077+977+977+9De+/vWDvv73vv70mFw9FQlEU77+977+977+9JDLTk2hq77+9Ulbvv73KtkM1fO+/ve+/vRrvv73vv73vv73vv70H77+9GXXvv73vv70h77+9aWQ777+977+977+977+977+9KO+/vTVr77+977+977+977+9EwgEeO+/ve+/vQfvv73vv73vv73vv73vv73vv73vv70Q2r0BTlTvv71QVu+/ve+/ve+/vSbvv73vv70377+977+977+9AWAy77+9cO+/vVoYPe+/vU7vv70977+9JFlcUO+/vQFpNjNjbGbvv70+KO+/ve+/vdmp77+9PV7HtkM1bDtUA++/vcWkZ1B2Cjnvv71Wcu+/ve+/ve+/vTjvv71k25Pvv71INe+/ve+/vTLvv73vv71/Ce+/ve+/ve+/vVnvv718Oe+/vVbvv73vv71kMjFn77+9HO+/ve+/ve+/vXrvv70OHe+/vXXvv73vv70TCO+/ve+/ve+/ve+/vXh9QTp8Qe+/ve+/vSAd77+9AO+/vW1+Glrvv73Ut3Tvv73vv73ipaHvv71L77+977+9R11TR++/vXMzUu+/vXxtUAZtHQEc77+9ZmxJRu+/vU4h77+9LO+/vV5H77+977+9FXvvv73vv73vv73vv73vv73vv73vv73vv73vv71377+977+977+9R3V9G++/vSrvv70IBO+/vXMe77+9SO+/ve+/ve+/vWrGkWbvv73vv71qIe+/vWrClmTElmTEmmTvv71qMWI277+9CATvv717T++/vS/vv73vv71b77+9cu+/vQ0377+977+977+9Du+/ve+/vSlTKCoq77+9P++/ve+/vT/vv71677+9Tu+/ve+/vX/vv71877+9EO+/vQ5W77+977+9CwIqKu+/vQoqdO+/vUXvv73vv73vv70a77+9YjHvv73vv73vv73vv71teu+/ve+/ve+/ve+/vTPvv71RT3/vv73vv70DZ33vv73vv70577+977+977+977+9PHjvv71r77+9SjAE77+906Xvv73vv73vv73vv70F77+977+9Tu+/ve+/vTcQJBjvv73vv71sV++/vU7vv73vv71mIceRTEbvv73vv73vv73vv73vv73vv71iNe+/ve+/vWzvv71s77+977+9Ie+/vWTvv70RRe+/ve+/vV8277+9HHnvv73Km2I177+9c++/vULvv73vv70K77+9QO+/ve+/ve+/vQDvv712P++/ve+/ve+/vQ9o77+977+9IMer77+9OXTvv73vv70/T++/vVMwGe+/ve+/vUx677+9egXvv71e77+9TlHvv73vv70UDDoFRe+/ve+/vVc6H++/vTvvv70977+977+977+977+977+977+9Be+/ve+/ve+/vTrvv73vv70p77+9FQXvv71eQe+/ve+/vVHvv73vv73vv70RLlLvv71N77+977+977+9Xu+/ve+/vcyYL++/ve+/ve+/vRrvv71OZ++/ve+/vS7vv73vv709e++/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vXpnVmrvv73vv70n77+9EO+/vSzvv71vCwjvv71C77+9DO+/ve+/ve+/vSrvv70mQgjvv73vv73vv70v77+977+977+9bO+/vW5377+977+9bu+/vRvvv73LpWEiIe+/ve+/vWLvv700bu+/ve+/vUY+77+977+9M++/ve+/ve+/vWlvb++/ve+/vX/vv70777+977+977+9Wu+/vRJC77+9Pinvv71pZGVl77+977+9E08wb++/vTzvv71+P++/vWfvv71mzJgxWu+/vRJC77+9PklRVVlgXgghRHhifnhKCCFE77+977+9EEIIETYpDSHvv70QYe+/ve+/vRBCCBE2Ke+/vSt077+977+9AUbvv70a77+977+9dXNzM++/ve+/ve+/ve+/ve+/vTZtGu+/ve+/vX/vv705c0zvv73vv71j77+9DmbPnu+/vcyZM3nvv73vv70H77+977+977+9AGI7M3QuWHnvv73vv73vv70zee+/vWTvv73vv73vv70/ah3vv71ee++/vTXvv71P77+977+977+977+977+9eemll++/ve+/vSVwZsyY77+977+9yZNZ77+9fO+/ve+/vQkv77+977+9F19k0aJFQGxn3rBhA++/vWbvv71i2rRpPO+/ve+/ve+/vUBs77+9BSgsLO+/vXpf77+977+977+9QO+/vWfvv70sVe+/vVhbW++/vTpn77+9HO+/veqrr++/vTrvv73vv73Pqm/vv73xhqqq77+977+9eu+/vWrvv73vv73vv70e77+9KO+/ve+/vSZN77+977+9Hjx4UFVVVX3vv73vv73vv71HHnlEVe+/ve+/ve+/vXzvv73vv70pddKkSWpDQ++/ve+/ve+/vXjvv70ZM2bvv71H77+9Hu+/vTrvv705Pu+/ve+/vVPvv73vv71777+9Ve+/vV7vv73vv73vv73vv73vv71577+977+9a9asUSdO77+977+977+9OHFC77+977+977+977+9Qw8977+9bty4Ue+/ve+/vdm6de+/vXrvv73vv73Xqz/vv73vv71P77+977+977+977+977+977+9fO+/ve+/vQnvv73vv71vVu+/ve+/ve+/vVTvv73Pp++/vXfvv71977+9xo0bYzbvv73vv71277+977+9cO+/vXXXqXV1de+/ve+/ve+/vVdnz57vv71+77+977+9RzHvv705HHLvv71xBe+/vS5d77+9Aw88cM6x77+9GzcyY++/vQwA77+977+9Dj7vv73vv70T77+9fu+/vRbvv73vv73vv73vv73vv71477+977+9GDFiBADDhw/vv73vv73vv70K77+977+977+9cO6Cle+/ve+/ve+/vV0LVu+/vRLvv73vv73JokXvv70w77+9TBjvv71G77+9DBlCaWkpAwcOJC8vD++/ve+/ve+/ve+/vRkzYi53Y2Mjy5cv77+9Rx4BYM+ePTHvv73vv73vv70PP++/ve+/ve+/vW8nOzsb77+977+977+977+977+977+9SUpK77+92bwA77+9YO+/vVAoRHt7O++/vUDvv71AIO+/ve+/vWbvv73vv73vv73vv73vv73ooY8+77+977+977+977+9Du+/vU7vv71677+977+9F1g0GAzvv71sNu+/ve+/veu1iHgO77+977+977+9zJkz77+977+977+977+9Xnvvv701bu+/ve+/vVYgdjPDhRfvv73vv73vv73vv73vv70w77+977+977+9DRvGuHHvv70AKC0t77+9Dz5AUe+/ve+/vc+9eO+/vWLvv71477+9CVJTOxfvv73vv73rsrIy77+977+9IO+/vTzvv70IM2fvv73vv7133onvv70ANu+/ve+/ve+/vR5777+9adOmMXHvv71EcnNzYz5zOGJ+Ru+/ve+/vT7vv73vv70DXnjvv71z77+9DR4877+977+977+9Vu+/vXrvv73vv70+X1VVdFHvv70u77+9Yu+/ve+/vXrvv70tfD4f77+9Fi0iEAjvv73vv73vv70PX++/ve+/vVpk77+977+9eFrvv73vv73vv73Rozzvv73vv73vv73vv73vv73vv70/Ru+/ve+/vVNaWu+/ve+/ve+/vVjvv73vv73vv71775GT77+9w4QJE1jvv71qFRDvv71/77+977+9YO+/ve+/vdu377+9P++/ve+/ve+/ve+/vWTvv73Pn++/ve+/vWLvv73ZvADvv70OHe+/vX/vv70rH3/vv70xKSkp77+977+9Rz/vv73vv73vv70077+9M++/vUNK77+9Mu+/vU3vv73GtGnvv73vv70577+977+9e++/ve+/ve+/vRtv77+977+977+977+9zJkz77+977+9H++/ve+/ve+/veWitu+/ve+/ve+/ve+/vWwC77+9AB7vv73vv71rLxAtMwN4PB7vv73Pn096ejrvv73vv73vv706Ru+/vREgJjJfTHZ2Ntu3b++/ve+/vTpWF++/vdyxYwfvv70+77+9KE8977+9FNOnT++/vS/vv73vv73vv702161b77+977+977+9Zu+/vcyZNDU177+977+977+9RkVFBXrvv73vv73vv71V77+977+9zJnvv73vv71M77+9MAHvv73vv70O77+977+977+977+9SlFRUe+/ve+/vQXYsmULEyZM77+977+9cAAwa++/vSzvv71877+9zZjvv70c77+977+977+9OBln77+977+9Hu+/ve+/vX9QWFhIYWEh77+9ee+/ve+/ve+/vWZj77+9xIkUFBQA77+977+977+977+9x4/vv73vv73vv71ZawsXLmTvv73vv73vv73vv73vv73vv73vv70PJtO/Nmfvv73vv73vv73vv71gZVVVFT/vv73vv70PWO+/vWwZ06dPB2Dvv73Yse+/ve+/ve+/vXQN77+977+9Xe+/vTbvv71y77+977+9d++/vWPvv73atRQWFu+/veijj++/vW9977+977+977+977+977+9Me+/vXnSpEls2bLvv73vv73vv71m77+977+9IO+/vTdvZu+/vdSpMe+/vRdgxIgRbN2677+977+977+9NlRVZcOGDTHvv73vv70I77+977+9ae+/ve+/ve+/vR5777+9Re+/vRYxfe+/vXRSUlJY77+9bO+/vdaR77+977+9W++/vT/vv73vv70j77+9Dh3vv73vv71377+9DXTvv71h77+977+9N++/ve+/ve+/ve+/vRAfC1bvv73vv73vv71477+9Xu+/vS5d77+9dWzOnDksXe+/ve+/vQULFu+/ve+/vXrvv704ce+/vXnXv2Lvv73vv71s77+977+977+9Y8eO77+977+977+977+935k7dy5+77+977+977+9bu+/ve+/ve+/ve67j++/ve+/vQfvv71kXu+/ve+/vW/vv73vv70DBw4wa++/vSzvv71GI++/vUfvv71m77+977+9Be+/vXTvv71NMe+/vTkc77+9YO+/vRBC77+977+977+977+9EELvv73vv71JaQgh77+9CO+/ve+/ve+/vRBC77+977+9SWkIIe+/vQjvv73vv73vv70QQu+/ve+/vUlpCCHvv70I77+977+977+9EELvv73vv71JaQgRRe+/vVfvv73vv73vv71bb++/ve+/ve+/ve+/ve+/ve+/vca0adO6Zu+/vQsRD2Ry77+9EFHvv73vv70f77+977+977+977+9FHw+H3rvv73vv73vv73vv73vv73vv71aRxIibFIaQkRZa2srM2fvv73vv71i77+977+9au+/vSrvv71m77+91pHvv70I77+9DE8JEWV1dXV477+9Xu+/ve+/ve+/ve+/ve+/ve+/ve+/vTrvv70Q77+9ImcaQkTvv73vv73vv71nzpw5zJkz77+9UCjvv71777+9x5/vv73vv73vv73vv71ZVVjvv73LkTMNIe+/ve+/ve+/vV8mMzPvv7177rmHe++9l++/ve+/vQzvv70vX++/vXUsIe+/vSZnGkIIIe+/vSZnGkIIIe+/vSbvv70h77+9ECJsUhpCCCHvv70m77+9Ie+/vRAibFIaQggh77+9Ju+/vSHvv70QImxSGkIIIe+/vSbvv70h77+9ECJs77+9H++/vd2xRko6e++/vQAAAABJRU5E77+9QmDvv70=", "text/plain": [ "
" ] }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "x = np.random.normal(28, 15, 100000)\n", - "ax = sns.histplot(x, kde=True, linewidth=0)\n", - "ax.set(xlabel='x', ylabel='y', title='X vs Y')\n", - "plt.show()" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Linear Algebra" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 149, - "metadata": {}, - "outputs": [], "source": [ "# numpy.dot(): Dot Product in Python using Numpy\n", "# Dot Product\n", @@ -4159,55 +4157,65 @@ "# Syntax\n", "\n", "# numpy.dot(x, y, out=None)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Dot Product" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 150, - "metadata": {}, + "source": [ + "## Linear algebra\n", + "### Dot product: product of two arrays\n", + "f = np.array([1,2,3])\n", + "g = np.array([4,5,3])\n", + "### 1*4+2*5 + 3*3\n", + "np.dot(f, g) # 23" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "23" ] }, - "execution_count": 150, "metadata": {}, - "output_type": "execute_result" + "execution_count": 150 } ], - "source": [ - "## Linear algebra\n", - "### Dot product: product of two arrays\n", - "f = np.array([1,2,3])\n", - "g = np.array([4,5,3])\n", - "### 1*4+2*5 + 3*3\n", - "np.dot(f, g) # 23" - ] + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### NumPy Matrix Multiplication with np.matmul()" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": 151, - "metadata": {}, + "source": [ + "### Matmul: matruc product of two arrays\n", + "h = np.array([[1,2],[3,4]])\n", + "i = np.array([[5,6],[7,8]])\n", + "### 1*5+2*7 = 19\n", + "print(h)\n", + "print(i)\n", + "np.matmul(h, i)" + ], "outputs": [ { - "name": "stdout", "output_type": "stream", + "name": "stdout", "text": [ "[[1 2]\n", " [3 4]]\n", @@ -4216,74 +4224,69 @@ ] }, { + "output_type": "execute_result", "data": { "text/plain": [ "array([[19, 22],\n", " [43, 50]])" ] }, - "execution_count": 151, "metadata": {}, - "output_type": "execute_result" + "execution_count": 151 } ], - "source": [ - "### Matmul: matruc product of two arrays\n", - "h = np.array([[1,2],[3,4]])\n", - "i = np.array([[5,6],[7,8]])\n", - "### 1*5+2*7 = 19\n", - "print(h)\n", - "print(i)\n", - "np.matmul(h, i)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 152, - "metadata": {}, - "outputs": [], "source": [ "## Determinant 2*2 matrix\n", "### 5*8-7*6np.linalg.det(i)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 153, - "metadata": {}, + "source": [ + "np.linalg.det(i)" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "-1.999999999999999" ] }, - "execution_count": 153, "metadata": {}, - "output_type": "execute_result" + "execution_count": 153 } ], - "source": [ - "np.linalg.det(i)" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": 154, - "metadata": {}, - "outputs": [], "source": [ "Z = np.zeros((8,8))\n", "Z[1::2,::2] = 1\n", "Z[::2,1::2] = 1" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 155, - "metadata": {}, + "source": [ + "Z" + ], "outputs": [ { + "output_type": "execute_result", "data": { "text/plain": [ "array([[0., 1., 0., 1., 0., 1., 0., 1.],\n", @@ -4296,21 +4299,18 @@ " [1., 0., 1., 0., 1., 0., 1., 0.]])" ] }, - "execution_count": 155, "metadata": {}, - "output_type": "execute_result" + "execution_count": 155 } ], - "source": [ - "Z" - ] + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "source": [], "outputs": [], - "source": [] + "metadata": {} } ], "metadata": { @@ -4334,4 +4334,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file