From 169b567f41507a33c62e9df0c6e1f1e38146305d Mon Sep 17 00:00:00 2001 From: Krish3779 Date: Tue, 20 May 2025 19:24:09 +0530 Subject: [PATCH 1/3] Add files via upload --- week_0/Assignment0.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 week_0/Assignment0.ipynb diff --git a/week_0/Assignment0.ipynb b/week_0/Assignment0.ipynb new file mode 100644 index 0000000..74e246e --- /dev/null +++ b/week_0/Assignment0.ipynb @@ -0,0 +1 @@ +{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[{"file_id":"1YgPf9zkamM4bbNegXvz6U2YYGBnC4S8M","timestamp":1747747376853},{"file_id":"1J3mlnYYfweg_e36Une3NROxSom3H-6dS","timestamp":1747335117311}]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","source":["# Assignment 0\n","**Instrunctions for the assignment** \\\\\n","\n","* Open Google Colab: Begin by launching Google Colab and creating a new Python notebook.\n","* Read Comments Carefully: Pay close attention to the comments provided within the codeblocks.\n","\n","\n","* Code Block Completion: Fill in the codeblocks as per the instructions given in the comments.\n","* Avoid Copying: Ensure that you understand the concepts and refrain from directly copying code from external sources.\n","\n","\n","* Execute Codeblocks: Verify that each codeblock runs without errors by executing them.\n","* Save and Submit: Once you've completed the assignment, save your notebook and follow the submission guidelines provided by your instructor.\n","\n","\n","\n","\n","\n","\n","\n","\n","\n","\n","**Notes:**\n","\n","Encouragement: Take your time to understand the concepts behind each codeblock. This assignment aims to strengthen your Python programming skills. \\\\\n","Good Luck! : If you have any questions or require clarification on any aspect of the instructions, feel free to ask. \\\\\n"," \\\\\n","\n","Best wishes for your assignment! These instructions are crafted to provide clarity and guidance as you work through the tasks in Google Colab.\n","\n","\n","\n","\n","\n","\n","\n"],"metadata":{"id":"U2p472EZsFQh"}},{"cell_type":"markdown","source":["## Getting Started\n","Solving these exercises will help make you a better programmer. Solve them in order, because each solution builds scaffolding, working code, and knowledge you can use on future problems. Read the directions carefully, and have fun!\n","\n","\n","\n","* To save your work to your Google Drive, go to File then \"Save Copy in Drive\".\n","* Your own work will now appear in your Google Drive account!\n","* Work on this copy as directed"],"metadata":{"id":"jGDFomGq3i87"}},{"cell_type":"markdown","source":["## What to do when you don't know what to do next\n","- When the exercise asks you to reverse an list, the way forward is to search for \"How to reverse a list in Python\" in your favorite search engine.\n","- When the exercise asks you to check if a number is even, the way forward is to search for \"how to check if a number is even in Python\".\n","- When the exercise has you calculate the area of a circle, the way forward is to search for \"how to calculate the area of a circle in Python\" or \"How to get pi in Python\".\n","\n","😀😀"],"metadata":{"id":"jZ1hWiMO4TTN"}},{"cell_type":"markdown","source":["## Basic Python Exercises"],"metadata":{"id":"LKjbv4-Mmp3_"}},{"cell_type":"markdown","source":["1. Create a new list from two list \\\\\n","list1 = [10, 20, 25, 30, 35] \\\\\n","list2 = [40, 45, 60, 75, 90]"],"metadata":{"id":"POUIXeAkoAJy"}},{"cell_type":"code","source":["list1 = [10, 20, 25, 30, 35]\n","list2 = [40, 45, 60, 75, 90]\n","newlist=list1 + list2\n","print(newlist)"],"metadata":{"id":"083WsOfvmz3k","executionInfo":{"status":"ok","timestamp":1747678274046,"user_tz":-330,"elapsed":27,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"e5747f90-fabb-4e9c-813e-f796fa4b0e42","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["[10, 20, 25, 30, 35, 40, 45, 60, 75, 90]\n"]}]},{"cell_type":"markdown","source":["2. Print multiplication table from 1 to 10"],"metadata":{"id":"mBuOTb3vo7SY"}},{"cell_type":"code","source":["for i in range(10):\n"," for j in range(1,11):\n"," print(i+1,\"*\",j,\"=\",(i+1)*j)"],"metadata":{"id":"ALdwhW6uqRTB","executionInfo":{"status":"ok","timestamp":1747678691278,"user_tz":-330,"elapsed":42,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"9280c242-75d6-4bff-c1f7-5cd03a05d297","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["1 * 1 = 1\n","1 * 2 = 2\n","1 * 3 = 3\n","1 * 4 = 4\n","1 * 5 = 5\n","1 * 6 = 6\n","1 * 7 = 7\n","1 * 8 = 8\n","1 * 9 = 9\n","1 * 10 = 10\n","2 * 1 = 2\n","2 * 2 = 4\n","2 * 3 = 6\n","2 * 4 = 8\n","2 * 5 = 10\n","2 * 6 = 12\n","2 * 7 = 14\n","2 * 8 = 16\n","2 * 9 = 18\n","2 * 10 = 20\n","3 * 1 = 3\n","3 * 2 = 6\n","3 * 3 = 9\n","3 * 4 = 12\n","3 * 5 = 15\n","3 * 6 = 18\n","3 * 7 = 21\n","3 * 8 = 24\n","3 * 9 = 27\n","3 * 10 = 30\n","4 * 1 = 4\n","4 * 2 = 8\n","4 * 3 = 12\n","4 * 4 = 16\n","4 * 5 = 20\n","4 * 6 = 24\n","4 * 7 = 28\n","4 * 8 = 32\n","4 * 9 = 36\n","4 * 10 = 40\n","5 * 1 = 5\n","5 * 2 = 10\n","5 * 3 = 15\n","5 * 4 = 20\n","5 * 5 = 25\n","5 * 6 = 30\n","5 * 7 = 35\n","5 * 8 = 40\n","5 * 9 = 45\n","5 * 10 = 50\n","6 * 1 = 6\n","6 * 2 = 12\n","6 * 3 = 18\n","6 * 4 = 24\n","6 * 5 = 30\n","6 * 6 = 36\n","6 * 7 = 42\n","6 * 8 = 48\n","6 * 9 = 54\n","6 * 10 = 60\n","7 * 1 = 7\n","7 * 2 = 14\n","7 * 3 = 21\n","7 * 4 = 28\n","7 * 5 = 35\n","7 * 6 = 42\n","7 * 7 = 49\n","7 * 8 = 56\n","7 * 9 = 63\n","7 * 10 = 70\n","8 * 1 = 8\n","8 * 2 = 16\n","8 * 3 = 24\n","8 * 4 = 32\n","8 * 5 = 40\n","8 * 6 = 48\n","8 * 7 = 56\n","8 * 8 = 64\n","8 * 9 = 72\n","8 * 10 = 80\n","9 * 1 = 9\n","9 * 2 = 18\n","9 * 3 = 27\n","9 * 4 = 36\n","9 * 5 = 45\n","9 * 6 = 54\n","9 * 7 = 63\n","9 * 8 = 72\n","9 * 9 = 81\n","9 * 10 = 90\n","10 * 1 = 10\n","10 * 2 = 20\n","10 * 3 = 30\n","10 * 4 = 40\n","10 * 5 = 50\n","10 * 6 = 60\n","10 * 7 = 70\n","10 * 8 = 80\n","10 * 9 = 90\n","10 * 10 = 100\n"]}]},{"cell_type":"markdown","source":["3. Print a downward Half-Pyramid Pattern\n","\n","0 0 0 0 0 \n","0 0 0 0
\n","0 0 0
\n","0 0
\n","0"],"metadata":{"id":"rXhutUXXqR5x"}},{"cell_type":"code","source":["rows = 5\n","\n","for i in range(rows, 0, -1):\n"," print(\"0 \" * i)\n"],"metadata":{"id":"U9j7N1nrtw--","executionInfo":{"status":"ok","timestamp":1747679880211,"user_tz":-330,"elapsed":56,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"97fbd913-c63a-4ed2-c8bc-063eebd44e1c","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["0 0 0 0 0 \n","0 0 0 0 \n","0 0 0 \n","0 0 \n","0 \n"]}]},{"cell_type":"markdown","source":[" 4. Given the following assignment of the vegetables list, add \"tomato\" to the end of the list and sort them in alphabetical order.\\\n","vegetables = [\"eggplant\", \"broccoli\", \"carrot\",\"cauliflower\", \"zucchini\"]"],"metadata":{"id":"Re-QzSX4ugH-"}},{"cell_type":"code","source":["vegetables = [\"eggplant\", \"broccoli\", \"carrot\",\"cauliflower\", \"zucchini\"]\n","vegetables.append(\"tomato\")\n","vegetables.sort()\n","print(vegetables)"],"metadata":{"id":"hnA-2EIDuxEH","executionInfo":{"status":"ok","timestamp":1747678826791,"user_tz":-330,"elapsed":8,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"ccdf84ff-9a10-4a2c-9c01-a84f5c60f0f4","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["['broccoli', 'carrot', 'cauliflower', 'eggplant', 'tomato', 'zucchini']\n"]}]},{"cell_type":"markdown","source":["5. Write a function definition named is_odd that takes in a number and returns True or False if that number is odd."],"metadata":{"id":"ARyaOlp8uxix"}},{"cell_type":"code","source":["def is_odd(num):\n"," if num%2!=0:\n"," return True\n"," else:\n"," return False\n","is_odd(7)\n"],"metadata":{"id":"OztCSuVjvACz","executionInfo":{"status":"ok","timestamp":1747678988132,"user_tz":-330,"elapsed":20,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"e2f26800-ca2c-42fa-b246-f88a86e8314f","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["True"]},"metadata":{},"execution_count":13}]},{"cell_type":"markdown","source":["6. Write a function definition named mode that takes in sequence of numbers and returns the most commonly occuring value"],"metadata":{"id":"GIAo6YfLu_AJ"}},{"cell_type":"code","source":["def mode(numbers):\n"," frequency = {}\n"," for num in numbers:\n"," if num in frequency:\n"," frequency[num] += 1\n"," else:\n"," frequency[num] = 1\n","\n"," max_count = 0\n"," mode_value = None\n","\n"," for num, count in frequency.items():\n"," if count > max_count:\n"," max_count = count\n"," mode_value = num\n","\n"," return mode_value\n"],"metadata":{"id":"WEikC1aTvXoS"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["## Numpy Exercises"],"metadata":{"id":"AKuHwB0lvZn-"}},{"cell_type":"markdown","source":["Exercise 1: Create a 4X2 integer array and Prints its attributes \\\\\n","**Note:** The element must be a type of unsigned int16. \\\\\n","And print the following Attributes: –\n","\n","\n","\n","1. The shape of an array.\n","2. Array dimensions.\n","3. The Length of each element of the array in bytes.\n","\n","\n","\n","\n","\n"],"metadata":{"id":"8f2ww678vf5S"}},{"cell_type":"code","source":["\n","import numpy as np\n","array_2d = np.array([[1, 2], [3, 4], [5, 6], [7, 8]], dtype=np.uint16)\n","print(\"Shape of the array:\", array_2d.shape)\n","print(\"Array dimensions:\", array_2d.ndim)\n","print(\"Length of each element in bytes:\", array_2d.itemsize)"],"metadata":{"id":"2YMq_rbcwTeb","executionInfo":{"status":"ok","timestamp":1747680978525,"user_tz":-330,"elapsed":17,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"4c6715b9-b9a8-4fe0-b4c9-a3a80c44161c","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Shape of the array: (4, 2)\n","Array dimensions: 2\n","Length of each element in bytes: 2\n"]}]},{"cell_type":"markdown","source":["Exercise 2: Following is the provided numPy array. Return array of items by taking the third column from all rows \\\\\n","sampleArray = numpy.array ( [ [ 11 ,22, 33 ], [ 44, 55, 66 ], [ 77, 88, 99 ] ] )"],"metadata":{"id":"jLVSC8epw0Wz"}},{"cell_type":"code","source":["\n","import numpy as np\n","sampleArray = np.array ( [ [ 11 ,22, 33 ], [ 44, 55, 66 ], [ 77, 88, 99 ] ] )\n","third_column = sampleArray[:, 2]\n","third_column"],"metadata":{"id":"UVRODBc1wyjl","executionInfo":{"status":"ok","timestamp":1747680985347,"user_tz":-330,"elapsed":41,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"611e8cee-ac08-4837-c01f-8c8425bdbbac","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([33, 66, 99])"]},"metadata":{},"execution_count":16}]},{"cell_type":"markdown","source":["Exercise 3: Sort following NumPy array \\\\\n","Case 1: Sort array by the second row \\\\\n","Case 2: Sort the array by the second column"],"metadata":{"id":"T72G3kpRxESl"}},{"cell_type":"code","source":["\n","import numpy as np\n","numpyArray = np.array([[10, 40, 30],\n"," [60, 20, 50],\n"," [70, 90, 80]])\n","sort_indices_row = np.argsort(numpyArray[1, :])\n","sorted_by_second_row = numpyArray[:, sort_indices_row]\n","print(\"Sorted by the second row:\\n\", sorted_by_second_row)\n","\n","sort_indices_col = np.argsort(numpyArray[:, 1])\n","sorted_by_second_col = numpyArray[sort_indices_col, :]\n","print(\"\\nSorted by the second column:\\n\", sorted_by_second_col)\n"],"metadata":{"id":"kdPN_yoaxULi","executionInfo":{"status":"ok","timestamp":1747744762872,"user_tz":-330,"elapsed":32,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"9f46ac9a-bcf5-485c-b86e-5f1613e2264f","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Sorted by the second row:\n"," [[40 30 10]\n"," [20 50 60]\n"," [90 80 70]]\n","\n","Sorted by the second column:\n"," [[60 20 50]\n"," [10 40 30]\n"," [70 90 80]]\n"]}]},{"cell_type":"markdown","source":["## Pandas Exercises\n","In this exercise, we are using Automobile Dataset for data analysis. This Dataset has different characteristics of an auto such as body-style, wheel-base, engine-type, price, mileage, horsepower, etc. \\\\\n","https://pynative.com/wp-content/uploads/2019/01/Automobile_data.csv"],"metadata":{"id":"RUiLxEnkxXKF"}},{"cell_type":"markdown","source":["Exercise 1: From the given dataset print the first and last five rows."],"metadata":{"id":"Bgvaffg70VqZ"}},{"cell_type":"code","source":["\n","import pandas as pd\n","!wget https://pynative.com/wp-content/uploads/2019/01/Automobile_data.csv\n","\n","df = pd.read_csv('Automobile_data.csv')\n","\n","print(\"First 5 rows:\")\n","print(df.head())\n","\n","print(\"\\nLast 5 rows:\")\n","print(df.tail())"],"metadata":{"id":"RT2zrs5y2ZUB","executionInfo":{"status":"ok","timestamp":1747746327007,"user_tz":-330,"elapsed":261,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"f4ed06c5-6166-40d2-bca1-a61197cdc13e","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["--2025-05-20 13:05:25-- https://pynative.com/wp-content/uploads/2019/01/Automobile_data.csv\n","Resolving pynative.com (pynative.com)... 172.66.43.37, 172.66.40.219, 2606:4700:3108::ac42:28db, ...\n","Connecting to pynative.com (pynative.com)|172.66.43.37|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 3208 (3.1K) [text/csv]\n","Saving to: ‘Automobile_data.csv’\n","\n","\rAutomobile_data.csv 0%[ ] 0 --.-KB/s \rAutomobile_data.csv 100%[===================>] 3.13K --.-KB/s in 0s \n","\n","2025-05-20 13:05:25 (47.2 MB/s) - ‘Automobile_data.csv’ saved [3208/3208]\n","\n","First 5 rows:\n"," index company body-style wheel-base length engine-type \\\n","0 0 alfa-romero convertible 88.6 168.8 dohc \n","1 1 alfa-romero convertible 88.6 168.8 dohc \n","2 2 alfa-romero hatchback 94.5 171.2 ohcv \n","3 3 audi sedan 99.8 176.6 ohc \n","4 4 audi sedan 99.4 176.6 ohc \n","\n"," num-of-cylinders horsepower average-mileage price \n","0 four 111 21 13495.0 \n","1 four 111 21 16500.0 \n","2 six 154 19 16500.0 \n","3 four 102 24 13950.0 \n","4 five 115 18 17450.0 \n","\n","Last 5 rows:\n"," index company body-style wheel-base length engine-type \\\n","56 81 volkswagen sedan 97.3 171.7 ohc \n","57 82 volkswagen sedan 97.3 171.7 ohc \n","58 86 volkswagen sedan 97.3 171.7 ohc \n","59 87 volvo sedan 104.3 188.8 ohc \n","60 88 volvo wagon 104.3 188.8 ohc \n","\n"," num-of-cylinders horsepower average-mileage price \n","56 four 85 27 7975.0 \n","57 four 52 37 7995.0 \n","58 four 100 26 9995.0 \n","59 four 114 23 12940.0 \n","60 four 114 23 13415.0 \n"]}]},{"cell_type":"markdown","source":["Exercise 2: Replace all column values which contain ?, n.a, or NaN with suitable values and print the updated dataset.:"],"metadata":{"id":"FB-hfiNh2Z42"}},{"cell_type":"code","source":["\n","import pandas as pd\n","!wget https://pynative.com/wp-content/uploads/2019/01/Automobile_data.csv\n","\n","df = pd.read_csv('Automobile_data.csv')\n","\n","df.replace(['?', 'n.a'], pd.NA, inplace=True)\n","\n","df = df.apply(pd.to_numeric, errors='ignore')\n","for column in df.columns:\n"," if df[column].dtype == 'object':\n"," df[column].fillna(df[column].mode()[0], inplace=True)\n"," else:\n"," df[column].fillna(df[column].mean(), inplace=True)\n","\n","print(df)\n"],"metadata":{"id":"n8u7K1cU2x4l","executionInfo":{"status":"ok","timestamp":1747747302148,"user_tz":-330,"elapsed":125,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"307577c7-5b62-4847-ce81-4696ec3ccccc","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["--2025-05-20 13:21:40-- https://pynative.com/wp-content/uploads/2019/01/Automobile_data.csv\n","Resolving pynative.com (pynative.com)... 172.66.40.219, 172.66.43.37, 2606:4700:3108::ac42:2b25, ...\n","Connecting to pynative.com (pynative.com)|172.66.40.219|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 3208 (3.1K) [text/csv]\n","Saving to: ‘Automobile_data.csv.3’\n","\n","\rAutomobile_data.csv 0%[ ] 0 --.-KB/s \rAutomobile_data.csv 100%[===================>] 3.13K --.-KB/s in 0s \n","\n","2025-05-20 13:21:40 (37.1 MB/s) - ‘Automobile_data.csv.3’ saved [3208/3208]\n","\n"," index company body-style wheel-base length engine-type \\\n","0 0 alfa-romero convertible 88.6 168.8 dohc \n","1 1 alfa-romero convertible 88.6 168.8 dohc \n","2 2 alfa-romero hatchback 94.5 171.2 ohcv \n","3 3 audi sedan 99.8 176.6 ohc \n","4 4 audi sedan 99.4 176.6 ohc \n",".. ... ... ... ... ... ... \n","56 81 volkswagen sedan 97.3 171.7 ohc \n","57 82 volkswagen sedan 97.3 171.7 ohc \n","58 86 volkswagen sedan 97.3 171.7 ohc \n","59 87 volvo sedan 104.3 188.8 ohc \n","60 88 volvo wagon 104.3 188.8 ohc \n","\n"," num-of-cylinders horsepower average-mileage price \n","0 four 111 21 13495.0 \n","1 four 111 21 16500.0 \n","2 six 154 19 16500.0 \n","3 four 102 24 13950.0 \n","4 five 115 18 17450.0 \n",".. ... ... ... ... \n","56 four 85 27 7975.0 \n","57 four 52 37 7995.0 \n","58 four 100 26 9995.0 \n","59 four 114 23 12940.0 \n","60 four 114 23 13415.0 \n","\n","[61 rows x 10 columns]\n"]},{"output_type":"stream","name":"stderr","text":[":8: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead\n"," df = df.apply(pd.to_numeric, errors='ignore')\n",":13: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method.\n","The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy.\n","\n","For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object.\n","\n","\n"," df[column].fillna(df[column].mean(), inplace=True)\n",":11: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method.\n","The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy.\n","\n","For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object.\n","\n","\n"," df[column].fillna(df[column].mode()[0], inplace=True)\n"]}]},{"cell_type":"markdown","source":["Exercise 5: Count total cars per company and print them\n","\n","\n"],"metadata":{"id":"67ErI6He2wz6"}},{"cell_type":"code","source":["import pandas as pd\n","!wget https://pynative.com/wp-content/uploads/2019/01/Automobile_data.csv\n","df = pd.read_csv('Automobile_data.csv')\n","car_counts=df['company'].value_counts()\n","print(car_counts)"],"metadata":{"id":"8H6ytVXD26Ae","executionInfo":{"status":"ok","timestamp":1747746763117,"user_tz":-330,"elapsed":132,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"bd11af6a-c18a-4fa0-aea0-93e7eda7e688","colab":{"base_uri":"https://localhost:8080/"}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["--2025-05-20 13:12:41-- https://pynative.com/wp-content/uploads/2019/01/Automobile_data.csv\n","Resolving pynative.com (pynative.com)... 172.66.40.219, 172.66.43.37, 2606:4700:3108::ac42:28db, ...\n","Connecting to pynative.com (pynative.com)|172.66.40.219|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 3208 (3.1K) [text/csv]\n","Saving to: ‘Automobile_data.csv.1’\n","\n","\rAutomobile_data.csv 0%[ ] 0 --.-KB/s \rAutomobile_data.csv 100%[===================>] 3.13K --.-KB/s in 0s \n","\n","2025-05-20 13:12:41 (46.5 MB/s) - ‘Automobile_data.csv.1’ saved [3208/3208]\n","\n","company\n","toyota 7\n","bmw 6\n","mazda 5\n","nissan 5\n","mercedes-benz 4\n","audi 4\n","volkswagen 4\n","mitsubishi 4\n","chevrolet 3\n","jaguar 3\n","isuzu 3\n","honda 3\n","porsche 3\n","alfa-romero 3\n","dodge 2\n","volvo 2\n","Name: count, dtype: int64\n"]}]},{"cell_type":"markdown","source":["## Matplotlib Exercises"],"metadata":{"id":"OcyPTwrWxdXt"}},{"cell_type":"markdown","source":["Use the following CSV file for this exercise. Read this file using Pandas or NumPy or using in-built matplotlib function. \\\\\n","https://pynative.com/wp-content/uploads/2019/01/company_sales_data.csv"],"metadata":{"id":"f0JDeA8Lxu-8"}},{"cell_type":"markdown","source":["Exercise 1: Read Total profit of all months and show it using a line plot \\\\\n","Total profit data provided for each month. Generated line plot must include the following properties: –\n","\n","X label name = Month Number \\\\\n","Y label name = Total profit \\\\\n","\n","\n"],"metadata":{"id":"zYDZqjEzyoFN"}},{"cell_type":"code","source":["\n","import pandas as pd\n","import matplotlib.pyplot as plt\n","!wget https://pynative.com/wp-content/uploads/2019/01/company_sales_data.csv\n","\n","df_sales = pd.read_csv('company_sales_data.csv')\n","\n","plt.figure(figsize=(10, 6))\n","plt.plot(df_sales['month_number'], df_sales['total_profit'])\n","plt.xlabel('Month Number')\n","plt.ylabel('Total profit')\n","plt.title('Total Profit per Month')\n","plt.grid(True)\n","plt.show()"],"metadata":{"id":"wp_s9Dh50MQX","executionInfo":{"status":"ok","timestamp":1747746359705,"user_tz":-330,"elapsed":576,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"8db80458-568c-4a5d-d1d7-fb04df5ca4d0","colab":{"base_uri":"https://localhost:8080/","height":764}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["--2025-05-20 13:05:57-- https://pynative.com/wp-content/uploads/2019/01/company_sales_data.csv\n","Resolving pynative.com (pynative.com)... 172.66.43.37, 172.66.40.219, 2606:4700:3108::ac42:28db, ...\n","Connecting to pynative.com (pynative.com)|172.66.43.37|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 659 [text/csv]\n","Saving to: ‘company_sales_data.csv’\n","\n","\rcompany_sales_data. 0%[ ] 0 --.-KB/s \rcompany_sales_data. 100%[===================>] 659 --.-KB/s in 0s \n","\n","2025-05-20 13:05:57 (136 MB/s) - ‘company_sales_data.csv’ saved [659/659]\n","\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAA2wAAAIjCAYAAAB/FZhcAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmH9JREFUeJzs3Xd8VfX9x/HXvTd77zASQth7hWFUEBVBRVsVWlut4i4UbIFW+6O1rg5bW0VbUaxacbYK7glhgwSBQNibsMmCLDJv7j2/P5J7JbISSHLuTd7Px8OH5N6Te9/JuYF87vdzPl+LYRgGIiIiIiIi4nGsZgcQERERERGRM1PBJiIiIiIi4qFUsImIiIiIiHgoFWwiIiIiIiIeSgWbiIiIiIiIh1LBJiIiIiIi4qFUsImIiIiIiHgoFWwiIiIiIiIeSgWbiIiIiIiIh1LBJiIiHmvp0qVYLBaWLl1qdhS36upqHn74YRITE7Fardx0000AWCwWHn/8cVOztQZz5szBYrGwbt06s6OIiDQLFWwiIlKHxWKp13/1KaL+8pe/8PHHHzd5Ztcv8a7/AgIC6NatG1OmTCEnJ6dRn+s///kPf//73xk/fjxvvPEG06ZNO+Nxq1at4vHHH6ewsLBRn78pjRw5EovFQteuXc94f1pamvt7PG/evCbN8uKLLzJnzpwmfQ4REW/gY3YAERHxLG+99Vadj998803S0tJOu71nz57nfay//OUvjB8/3r0K1dSefPJJkpOTqaioYOXKlbz00kt8+eWXbNmyhaCgoEZ5jsWLF9O+fXtmzpxZ5/by8nJ8fL77Z3XVqlU88cQT3HXXXURERDTKczeHgIAA9uzZw5o1axg6dGid+9555x0CAgKoqKho8hwvvvgiMTEx3HXXXU3+XCIinkwFm4iI1PGzn/2szserV68mLS3ttNs90XXXXcfgwYMBuO+++4iOjubZZ5/lk08+4ac//ekZP6e0tJTg4OB6P0dubu4ZC7CAgIALytycnE4nVVVV58zauXNnqqur+e9//1unYKuoqOCjjz5i7NixfPDBB80RV0REUEukiIhcgNLSUn7961+TmJiIv78/3bt35x//+AeGYbiPsVgslJaW8sYbb7jb6FyrJQcOHOAXv/gF3bt3JzAwkOjoaH70ox+xf//+Rs151VVXAZCVlQXAXXfdRUhICHv37uX6668nNDSU22+/vV5f0/79+7FYLCxZsoStW7ee1hp66jVsjz/+OA899BAAycnJ7mPP9fWNHDmSPn36kJGRwaWXXkpgYCDJycnMnj37tGMrKyt57LHH6NKlC/7+/iQmJvLwww9TWVlZ5ziLxcKUKVN455136N27N/7+/nz99dfn/b799Kc/5b333sPpdLpv++yzzygrK+PHP/7xGT9nw4YNXHfddYSFhRESEsLVV1/N6tWr6xzjal395ptvmD59OrGxsQQHB3PzzTeTl5fnPq5jx45s3bqVZcuWub93I0eOPO17cK7HEBFpKbTCJiIiDWIYBj/4wQ9YsmQJ9957LwMGDGD+/Pk89NBDHDlyxN0q+NZbb3HfffcxdOhQHnjgAaBm9QZg7dq1rFq1ip/85CckJCSwf/9+XnrpJUaOHMm2bdsarX1x7969AERHR7tvq66uZsyYMVx++eX84x//ICgoqF5fU2xsLG+99RZ//vOfOXnyJE899RRw5tbQW265hV27dvHf//6XmTNnEhMTA0BsbOw58xYUFHD99dfz4x//mJ/+9Ke8//77TJo0CT8/P+655x6gZpXsBz/4AStXruSBBx6gZ8+ebN68mZkzZ7Jr167TrhlcvHgx77//PlOmTCEmJoaOHTue9/t222238fjjj7N06VJ30fvuu+9y9dVXExcXd9rxW7duZfjw4YSFhfHwww/j6+vLyy+/zMiRI1m2bBnDhg2rc/yDDz5IZGQkjz32GPv37+e5555jypQpvPfeewA899xzPPjgg4SEhPD73/8egPj4+AY9hohIi2GIiIicw+TJk41T/7n4+OOPDcD405/+VOe48ePHGxaLxdizZ4/7tuDgYGPChAmnPWZZWdlpt6WnpxuA8eabb7pvW7JkiQEYS5YsOWfG119/3QCMhQsXGnl5ecahQ4eM//3vf0Z0dLQRGBhoHD582DAMw5gwYYIBGP/3f/9X5/Mb8jVdccUVRu/evU/LABiPPfaY++O///3vBmBkZWWdM/upjwsYzzzzjPu2yspKY8CAAUZcXJxRVVVlGIZhvPXWW4bVajVWrFhR5/Nnz55tAMY333xTJ5PVajW2bt1a7wyur23w4MHGvffeaxiGYRQUFBh+fn7GG2+84T4nc+fOdX/eTTfdZPj5+Rl79+5133b06FEjNDTUGDFihPs213kaNWqU4XQ63bdPmzbNsNlsRmFhofu23r17G1dcccVpGRvyGCIiLYFaIkVEpEG+/PJLbDYbv/zlL+vc/utf/xrDMPjqq6/O+xiBgYHuP9vtdo4fP06XLl2IiIhg/fr1F5xt1KhRxMbGkpiYyE9+8hNCQkL46KOPaN++fZ3jJk2a1OhfU2Pw8fHh5z//uftjPz8/fv7zn5Obm0tGRgYAc+fOpWfPnvTo0YP8/Hz3f66VsCVLltR5zCuuuIJevXo1OMttt93Ghx9+SFVVFfPmzcNms3HzzTefdpzD4WDBggXcdNNNdOrUyX1727Ztue2221i5ciXFxcV1PueBBx7AYrG4Px4+fDgOh4MDBw7UO19jPIaIiDdQS6SIiDTIgQMHaNeuHaGhoXVud7UG1ucX5vLycp566ilef/11jhw5Uufat6KiogvONmvWLLp164aPjw/x8fF0794dq7Xue5M+Pj4kJCTUua0xvqbG0K5du9MGoHTr1g2ouYbukksuYffu3Wzfvv2s7ZW5ubl1Pk5OTr6gLD/5yU/4zW9+w1dffcU777zDDTfccNr3ByAvL4+ysjK6d+9+2n09e/bE6XRy6NAhevfu7b69Q4cOdY6LjIwEalpC66sxHkNExBuoYBMRkWb34IMP8vrrrzN16lRSU1MJDw/HYrHwk5/8pM6gi4YaOnSoe0rk2fj7+59WxHkTp9NJ3759efbZZ894f2JiYp2PT13NbIi2bdsycuRInnnmGb755ptGnQxps9nOePuphXtzPIaIiDdQwSYiIg2SlJTEwoULKSkpqbPismPHDvf9Lqe2rJ1q3rx5TJgwgWeeecZ9W0VFhWmbTDfka6qvs33t53L06NHTthnYtWsXgHtYSOfOndm4cSNXX331BT1HQ9x2223cd999REREcP3115/xmNjYWIKCgti5c+dp9+3YsQOr1XpaEVkfTf21iYh4C+99i1FERExx/fXX43A4eOGFF+rcPnPmTCwWC9ddd537tuDg4DMWYTab7bSVkH/96184HI4myXw+Dfma6stVdDWkCK2urubll192f1xVVcXLL79MbGwsKSkpAPz4xz/myJEjvPLKK6d9fnl5OaWlpQ3Oejbjx4/nscce48UXX8TPz++Mx9hsNkaPHs0nn3xSZ9uCnJwc3n33XS6//HLCwsIa/Nxne+2IiLQ2WmETEZEGufHGG7nyyiv5/e9/z/79++nfvz8LFizgk08+YerUqe7R/QApKSksXLiQZ599lnbt2pGcnMywYcO44YYbeOuttwgPD6dXr16kp6ezcOHCOuP3PfVrqi9XgfX73/+en/zkJ/j6+nLjjTeec5Pudu3a8be//Y39+/fTrVs33nvvPTIzM/n3v/+Nr68vAHfccQfvv/8+EydOZMmSJVx22WU4HA527NjB+++/z/z588/bFlpf4eHh7r3lzuVPf/oTaWlpXH755fziF7/Ax8eHl19+mcrKSp5++ukLeu6UlBReeukl/vSnP9GlSxfi4uLcg1VERFoTFWwiItIgVquVTz/9lEcffZT33nuP119/nY4dO/L3v/+dX//613WOffbZZ3nggQd45JFHKC8vZ8KECQwbNoznn38em83GO++8Q0VFBZdddhkLFy5kzJgxHv811deQIUP44x//yOzZs/n6669xOp1kZWWds2CLjIzkjTfe4MEHH+SVV14hPj6eF154gfvvv79O1o8//piZM2fy5ptv8tFHHxEUFESnTp341a9+5R5S0px69+7NihUrmDFjBk899RROp5Nhw4bx9ttvn7YHW309+uijHDhwgKeffpqSkhKuuOIKFWwi0ipZDF2dKyIiYrqRI0eSn5/Pli1bzI4iIiIeRNewiYiIiIiIeCgVbCIiIiIiIh5KBZuIiIiIiIiH0jVsIiIiIiIiHkorbCIiIiIiIh5KBZuIiIiIiIiH0j5szcjpdHL06FFCQ0OxWCxmxxEREREREZMYhkFJSQnt2rXDaj37OpoKtmZ09OhREhMTzY4hIiIiIiIe4tChQyQkJJz1fhVszSg0NBSoOSlhYWEmp2nd7HY7CxYsYPTo0fj6+podR5qZzn/rpvPfuun8t246/+JJr4Hi4mISExPdNcLZqGBrRq42yLCwMBVsJrPb7QQFBREWFmb6D6s0P53/1k3nv3XT+W/ddP7FE18D57tUSkNHREREREREPJQKNhEREREREQ+lgk1ERERERMRDqWATERERERHxUCrYREREREREPJQKNhEREREREQ+lgk1ERERERMRDqWATERERERHxUCrYREREREREPJQKNhEREREREQ+lgk1ERERERMRDqWATERERERHxUCrYREREREREPJQKNhEREREREQ+lgk1ERERERMRDqWATERERERHxUCrYRERERERaAYfTYP3BAhxOw+wo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2IYmn33/tTNxTYtM25aDw2k0djS5QKatsIWGhtKnT586twUHBxMdHe2+/d5772X69OlERUURFhbGgw8+SGpqqnvIx+jRo+nVqxd33HEHTz/9NNnZ2TzyyCNMnjzZvbI1ceJEXnjhBR5++GHuueceFi9ezPvvv88XX3zhft7p06czYcIEBg8ezNChQ3nuuecoLS3l7rvvBiA8PPy8WUREREREzLblSBGV1U6igv3oHBvSoM8dlhxNaIAP+SeryDxUQErS+SdMStMzfUrkucycOROr1cq4ceOorKxkzJgxvPjii+77bTYbn3/+OZMmTSI1NZXg4GAmTJjAk08+6T4mOTmZL774gmnTpvH888+TkJDAq6++ypgxY9zH3HrrreTl5fHoo4+SnZ3NgAED+Prrr+sMIjlfFhERERERs63JKgBgSMdILBZLgz7Xz8fKld3j+HTjURZsy1HB5iE8qmBbunRpnY8DAgKYNWsWs2bNOuvnJCUl8eWXX57zcUeOHMmGDRvOecyUKVOYMmXKWe+vTxYRERERETOtyToO1G/D7DMZ3TueTzceJW1rDjOu69mY0eQCtfCBnSIiIiIirYPDabDuQM0K27Dk6At6jCu6xeJrs7Avv5Q9uScbM55cIBVsIiIiIiItwM7sEkoqqgn2s9GzbegFPUZogC+Xdo4BYMG2s+83LM1HBZuIiIiISAvgaocclBSJj+3Cf80f3fu7aZFiPhVsIiIiIiItwNr9rnbIixsWMqpnTcG24WAhucUVF51LLo4KNhERERERL2cYBmv2nwAufOCIS3xYAAMSIwBI265VNrOpYBMRERER8XL7j5eRV1KJn81K/9pi62Kcuom2mEsFm4iIiIiIl1ubVbO61j8xnABf20U/3pja69hW7TnOycrqi348uXAq2EREREREvFxjtUO6dI4NITkmmCqHk2U78xrlMeXCqGATEREREfFya2pX2IZc5MARF4vFwujatkiN9zeXCjYRERERES+WU1zBwRNlWC2QkhTZaI/rGu+/eEcudoez0R5XGkYFm4iIiIiIF3OtrvVsG0ZYgG+jPe6AxEhiQvwoqajm230nGu1xpWFUsImIiIiIeDF3O2QjXb/mYrNa3HuyqS3SPCrYRERERES82NragSMXu2H2mZw63t8wjEZ/fDk/FWwiIiIiIl6qsKyKnTklAAxu5BU2gMu6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WrVq6eDBgxWW5efnV9rYGzZscD8+fvy4du/e7T5zlpiYqB07dig2NvaCj4CAgErLAAC4ehQ2AECV4+vrq507d2rHjh3y9fW9YH1wcLCeeuopjRo1Sn/961+1Y8cODR06VKWlpXrssceuepz69eursLBQ+fn5Onr0qM6cOVNpz6F79+6688479eabb1ZYfu+992rTpk1atGiRCgoKNH78+Avu5Hg9JkyYoDVr1mj79u1KTU1VeHi4+66Uo0eP1vr165Wenq78/HwVFBRoxYoVF9x0BADgORQ2AECVFBoaqtDQ0EuunzZtmnr16qWBAwcqMTFRe/bs0d/+9jdVr179qsfo1auXunbtqnvuuUe1atXS+++/XxnR3aZPn17hZh6S1KVLF2VmZur5559X69atdfLkSQ0aNKjSxpw2bZpGjBihVq1a6dChQ1q5cqX77FlCQoLWrVun3bt3q127dmrZsqXGjRun6OjoShsfAHBtDPM/L5QHAAAAANgCZ9gAAAAAwKYobAAAAABgUxQ2AAAAALApChsAAAAA2BSFDQAAAABsisIGAAAAADZFYQMAAAAAm6KwAQAAAIBNUdgAAAAAwKYobAAAAABgUxQ2AAAAALCp/wdjeyx8bXLELwAAAABJRU5ErkJggg==\n"},"metadata":{}}]},{"cell_type":"markdown","source":["Exercise : Read face cream and facewash product sales data and show it using the bar chart \\\\\n","The bar chart should display the number of units sold per month for each product. \\\\\n","Add a separate bar for each product in the same chart."],"metadata":{"id":"muEpI78E0LjF"}},{"cell_type":"code","source":["\n","import pandas as pd\n","import matplotlib.pyplot as plt\n","import numpy as np\n","!wget https://pynative.com/wp-content/uploads/2019/01/company_sales_data.csv\n","df_sales = pd.read_csv('company_sales_data.csv')\n","\n","months = df_sales['month_number']\n","facecream_sales = df_sales['facecream']\n","facewash_sales = df_sales['facewash']\n","\n","bar_width = 0.35\n","\n","x = np.arange(len(months))\n","\n","plt.figure(figsize=(12, 7))\n","\n","plt.bar(x - bar_width/2, facecream_sales, bar_width, label='Face Cream', color='skyblue')\n","plt.bar(x + bar_width/2, facewash_sales, bar_width, label='Face Wash', color='lightcoral')\n","\n","plt.xlabel('Month Number')\n","plt.ylabel('Units Sold')\n","plt.title('Monthly Sales of Face Cream and Face Wash')\n","plt.xticks(x, months)\n","plt.legend()\n","plt.grid(axis='y', linestyle='--', alpha=0.7)\n","plt.tight_layout()\n","plt.show()"],"metadata":{"id":"JmR3PAE71gIi","executionInfo":{"status":"ok","timestamp":1747746603284,"user_tz":-330,"elapsed":629,"user":{"displayName":"Krish Agrawal","userId":"07626220246875331431"}},"outputId":"2f1678a8-374e-4fcb-e710-7a2e5ba95ae7","colab":{"base_uri":"https://localhost:8080/","height":907}},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["--2025-05-20 13:10:01-- https://pynative.com/wp-content/uploads/2019/01/company_sales_data.csv\n","Resolving pynative.com (pynative.com)... 172.66.43.37, 172.66.40.219, 2606:4700:3108::ac42:28db, ...\n","Connecting to pynative.com (pynative.com)|172.66.43.37|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 659 [text/csv]\n","Saving to: ‘company_sales_data.csv.1’\n","\n","\rcompany_sales_data. 0%[ ] 0 --.-KB/s \rcompany_sales_data. 100%[===================>] 659 --.-KB/s in 0s \n","\n","2025-05-20 13:10:01 (273 MB/s) - ‘company_sales_data.csv.1’ saved [659/659]\n","\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAABKUAAAKyCAYAAAAEvm1SAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlYNJREFUeJzs3XlYVdX+x/HPPkwCCogKqCiiZqg5paZkOaSJRlY3b/PNbLAsu13N5sEhM9Mys9Gmq97KX2VlWXozzSlNu2mQpamlmJmiogKOIJz9+0PPlgMcBuXsA/h+PQ9P8T2Lvdfaa521Nl/X2RimaZoCAAAAAAAAbOTwdQUAAAAAAABw9iEpBQAAAAAAANuRlAIAAAAAAIDtSEoBAAAAAADAdiSlAAAAAAAAYDuSUgAAAAAAALAdSSkAAAAAAADYjqQUAAAAAAAAbEdSCgAAAAAAALYjKQUAQCViGIbuvffeUsvNmDFDhmFo27Zt3q/UaTIMQ2PGjPF1NYp16NAh3XHHHYqJiZFhGBo+fLivq4RKrGfPnurZs6evq1EtNWnSRJdffrmvqwEA8BGSUgCAs4IriWMYhlasWFHkddM01ahRIxmG4fVfkL777juNGTNGmZmZXj1PeX3xxRfq0aOHoqKiFBISoqZNm+raa6/VV1995euqVbhnnnlGM2bM0N133613331XN998s8eyTZo0scZO4a9jx47ZWOuyyc7O1tixY9WuXTvVrFlTwcHBOu+88/Twww9r586dvq5etVYVxsqePXtkGIb+9a9/FXntX//6lwzD0OjRo4u8NmjQIAUEBOjIkSN2VBMAcJbw93UFAACwU40aNTRr1ixddNFFbvFly5Zpx44dCgoK8nodvvvuO40dO1aDBw9WRESE189XFs8//7wefPBB9ejRQ48++qhCQkL0+++/a9GiRfrggw/Ur18/X1exQi1evFhdu3Yt9pfv4rRv314jR44sEg8MDKzoqp2RrVu3qk+fPtq+fbuuueYa3XnnnQoMDNS6dev0zjvvaM6cOdq8ebOvq1mtVfaxEhUVpXPOOafY5PzKlSvl7++vlStXFvtahw4dFBISYkc1AQBnCZJSAICzymWXXabZs2frpZdekr//qWVw1qxZ6tixozIyMnxYO9/Iy8vTuHHjdOmll+rrr78u8vqePXt8UCvv2rNnj1q1alXm8g0bNtQ//vEPL9bozOXl5enqq6/W7t27tXTp0iKJ1/Hjx2vixIklHuPIkSMkHc5QVRgrF110kf7zn//o0KFDqlmzpiTp8OHD+umnn3Tttddq7ty5ys/Pl5+fnyRp165d2rp1q6688kpfVhsAUA3x8T0AwFnlhhtu0L59+7Rw4UIrlpubq48//lg33nhjsT9z+PBhjRw5Uo0aNVJQUJDOPfdcPf/88zJN062c63lQn332mc477zwFBQWpdevWbh9/GzNmjB588EFJUnx8vPXRnsLPhirpGMW55ZZbVLduXR0/frzIa3379tW5557r8WczMjKUnZ2tbt26Fft6VFSU9f+5ubkaNWqUOnbsqPDwcIWGhuriiy/WkiVLSqyfy19//aXbbrtN0dHRVtv+/e9/Fyn38ssvq3Xr1goJCVHt2rXVqVMnzZo1q9Tj79mzR7fffruio6NVo0YNtWvXTjNnzrReX7p0qQzDUFpamubNm+fx+pfH9OnTdckllygqKkpBQUFq1aqVXn/99WLL/ve//1WPHj1Uq1YthYWFqXPnzkXa9f3336tfv34KDw9XSEiIevToUezOlcI++eQT/fTTT3r88ceLJKQkKSwsTOPHj7e+79mzp8477zytXbtW3bt3V0hIiB577DFJUk5OjkaPHq3mzZsrKChIjRo10kMPPaScnJzTarvruUFLly5Vp06dFBwcrDZt2mjp0qWSpE8//VRt2rRRjRo11LFjR6WkpJTa3v379+uBBx5QmzZtVLNmTYWFhal///766aef3Mq5+vyjjz7S+PHjFRsbqxo1aqh37976/fffixz3zTffVLNmzRQcHKwLLrhA3377bal1KavKMlYuuugi5efna/Xq1W7HysvL0wMPPKBDhw4pNTXVes11TNe4+vbbb3XNNdeocePG1vgYMWKEjh496nae9PR03XrrrYqNjVVQUJDq16+vK6+8stj324oVK3TBBReoRo0aatq0qf7zn/+U2g4AQNVHUgoAcFZp0qSJEhMT9X//939W7L///a+ysrJ0/fXXFylvmqauuOIKTZkyRf369dMLL7ygc889Vw8++KDuv//+IuVXrFihe+65R9dff70mTZqkY8eOaeDAgdq3b58k6eqrr9YNN9wgSZoyZYreffddvfvuu6pXr16Zj1Gcm2++Wfv27dOCBQvc4unp6Vq8eHGJOzeioqIUHBysL774Qvv37/dYTjrxvKK3335bPXv21MSJEzVmzBjt3btXSUlJbr/EFmf37t3q2rWrFi1apHvvvVdTp05V8+bNdfvtt+vFF1+0yr311lu677771KpVK7344osaO3as2rdvr++//77E4x89elQ9e/bUu+++q5tuuknPPfecwsPDNXjwYE2dOlWS1LJlS7377ruqW7eu2rdvX+z1L87x48eVkZHh9uV6ts7rr7+uuLg4PfbYY5o8ebIaNWqke+65R6+++qrbMWbMmKHk5GTt379fjz76qJ599lm1b9/eLeG4ePFide/eXdnZ2Ro9erSeeeYZZWZm6pJLLtH//ve/Eus4d+5cSSrx+ViF7du3T/3791f79u314osvqlevXnI6nbriiiv0/PPPa8CAAXr55Zd11VVXacqUKbruuuvcfr6sbZek33//XTfeeKMGDBigCRMm6MCBAxowYIDef/99jRgxQv/4xz80duxYbdmyRddee62cTmeJdd+6das+++wzXX755XrhhRf04IMP6ueff1aPHj2KfXbWs88+qzlz5uiBBx7Qo48+qtWrV+umm25yK/POO+/orrvuUkxMjCZNmqRu3brpiiuu0J9//lnma1oVxooruVTwI3wrV65UixYt1KFDB8XGxroltwonpWbPnq0jR47o7rvv1ssvv6ykpCS9/PLLGjRokNt5Bg4cqDlz5ujWW2/Va6+9pvvuu08HDx7U9u3b3cr9/vvv+vvf/65LL71UkydPVu3atTV48GCtX7++TNccAFCFmQAAnAWmT59uSjJ/+OEH85VXXjFr1aplHjlyxDRN07zmmmvMXr16maZpmnFxcWZycrL1c5999pkpyXz66afdjvf3v//dNAzD/P33362YJDMwMNAt9tNPP5mSzJdfftmKPffcc6YkMy0trUg9y3oMV3tcx8jPzzdjY2PN6667zu14L7zwgmkYhrl169YSr8+oUaNMSWZoaKjZv39/c/z48ebatWuLlMvLyzNzcnLcYgcOHDCjo6PN2267rUhbRo8ebX1/++23m/Xr1zczMjLcyl1//fVmeHi41R9XXnml2bp16xLrW5wXX3zRlGS+9957Viw3N9dMTEw0a9asaWZnZ1vxwv1ckri4OFNSkS9X21z1LigpKcls2rSp9X1mZqZZq1Yts0uXLubRo0fdyjqdTuu/55xzjpmUlGTFXMePj483L7300hLr2aFDBzM8PLxMbTJN0+zRo4cpyZw2bZpb/N133zUdDof57bffusWnTZtmSjJXrlzpVrfCCrfdNE9dw++++86KLViwwJRkBgcHm3/88YcVf+ONN0xJ5pIlS0qs/7Fjx8z8/Hy3WFpamhkUFGQ+9dRTVmzJkiWmJLNly5ZuY3fq1KmmJPPnn382TfPEWImKijLbt2/vVu7NN980JZk9evQosT4F21nZx4ppmmZUVJTZu3dvt3rceuutpmma5rXXXmtec8011mudOnUyzznnHLfzFDZhwgTTMAyrLw8cOGBKMp977rkS6+G6ZsuXL7die/bsMYOCgsyRI0eW2g4AQNXGTikAwFnn2muv1dGjR/Xll1/q4MGD+vLLLz1+dG/+/Pny8/PTfffd5xYfOXKkTNPUf//7X7d4nz591KxZM+v7tm3bKiwsTFu3bi1z/U7nGA6HQzfddJPmzp2rgwcPWvH3339fF154oeLj40s859ixYzVr1ix16NBBCxYs0OOPP66OHTvq/PPP16+//mqV8/Pzsx7Y7HQ6tX//fuXl5alTp0768ccfPR7fNE198sknGjBggEzTdNtFkpSUpKysLOvnIyIitGPHDv3www8lX6hC5s+fr5iYGGsnmiQFBATovvvu06FDh7Rs2bJyHa+gLl26aOHChW5frl0hwcHBVrmsrCxlZGSoR48e2rp1q7KysiRJCxcu1MGDB/XII4+oRo0absc2DEOSlJqaqt9++0033nij9u3bZ12fw4cPq3fv3lq+fHmJu4eys7NVq1atcrUrKChIt956q1ts9uzZatmypRISEtz66ZJLLpEkt49qlqXtLq1atVJiYqL1fZcuXSRJl1xyiRo3blwkXtp7JigoSA7HiVvZ/Px87du3TzVr1tS5555b7Fi89dZb3R42fvHFF7udZ82aNdqzZ4+GDh3qVm7w4MEKDw8vsS4FVYWxIkndunXT999/r/z8fDmdTq1evVoXXnih9Zprd9SRI0eUmprq9pHQgu04fPiwMjIydOGFF8o0Teujl8HBwQoMDNTSpUt14MCBEuvSqlUrqz8kqV69ejr33HPLNW8CAKomHnQOADjr1KtXT3369NGsWbN05MgR5efn6+9//3uxZf/44w81aNCgyC/7LVu2tF4vqOAv1y61a9cu9ZeyijjGoEGDNHHiRM2ZM0eDBg3S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eLDWrl2rJk2a6OOPP9bKlSv14osvlvsh4GXRt29fBQYGasCAAbrrrrt06NAhvfXWW4qKirJ2l0kndrRMmTJFd9xxhzp37qwbb7xRtWvX1k8//aQjR45o5syZcjgcevvtt9W/f3+1bt1at956qxo2bKi//vpLS5YsUVhYmL744guPdQkICNCnn36qPn36qHv37rr22mvVrVs3BQQEaP369Zo1a5Zq166t8ePHl9imm2++WR999JGGDh2qJUuWqFu3bsrPz9fGjRv10UcfacGCBerUqVOZ2+4tl19+uZ566indeuutuvDCC/Xzzz/r/fffL9fznwoKCAjQ008/rbvuukuXXHKJrrvuOqWlpWn69OmnfcyCKtNYcbnooousnVqFn9l24YUXasKECVY5l4SEBDVr1kwPPPCA/vrrL4WFhemTTz4p8vynzZs3q3fv3rr22mvVqlUr+fv7a86cOdq9e7euv/76076OAIBqxua/9gcAgE9Mnz7dlGT+8MMPJZaLi4szk5OT3WIHDx40R4wYYTZo0MAMCAgwzznnHPO5555z+1Pspmmaksxhw4YVe8xbbrnFLTZu3DizYcOGpsPhMCWZaWlp5TqGqz2unyvoo48+MiWZd955Z4ltdTl+/Lj51ltvmVdddZUZFxdnBgUFmSEhIWaHDh3M5557zszJybHKOp1O85lnnrHKdejQwfzyyy/NW265xYyLiytyPUaPHu0W2717tzls2DCzUaNGZkBAgBkTE2P27t3bfPPNN60yb7zxhtm9e3ezTp06ZlBQkNmsWTPzwQcfNLOyskpty+7du81bb73VrFu3rhkYGGi2adPGnD59epFyxfWzJ6WVnTt3rtm2bVuzRo0aZpMmTcyJEyea//73v4vtn7lz55oXXnihGRwcbIaFhZkXXHCB+X//939uZVJSUsyrr77aan9cXJx57bXXmt98802Z6nvgwAFz1KhRZps2bcyQkBCzRo0a5nnnnWc++uij5q5du6xyPXr0MFu3bl3sMXJzc82JEyearVu3NoOCgszatWubHTt2NMeOHevWD2Vtu6drWNx4T0tLMyWZzz33XIntPHbsmDly5Eizfv36ZnBwsNmtWzdz1apVZo8ePcwePXpY5ZYsWWJKMmfPnl3seQqPj9dee82Mj483g4KCzE6dOpnLly8vckxPqtpYWbBggSnJ9Pf3Nw8fPuz22r59+0zDMExJ5vfff+/22oYNG8w+ffqYNWvWNOvWrWsOGTLE/Omnn9yuZ0ZGhjls2DAzISHBDA0NNcPDw80uXbqYH330UZmuWVmvOQCgajNMkycIAgBQnXz++ee66qqrtHz5crc/sw4AAABUJiSlAACoZi6//HL9+uuv+v333736UHUAAADgTPBMKQAAqokPPvhA69at07x58zR16lQSUgAAAKjU2CkFAEA1YRiGatasqeuuu07Tpk2Tvz//9gQAAIDKi7tVAACqCf6dCQAAAFWJw9cVAAAAAAAAwNmHpBQAAAAAAABsx8f3ysDpdGrnzp2qVasWD40FAAAAAAAogWmaOnjwoBo0aCCHw/N+KJJSZbBz5041atTI19UAAAAAAACoMv7880/FxsZ6fJ2kVBnUqlVL0omLGRYW5uPaAAAAAAAAVF7Z2dlq1KiRlU/xhKRUGbg+shcWFkZSCgAAAAAAoAxKewQSDzoHAAAAAACA7UhKAQAAAAAAwHYkpQAAAAAAAGA7nikFAAAAAADKJT8/X8ePH/d1NeAjAQEB8vPzO+PjkJQCAAAAAABlYpqm0tPTlZmZ6euqwMciIiIUExNT6sPMS0JSCgAAAAAAlIkrIRUVFaWQkJAzSkigajJNU0eOHNGePXskSfXr1z/tY5GUAgAAAAAApcrPz7cSUnXq1PF1deBDwcHBkqQ9e/YoKirqtD/Kx4POAQAAAABAqVzPkAoJCfFxTVAZuMbBmTxbjKQUAAAAAAAoMz6yB6lixgFJKQAAAAAAANiOpBQAAAAAAABsx4POAQAAAADAGXk2JcPW8z3SoW65yg8ePFgzZ84sEv/tt9/UvHnziqpWufz+++8aP368Fi5cqL1796pBgwbq2rWrRo4cqU6dOvmkTnZjpxQAAAAAAKj2+vXrp127drl9xcfH+6Qua9asUceOHbV582a98cYb2rBhg+bMmaOEhASNHDnS48+dyUPFKyOSUgAAAAAAoNoLCgpSTEyM25efn59eeOEFtWnTRqGhoWrUqJHuueceHTp0yO1nV65cqZ49eyokJES1a9dWUlKSDhw4IElyOp2aMGGC4uPjFRwcrHbt2unjjz/2WA/TNDV48GCdc845+vbbb5WcnKxmzZqpffv2Gj16tD7//HNJ0rZt22QYhj788EP16NFDNWrU0Pvvvy9Jevvtt9WyZUvVqFFDCQkJeu2119zO8fDDD6tFixYKCQlR06ZN9eSTT7oltMaMGaP27dvr3//+txo3bqyaNWvqnnvuUX5+viZNmqSYmBhFRUVp/PjxFXLtPeHjewAAAAAA4KzlcDj00ksvKT4+Xlu3btU999yjhx56yEr0pKamqnfv3rrttts0depU+fv7a8mSJcrPz5ckTZgwQe+9956mTZumc845R8uXL9c//vEP1atXTz169ChyvtTUVK1fv16zZs2Sw1F0r1BERITb94888ogmT56sDh06WImpUaNG6ZVXXlGHDh2UkpKiIUOGKDQ0VLfccoskqVatWpoxY4YaNGign3/+WUOGDFGtWrX00EMPWcfdsmWL/vvf/+qrr77Sli1b9Pe//11bt25VixYttGzZMn333Xe67bbb1KdPH3Xp0qWiLrcbwzRN0ytHrkays7MVHh6urKwshYWF+bo6AAAAAADY7tixY0pLS1N8fLxq1Kjh9lpVeKbUe++951bv/v37a/bs2UXKfvzxxxo6dKgyMk606cYbb9T27du1YsWKImVzcnIUGRmpRYsWKTEx0YrfcccdOnLkiGbNmlXkZz766CNdd911+vHHH9WhQwePdd62bZvi4+P14osv6l//+pcVb968ucaNG6cbbrjBij399NOaP3++vvvuu2KP9fzzz+uDDz7QmjVrJJ3YKfXcc88pPT1dtWrVknTi442bNm3Sli1brGRZQkKCBg8erEceeaTIMUsaD2XNo7BTCgAAAAAAVHu9evXS66+/bn0fGhoqSVq0aJEmTJigjRs3Kjs7W3l5eTp27JiOHDmikJAQpaam6pprrin2mL///ruOHDmiSy+91C2em5vrMeFU3r1BBR96fvjwYW3ZskW33367hgwZYsXz8vIUHh5uff/hhx/qpZde0pYtW3To0CHl5eUVSQ41adLESkhJUnR0tPz8/Nx2b0VHR2vPnj3lqm95kJQCAAAAAADVXmhoaJG/tLdt2zZdfvnluvvuuzV+/HhFRkZqxYoVuv3225Wbm6uQkBAFBwd7PKbr2VPz5s1Tw4YN3V4LCgoq9mdatGghSdq4cWOJO6UK1rvw+d56660iH6nz8/OTJK1atUo33XSTxo4dq6SkJIWHh+uDDz7Q5MmT3coHBAS4fW8YRrExp9NZah1PF0kpAAAAAABwVlq7dq2cTqcmT55s7RD66KOP3Mq0bdtW33zzjcaOHVvk51u1aqWgoCBt37692OdHFad9+/Zq1aqVJk+erOuuu67Ic6UyMzOLPFfKJTo6Wg0aNNDWrVt10003FVvmu+++U1xcnB5//HEr9scff5SpbnYjKQUAAAAAAM5KzZs31/Hjx/Xyyy9rwIABWrlypaZNm+ZW5tFHH1WbNm10zz33aOjQoQoMDNSSJUt0zTXXqG7dunrggQc0YsQIOZ1OXXTRRcrKytLKlSsVFhZmPXi8IMMwNH36dPXp00cXX3yxHn/8cSUkJOjQoUP64osv9PXXX2vZsmUe6zx27Fjdd999Cg8PV79+/ZSTk6M1a9bowIEDuv/++3XOOedo+/bt+uCDD9S5c2fNmzdPc+bMqfBrVxGKPuYdAAAAAADgLNCuXTu98MILmjhxos477zy9//77mjBhgluZFi1a6Ouvv9ZPP/2kCy64QImJifr888/l739in8+4ceP05JNPasKECWrZsqX69eunefPmKT4+3uN5L7jgAq1Zs0bNmzfXkCFD1LJlS11xxRVav369XnzxxRLrfMcdd+jtt9/W9OnT1aZNG/Xo0UMzZsywznfFFVdoxIgRuvfee9W+fXt99913evLJJ8/sQnkJf32vDPjrewAAAACAs11Jf20NZ5+K+Ot77JQCAAAAAACA7UhKAQAAAAAAwHYkpQAAAAAAAGA7klIAAAAAAACwnb+vKwAAAABUB8+mZPjkvI90qOuT8wIAcKbYKQUAAAAAAADbkZQCAAAAAACA7UhKAQAAAAAAwHYkpQAAAAAAAGA7klIAAAAAAADV2NKlS2UYhjIzM31dFTf89T0AAAAAAHBGssaOtfV84aNHl6v84MGDNXPmzCLx3377Tc2bN6+oapXJI488os8++0wbN260Yhs3blTLli11yy23aMaMGVZ8xowZuuuuu5SZmang4GBb62kHdkoBAAAAAIBqr1+/ftq1a5fbV3x8vO316NWrlzZt2qT09HQrtmTJEjVq1EhLly51K7tkyRJ17dq1WiakJJJSAAAAAADgLBAUFKSYmBi3Lz8/P73wwgtq06aNQkND1ahRI91zzz06dOiQ28+uXLlSPXv2VEhIiGrXrq2kpCQdOHBAkuR0OjVhwgTFx8crODhY7dq108cff+yxHhdddJECAgLcElBLly7VsGHDtH//fm3bts0t3qtXL0kqtZ5//PGHBgwYoNq1ays0NFStW7fW/Pnz3c69du1aderUSSEhIbrwwgu1adOm072cFYKkFAAAAAAAOGs5HA699NJLWr9+vWbOnKnFixfroYcesl5PTU1V79691apVK61atUorVqzQgAEDlJ+fL0maMGGC/vOf/2jatGlav369RowYoX/84x9atmxZsecLDQ1V586dtWTJEiu2dOlS9e7dW926dbPiW7du1fbt262kVGn1HDZsmHJycrR8+XL9/PPPmjhxomrWrOl27scff1yTJ0/WmjVr5O/vr9tuu61iLuJp4plSAAAAAACg2vvyyy/dkjT9+/fX7NmzNXz4cCvWpEkTPf300xo6dKhee+01SdKkSZPUqVMn63tJat26tSQpJydHzzzzjBYtWqTExERJUtOmTbVixQq98cYb6tGjR7F16dWrl2bPni1J2rBhg44dO6YOHTqoe/fuWrp0qW699VYtXbpUNWrUUNeuXSWp1Hpu375dAwcOVJs2bax6FDZ+/HirTo888oiSk5N17Ngx1ahRo+wXsgKRlAIAAAAAANVer1699Prrr1vfh4aGSpIWLVqkCRMmaOPGjcrOzlZeXp6OHTumI0eOKCQkRKmpqbrmmmuKPebvv/+uI0eO6NJLL3WL5+bmqkOHDh7r0rNnT40fP167du3S0qVLddFFF8nPz089evTQtGnTJJ3YPXXhhRcqKCioTPW87777dPfdd+vrr79Wnz59NHDgQLVt29btvAW/r1+/viRpz549aty4cVkvY4Xi43sAAAAAAKDaCw0NVfPmza2v+vXra9u2bbr88svVtm1bffLJJ1q7dq1effVVSScSS5JKfMi465lO8+bNU2pqqvW1YcOGEp8r1a1bNwUGBmrJkiVasmSJtXupc+fOysjI0NatW7V06VJdcsklklSmet5xxx3aunWrbr75Zv3888/q1KmTXn75ZbfzBgQEWP9vGIakE8/E8hWSUgAAAAAA4Ky0du1aOZ1OTZ48WV27dlWLFi20c+dOtzJt27bVN998U+zPt2rVSkFBQdq+fbtbwqt58+Zq1KiRx/MGBwerS5cuWrp0qZYtW6aePXtKOpE06tq1q9555x39+eef1vOkylJPSWrUqJGGDh2qTz/9VCNHjtRbb711mlfGHnx8DwAAAAAAnJWaN2+u48eP6+WXX9aAAQO0cuVK6+NzLo8++qja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\n"},"metadata":{}}]}]} \ No newline at end of file From 42b8a98a9e8c2298df7f93851fd00307e12b1b12 Mon Sep 17 00:00:00 2001 From: Krish3779 Date: Mon, 16 Jun 2025 13:32:32 +0530 Subject: [PATCH 2/3] Create week 1-2 --- week 1-2 | 1 + 1 file changed, 1 insertion(+) create mode 100644 week 1-2 diff --git a/week 1-2 b/week 1-2 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/week 1-2 @@ -0,0 +1 @@ + From 1bef84b59df39551b517f1c3b43a916d689fc165 Mon Sep 17 00:00:00 2001 From: Krish3779 Date: Mon, 16 Jun 2025 13:46:12 +0530 Subject: [PATCH 3/3] Add files via upload --- Assignment2.ipynb | 188 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 Assignment2.ipynb diff --git a/Assignment2.ipynb b/Assignment2.ipynb new file mode 100644 index 0000000..31e2a23 --- /dev/null +++ b/Assignment2.ipynb @@ -0,0 +1,188 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "DkFiemNTu5IA", + "outputId": "0b477220-e320-4a05-c6f8-41fe5d986019" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + ":5: ParserWarning: Skipping line 12735: unexpected end of data\n", + "\n", + " df=pd.read_csv('movie.csv', engine='python', on_bad_lines='warn')\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 12733 entries, 0 to 12732\n", + "Data columns (total 2 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 text 12733 non-null object\n", + " 1 label 12733 non-null int64 \n", + "dtypes: int64(1), object(1)\n", + "memory usage: 199.1+ KB\n", + "label\n", + "0 6382\n", + "1 6324\n", + "Name: count, dtype: int64\n", + "[0 1]\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAINCAYAAADInGVbAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAALR1JREFUeJzt3X+Ul3Wd///HAM6A4gyhMCMrGK2tSvkj0XBOaWrkZNTJDSuLlJJ0daECWmQ5x0XTNkwzfyeVGbqrJ3V3NZUNZTFx1fFHU5g/kqzo4K7OYCkzSgoI8/1jD++vE35MkBfvAW63c65zmOt6zfV+Xv7h+9zP9X5fU9Pd3d0dAAAAtqg+1R4AAABgeyS2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAooF+1B9gWrF+/Ps8880x23XXX1NTUVHscAACgSrq7u/Piiy9m2LBh6dPnje9dia034Zlnnsnw4cOrPQYAANBLPP3009lzzz3fcI3YehN23XXXJP/3H7S+vr7K0wAAANXS1dWV4cOHVxrhjYitN2HDRwfr6+vFFgAA8Ka+XuQBGQAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEAB/ao9AG/d6BnXVnsEgC2q7YKTqj0CALxl7mwBAAAUILYAAAAKEFsAAAAF+M4WAGwnfIcX2N5s69/hdWcLAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoICqx9b//u//5nOf+1x22223DBgwIPvvv39+9rOfVY53d3dn9uzZ2WOPPTJgwICMHTs2Tz31VI9zPP/885kwYULq6+szaNCgTJo0KS+99FKPNb/85S9z+OGHp3///hk+fHjOP//8rXJ9AADAjqmqsfXCCy/kfe97X3baaaf85Cc/yRNPPJELL7wwb3vb2yprzj///Fx66aWZO3duHnzwweyyyy5paWnJK6+8UlkzYcKEPP7441m4cGFuv/323HPPPTn11FMrx7u6unLMMcdkr732SltbWy644IKcffbZ+d73vrdVrxcAANhx9Kvmi3/zm9/M8OHD88Mf/rCyb+TIkZV/d3d35+KLL86ZZ56Zj3/840mSa6+9No2Njbnllltywgkn5Fe/+lUWLFiQhx9+OIccckiS5LLLLstHPvKRfOtb38qwYcNy3XXXZc2aNbn66qtTW1ubd73rXVmyZEm+/e1v94gyAACALaWqd7ZuvfXWHHLIIfnkJz+ZoUOH5j3veU++//3vV44vW7Ys7e3tGTt2bGVfQ0NDxowZk9bW1iRJa2trBg0aVAmtJBk7dmz69OmTBx98sLLmiCOOSG1tbWVNS0tLli5dmhdeeGGjuVavXp2urq4eGwAAwKaoamz97ne/y5VXXpl3vvOdueOOO3L66afny1/+cq655pokSXt7e5KksbGxx+81NjZWjrW3t2fo0KE9jvfr1y+DBw/useb1zvHa13itOXPmpKGhobINHz58C1wtAACwI6lqbK1fvz4HH3xwvvGNb+Q973lPTj311JxyyimZO3duNcfKrFmz0tnZWdmefvrpqs4DAABse6oaW3vssUdGjRrVY99+++2X5cuXJ0mampqSJB0dHT3WdHR0VI41NTVlxYoVPY6/+uqref7553useb1zvPY1Xquuri719fU9NgAAgE1R1dh63/vel6VLl/bY9+tf/zp77bVXkv97WEZTU1MWLVpUOd7V1ZUHH3wwzc3NSZLm5uasXLkybW1tlTV33XVX1q9fnzFjxlTW3HPPPVm7dm1lzcKFC7PPPvv0ePIhAADAllLV2Jo2bVoeeOCBfOMb38hvfvObXH/99fne976XyZMnJ0lqamoyderUfP3rX8+tt96aRx99NCeddFKGDRuW4447Lsn/3Qn78Ic/nFNOOSUPPfRQ7rvvvkyZMiUnnHBChg0bliT57Gc/m9ra2kyaNCmPP/54brjhhlxyySWZPn16tS4dAADYzlX10e+HHnpobr755syaNSvnnHNORo4cmYsvvjgTJkyorDnjjDOyatWqnHrqqVm5cmXe//73Z8GCBenfv39lzXXXXZcpU6bkgx/8YPr06ZPx48fn0ksvrRxvaGjInXfemcmTJ2f06NHZfffdM3v2bI99BwAAiqnp7u7urvYQvV1XV1caGhrS2dnZK7+/NXrGtdUeAWCLarvgpGqPsE3yfgBsb3rj+8GmtEFVP0YIAACwvRJbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFVDW2zj777NTU1PTY9t1338rxV155JZMnT85uu+2WgQMHZvz48eno6OhxjuXLl2fcuHHZeeedM3To0MyYMSOvvvpqjzV33313Dj744NTV1WXvvffOvHnztsblAQAAO7Cq39l617velWeffbay3XvvvZVj06ZNy2233ZabbropixcvzjPPPJNPfOITlePr1q3LuHHjsmbNmtx///255pprMm/evMyePbuyZtmyZRk3blyOOuqoLFmyJFOnTs0Xv/jF3HHHHVv1OgEAgB1Lv6oP0K9fmpqaNtrf2dmZH/zgB7n++utz9NFHJ0l++MMfZr/99ssDDzyQww47LHfeeWeeeOKJ/Nd//VcaGxtz0EEH5dxzz83MmTNz9tlnp7a2NnPnzs3IkSNz4YUXJkn222+/3HvvvbnooovS0tKyVa8VAADYcVT9ztZTTz2VYcOG5R3veEcmTJiQ5cuXJ0na2tqydu3ajB07trJ23333zYgRI9La2pokaW1tzf7775/GxsbKmpaWlnR1deXxxx+vrHntOTas2XCO17N69ep0dXX12AAAADZFVWNrzJgxmTdvXhYsWJArr7wyy5Yty+GHH54XX3wx7e3tqa2tzaBBg3r8TmNjY9rb25Mk7e3tPUJrw/ENx95oTVdXV15++eXXnWvOnDlpaGiobMOHD98SlwsAAOxAqvoxwmOPPbby7wMOOCBjxozJXnvtlRtvvDEDBgyo2lyzZs3K9OnTKz93dXUJLgAAYJNU/WOErzVo0KD8zd/8TX7zm9+kqakpa9asycqVK3us6ejoqHzHq6mpaaOnE274+S+tqa+v/38GXV1dXerr63tsAAAAm6JXxdZLL72U3/72t9ljjz0yevTo7LTTTlm0aFHl+NKlS7N8+fI0NzcnSZqbm/Poo49mxYoVlTULFy5MfX19Ro0aVVnz2nNsWLPhHAAAACVUNbb+4R/+IYsXL87vf//73H///fnbv/3b9O3bN5/5zGfS0NCQSZMmZfr06fnpT3+atra2fOELX0hzc3MOO+ywJMkxxxyTUaNG5cQTT8wjjzySO+64I2eeeWYmT56curq6JMlpp52W3/3udznjjDPy5JNP5jvf+U5uvPHGTJs2rZqXDgAAbOeq+p2t//mf/8lnPvOZ/PGPf8yQIUPy/ve/Pw888ECGDBmSJLnooovSp0+fjB8/PqtXr05LS0u+853vVH6/b9++uf3223P66aenubk5u+yySyZOnJhzzjmnsmbkyJGZP39+pk2blksuuSR77rlnrrrqKo99BwAAiqrp7u7urvYQvV1XV1caGhrS2dnZK7+/NXrGtdUeAWCLarvgpGqPsE3yfgBsb3rj+8GmtEGv+s4WAADA9kJsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAU0Gti67zzzktNTU2mTp1a2ffKK69k8uTJ2W233TJw4MCMHz8+HR0dPX5v+fLlGTduXHbeeecMHTo0M2bMyKuvvtpjzd13352DDz44dXV12XvvvTNv3rytcEUAAMCOrFfE1sMPP5zvfve7OeCAA3rsnzZtWm677bbcdNNNWbx4cZ555pl84hOfqBxft25dxo0blzVr1uT+++/PNddck3nz5mX27NmVNcuWLcu4ceNy1FFHZcmSJZk6dWq++MUv5o477thq1wcAAOx4qh5bL730UiZMmJDvf//7edvb3lbZ39nZmR/84Af59re/naOPPjqjR4/OD3/4w9x///154IEHkiR33nlnnnjiifzrv/5rDjrooBx77LE599xzc8UVV2TNmjVJkrlz52bkyJG58MILs99++2XKlCk5/vjjc9FFF1XlegEAgB1D1WNr8uTJGTduXMaOHdtjf1tbW9auXdtj/7777psRI0aktbU1SdLa2pr9998/jY2NlTUtLS3p6urK448/Xlnz5+duaWmpnOP1rF69Ol1dXT02AACATdGvmi/+ox/9KD//+c/z8MMPb3Ssvb09tbW1GTRoUI/9jY2NaW9vr6x5bWhtOL7h2But6erqyssvv5wBAwZs9Npz5szJ1772tc2+LgAAgKrd2Xr66afzla98Jdddd1369+9frTFe16xZs9LZ2VnZnn766WqPBAAAbGOqFlttbW1ZsWJFDj744PTr1y/9+vXL4sWLc+mll6Zfv35pbGzMmjVrsnLlyh6/19HRkaampiRJU1PTRk8n3PDzX1pTX1//une1kqSuri719fU9NgAAgE1Rtdj64Ac/mEcffTRLliypbIccckgmTJhQ+fdOO+2URYsWVX5n6dKlWb58eZqbm5Mkzc3NefTRR7NixYrKmoULF6a+vj6jRo2qrHntOTas2XAOAACAEqr2na1dd9017373u3vs22WXXbLbbrtV9k+aNCnTp0/P4MGDU19fny996Utpbm7OYYcdliQ55phjMmrUqJx44ok5//zz097enjPPPDOTJ09OXV1dkuS0007L5ZdfnjPOOCMnn3xy7rrrrtx4442ZP3/+1r1gAABgh1LVB2T8JRdddFH69OmT8ePHZ/Xq1Wlpacl3vvOdyvG+ffvm9ttvz+mnn57m5ubssssumThxYs4555zKmpEjR2b+/PmZNm1aLrnkkuy555656qqr0tLSUo1LAgAAdhA13d3d3dUeorfr6upKQ0NDOjs7e+X3t0bPuLbaIwBsUW0XnFTtEbZJ3g+A7U1vfD/YlDao+t/ZAgAA2B6JLQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFDAZsXW0UcfnZUrV260v6urK0cfffRbnQkAAGCbt1mxdffdd2fNmjUb7X/llVfy3//93295KAAAgG1dv01Z/Mtf/rLy7yeeeCLt7e2Vn9etW5cFCxbkr/7qr7bcdAAAANuoTYqtgw46KDU1NampqXndjwsOGDAgl1122RYbDgAAYFu1SbG1bNmydHd35x3veEceeuihDBkypHKstrY2Q4cOTd++fbf4kAAAANuaTYqtvfbaK0myfv36IsMAAABsLzYptl7rqaeeyk9/+tOsWLFio/iaPXv2Wx4MAABgW7ZZsfX9738/p59+enbfffc0NTWlpqamcqympkZsAQAAO7zNiq2vf/3r+ed//ufMnDlzS88DAACwXdisv7P1wgsv5JOf/OSWngUAAGC7sVmx9clPfjJ33nnnlp4FAABgu7FZHyPce++980//9E954IEHsv/++2ennXbqcfzLX/7yFhkOAABgW7VZsfW9730vAwcOzOLFi7N48eIex2pqasQWAACww9us2Fq2bNmWngMAAGC7slnf2QIAAOCNbdadrZNPPvkNj1999dWbNQwAAMD2YrNi64UXXujx89q1a/PYY49l5cqVOfroo7fIYAAAANuyzYqtm2++eaN969evz+mnn56//uu/fstDAQAAbOu22He2+vTpk+nTp+eiiy7aUqcEAADYZm3RB2T89re/zauvvrolTwkAALBN2qyPEU6fPr3Hz93d3Xn22Wczf/78TJw4cYsMBgAAsC3brNj6xS9+0ePnPn36ZMiQIbnwwgv/4pMKAQAAdgSbFVs//elPt/QcAAAA25XNiq0NnnvuuSxdujRJss8++2TIkCFbZCgAAIBt3WY9IGPVqlU5+eSTs8cee+SII47IEUcckWHDhmXSpEn505/+tKVnBAAA2OZsVmxNnz49ixcvzm233ZaVK1dm5cqV+fGPf5zFixfnq1/96paeEQAAYJuzWR8j/Pd///f827/9W4488sjKvo985CMZMGBAPvWpT+XKK6/cUvMBAABskzbrztaf/vSnNDY2brR/6NChPkYIAACQzYyt5ubmnHXWWXnllVcq+15++eV87WtfS3Nz8xYbDgAAYFu1WR8jvPjii/PhD384e+65Zw488MAkySOPPJK6urrceeedW3RAAACAbdFmxdb++++fp556Ktddd12efPLJJMlnPvOZTJgwIQMGDNiiAwIAAGyLNiu25syZk8bGxpxyyik99l999dV57rnnMnPmzC0yHAAAwLZqs76z9d3vfjf77rvvRvvf9a53Ze7cuW95KAAAgG3dZsVWe3t79thjj432DxkyJM8+++xbHgoAAGBbt1mxNXz48Nx3330b7b/vvvsybNiwtzwUAADAtm6zvrN1yimnZOrUqVm7dm2OPvroJMmiRYtyxhln5Ktf/eoWHRAAAGBbtFmxNWPGjPzxj3/M3//932fNmjVJkv79+2fmzJmZNWvWFh0QAABgW7RZHyOsqanJN7/5zTz33HN54IEH8sgjj+T555/P7NmzN+k8V155ZQ444IDU19envr4+zc3N+clPflI5/sorr2Ty5MnZbbfdMnDgwIwfPz4dHR09zrF8+fKMGzcuO++8c4YOHZoZM2bk1Vdf7bHm7rvvzsEHH5y6urrsvffemTdv3uZcNgAAwJu2WbG1wcCBA3PooYfm3e9+d+rq6jb59/fcc8+cd955aWtry89+9rMcffTR+fjHP57HH388STJt2rTcdtttuemmm7J48eI888wz+cQnPlH5/XXr1mXcuHFZs2ZN7r///lxzzTWZN29ej+hbtmxZxo0bl6OOOipLlizJ1KlT88UvfjF33HHHW7l0AACAN1TT3d3dXe0hXmvw4MG54IILcvzxx2fIkCG5/vrrc/zxxydJnnzyyey3335pbW3NYYcdlp/85Cf56Ec/mmeeeSaNjY1Jkrlz52bmzJl57rnnUltbm5kzZ2b+/Pl57LHHKq9xwgknZOXKlVmwYMGbmqmrqysNDQ3p7OxMfX39lr/ot2j0jGurPQLAFtV2wUnVHmGb5P0A2N70xveDTWmDt3Rna0tat25dfvSjH2XVqlVpbm5OW1tb1q5dm7Fjx1bW7LvvvhkxYkRaW1uTJK2trdl///0roZUkLS0t6erqqtwda21t7XGODWs2nOP1rF69Ol1dXT02AACATVH12Hr00UczcODA1NXV5bTTTsvNN9+cUaNGpb29PbW1tRk0aFCP9Y2NjWlvb0/yf3/v67WhteH4hmNvtKarqysvv/zy6840Z86cNDQ0VLbhw4dviUsFAAB2IFWPrX322SdLlizJgw8+mNNPPz0TJ07ME088UdWZZs2alc7Ozsr29NNPV3UeAABg27NZj37fkmpra7P33nsnSUaPHp2HH344l1xyST796U9nzZo1WblyZY+7Wx0dHWlqakqSNDU15aGHHupxvg1PK3ztmj9/gmFHR0fq6+szYMCA152prq5usx74AQAAsEHV72z9ufXr12f16tUZPXp0dtpppyxatKhybOnSpVm+fHmam5uTJM3NzXn00UezYsWKypqFCxemvr4+o0aNqqx57Tk2rNlwDgAAgBKqemdr1qxZOfbYYzNixIi8+OKLuf7663P33XfnjjvuSENDQyZNmpTp06dn8ODBqa+vz5e+9KU0NzfnsMMOS5Icc8wxGTVqVE488cScf/75aW9vz5lnnpnJkydX7kyddtppufzyy3PGGWfk5JNPzl133ZUbb7wx8+fPr+alAwAA27mqxtaKFSty0kkn5dlnn01DQ0MOOOCA3HHHHfnQhz6UJLnooovSp0+fjB8/PqtXr05LS0u+853vVH6/b9++uf3223P66aenubk5u+yySyZOnJhzzjmnsmbkyJGZP39+pk2blksuuSR77rlnrrrqqrS0tGz16wUAAHYcve7vbPVG/s4WwNbVG/+uyrbA+wGwvemN7wfb5N/ZAgAA2J6ILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAqoaW3PmzMmhhx6aXXfdNUOHDs1xxx2XpUuX9ljzyiuvZPLkydltt90ycODAjB8/Ph0dHT3WLF++POPGjcvOO++coUOHZsaMGXn11Vd7rLn77rtz8MEHp66uLnvvvXfmzZtX+vIAAIAdWFVja/HixZk8eXIeeOCBLFy4MGvXrs0xxxyTVatWVdZMmzYtt912W2666aYsXrw4zzzzTD7xiU9Ujq9bty7jxo3LmjVrcv/99+eaa67JvHnzMnv27MqaZcuWZdy4cTnqqKOyZMmSTJ06NV/84hdzxx13bNXrBQAAdhw13d3d3dUeYoPnnnsuQ4cOzeLFi3PEEUeks7MzQ4YMyfXXX5/jjz8+SfLkk09mv/32S2traw477LD85Cc/yUc/+tE888wzaWxsTJLMnTs3M2fOzHPPPZfa2trMnDkz8+fPz2OPPVZ5rRNOOCErV67MggUL/uJcXV1daWhoSGdnZ+rr68tc/Fswesa11R4BYItqu+Ckao+wTfJ+AGxveuP7waa0Qa/6zlZnZ2eSZPDgwUmStra2rF27NmPHjq2s2XfffTNixIi0trYmSVpbW7P//vtXQitJWlpa0tXVlccff7yy5rXn2LBmwzn+3OrVq9PV1dVjAwAA2BS9JrbWr1+fqVOn5n3ve1/e/e53J0na29tTW1ubQYMG9Vjb2NiY9vb2yprXhtaG4xuOvdGarq6uvPzyyxvNMmfOnDQ0NFS24cOHb5FrBAAAdhy9JrYmT56cxx57LD/60Y+qPUpmzZqVzs7Oyvb0009XeyQAAGAb06/aAyTJlClTcvvtt+eee+7JnnvuWdnf1NSUNWvWZOXKlT3ubnV0dKSpqamy5qGHHupxvg1PK3ztmj9/gmFHR0fq6+szYMCAjeapq6tLXV3dFrk2AABgx1TVO1vd3d2ZMmVKbr755tx1110ZOXJkj+OjR4/OTjvtlEWLFlX2LV26NMuXL09zc3OSpLm5OY8++mhWrFhRWbNw4cLU19dn1KhRlTWvPceGNRvOAQAAsKVV9c7W5MmTc/311+fHP/5xdt1118p3rBoaGjJgwIA0NDRk0qRJmT59egYPHpz6+vp86UtfSnNzcw477LAkyTHHHJNRo0blxBNPzPnnn5/29vaceeaZmTx5cuXu1GmnnZbLL788Z5xxRk4++eTcddddufHGGzN//vyqXTsAALB9q+qdrSuvvDKdnZ058sgjs8cee1S2G264obLmoosuykc/+tGMHz8+RxxxRJqamvIf//EfleN9+/bN7bffnr59+6a5uTmf+9znctJJJ+Wcc86prBk5cmTmz5+fhQsX5sADD8yFF16Yq666Ki0tLVv1egEAgB1HVe9svZk/8dW/f/9cccUVueKKK/6fa/baa6/853/+5xue58gjj8wvfvGLTZ4RAABgc/SapxECAABsT8QWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABVY2te+65Jx/72McybNiw1NTU5JZbbulxvLu7O7Nnz84ee+yRAQMGZOzYsXnqqad6rHn++eczYcKE1NfXZ9CgQZk0aVJeeumlHmt++ctf5vDDD0///v0zfPjwnH/++aUvDQAA2MFVNbZWrVqVAw88MFdcccXrHj///PNz6aWXZu7cuXnwwQezyy67pKWlJa+88kplzYQJE/L4449n4cKFuf3223PPPffk1FNPrRzv6urKMccck7322ittbW254IILcvbZZ+d73/te8esDAAB2XP2q+eLHHntsjj322Nc91t3dnYsvvjhnnnlmPv7xjydJrr322jQ2NuaWW27JCSeckF/96ldZsGBBHn744RxyyCFJkssuuywf+chH8q1vfSvDhg3LddddlzVr1uTqq69ObW1t3vWud2XJkiX59re/3SPKAAAAtqRe+52tZcuWpb29PWPHjq3sa2hoyJgxY9La2pokaW1tzaBBgyqhlSRjx45Nnz598uCDD1bWHHHEEamtra2saWlpydKlS/PCCy+87muvXr06XV1dPTYAAIBN0Wtjq729PUnS2NjYY39jY2PlWHt7e4YOHdrjeL9+/TJ48OAea17vHK99jT83Z86cNDQ0VLbhw4e/9QsCAAB2KL02tqpp1qxZ6ezsrGxPP/10tUcCAAC2Mb02tpqampIkHR0dPfZ3dHRUjjU1NWXFihU9jr/66qt5/vnne6x5vXO89jX+XF1dXerr63tsAAAAm6LXxtbIkSPT1NSURYsWVfZ1dXXlwQcfTHNzc5Kkubk5K1euTFtbW2XNXXfdlfXr12fMmDGVNffcc0/Wrl1bWbNw4cLss88+edvb3raVrgYAANjRVDW2XnrppSxZsiRLlixJ8n8PxViyZEmWL1+empqaTJ06NV//+tdz66235tFHH81JJ52UYcOG5bjjjkuS7Lfffvnwhz+cU045JQ899FDuu+++TJkyJSeccEKGDRuWJPnsZz+b2traTJo0KY8//nhuuOGGXHLJJZk+fXqVrhoAANgRVPXR7z/72c9y1FFHVX7eEEATJ07MvHnzcsYZZ2TVqlU59dRTs3Llyrz//e/PggUL0r9//8rvXHfddZkyZUo++MEPpk+fPhk/fnwuvfTSyvGGhobceeedmTx5ckaPHp3dd989s2fP9th3AACgqJru7u7uag/R23V1daWhoSGdnZ298vtbo2dcW+0RALaotgtOqvYI2yTvB8D2pje+H2xKG/Ta72wBAABsy8QWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoACxBQAAUIDYAgAAKEBsAQAAFCC2AAAAChBbAAAABYgtAACAAsQWAABAAWILAACgALEFAABQgNgCAAAoQGwBAAAUILYAAAAKEFsAAAAFiC0AAIACxBYAAEABO1RsXXHFFXn729+e/v37Z8yYMXnooYeqPRIAALCd2mFi64Ybbsj06dNz1lln5ec//3kOPPDAtLS0ZMWKFdUeDQAA2A7tMLH17W9/O6ecckq+8IUvZNSoUZk7d2523nnnXH311dUeDQAA2A71q/YAW8OaNWvS1taWWbNmVfb16dMnY8eOTWtr60brV69endWrV1d+7uzsTJJ0dXWVH3YzrFv9crVHANiieuv/b3s77wfA9qY3vh9smKm7u/svrt0hYusPf/hD1q1bl8bGxh77Gxsb8+STT260fs6cOfna17620f7hw4cXmxGA/1/DZadVewQAeoHe/H7w4osvpqGh4Q3X7BCxtalmzZqV6dOnV35ev359nn/++ey2226pqamp4mRQPV1dXRk+fHiefvrp1NfXV3scAKrE+wE7uu7u7rz44osZNmzYX1y7Q8TW7rvvnr59+6ajo6PH/o6OjjQ1NW20vq6uLnV1dT32DRo0qOSIsM2or6/35gqA9wN2aH/pjtYGO8QDMmprazN69OgsWrSosm/9+vVZtGhRmpubqzgZAACwvdoh7mwlyfTp0zNx4sQccsghee9735uLL744q1atyhe+8IVqjwYAAGyHdpjY+vSnP53nnnsus2fPTnt7ew466KAsWLBgo4dmAK+vrq4uZ5111kYfsQVgx+L9AN68mu4388xCAAAANskO8Z0tAACArU1sAQAAFCC2AAAAChBbAAAABYgt4E254oor8va3vz39+/fPmDFj8tBDD1V7JAC2onvuuScf+9jHMmzYsNTU1OSWW26p9kjQ64kt4C+64YYbMn369Jx11ln5+c9/ngMPPDAtLS1ZsWJFtUcDYCtZtWpVDjzwwFxxxRXVHgW2GR79DvxFY8aMyaGHHprLL788SbJ+/foMHz48X/rSl/KP//iPVZ4OgK2tpqYmN998c4477rhqjwK9mjtbwBtas2ZN2traMnbs2Mq+Pn36ZOzYsWltba3iZAAAvZvYAt7QH/7wh6xbty6NjY099jc2Nqa9vb1KUwEA9H5iCwAAoACxBbyh3XffPX379k1HR0eP/R0dHWlqaqrSVAAAvZ/YAt5QbW1tRo8enUWLFlX2rV+/PosWLUpzc3MVJwMA6N36VXsAoPebPn16Jk6cmEMOOSTvfe97c/HFF2fVqlX5whe+UO3RANhKXnrppfzmN7+p/Lxs2bIsWbIkgwcPzogRI6o4GfReHv0OvCmXX355LrjggrS3t+eggw7KpZdemjFjxlR7LAC2krvvvjtHHXXURvsnTpyYefPmbf2BYBsgtgAAAArwnS0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwDsUI488shMnTr1Ta29++67U1NTk5UrV76l13z729+eiy+++C2dA4Btj9gCAAAoQGwBAAAUILYA2GH9y7/8Sw455JDsuuuuaWpqymc/+9msWLFio3X33XdfDjjggPTv3z+HHXZYHnvssR7H77333hx++OEZMGBAhg8fni9/+ctZtWrV1roMAHopsQXADmvt2rU599xz88gjj+SWW27J73//+3z+85/faN2MGTNy4YUX5uGHH86QIUPysY99LGvXrk2S/Pa3v82HP/zhjB8/Pr/85S9zww035N57782UKVO28tUA0Nv0q/YAAFAtJ598cuXf73jHO3LppZfm0EMPzUsvvZSBAwdWjp111ln50Ic+lCS55pprsueee+bmm2/Opz71qcyZMycTJkyoPHTjne98Zy699NJ84AMfyJVXXpn+/ftv1WsCoPdwZwuAHVZbW1s+9rGPZcSIEdl1113zgQ98IEmyfPnyHuuam5sr/x48eHD22Wef/OpXv0qSPPLII5k3b14GDhxY2VpaWrJ+/fosW7Zs610MAL2OO1sA7JBWrVqVlpaWtLS05LrrrsuQIUOyfPnytLS0ZM2aNW/6PC+99FL+7u/+Ll/+8pc3OjZixIgtOTIA2xixBcAO6cknn8wf//jHnHfeeRk+fHiS5Gc/+9nrrn3ggQcq4fTCCy/k17/+dfbbb78kycEHH5wnnngie++999YZHIBtho8RArBDGjFiRGpra3PZZZfld7/7XW699dace+65r7v2nHPOyaJFi/LYY4/l85//fHbfffccd9xxSZKZM2fm/vvvz5QpU7JkyZI89dRT+fGPf+wBGQCILQB2TEOGDMm8efNy0003ZdSoUTnvvPPyrW9963XXnnfeefnKV76S0aNHp729Pbfddltqa2uTJAcccEAWL16cX//61zn88MPznve8J7Nnz86wYcO25uUA0AvVdHd3d1d7CAAAgO2NO1sAAAAFiC0AAIACxBYAAEABYgsAAKAAsQUAAFCA2AIAAChAbAEAABQgtgAAAAoQWwAAAAWILQAAgALEFgAAQAFiCwAAoID/D6HQgpS96gZqAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[nltk_data] Downloading package stopwords to /root/nltk_data...\n", + "[nltk_data] Unzipping corpora/stopwords.zip.\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Logistic Regression:\n", + "Accuracy: 0.8745082612116444\n", + "F1 Score: 0.8750489620054838\n", + "ROC AUC: 0.8746620481722587\n", + "Confusion Matrix:\n", + " [[1106 179]\n", + " [ 140 1117]]\n", + "\n", + "Naive Bayes:\n", + "Accuracy: 0.8379228953579858\n", + "F1 Score: 0.8340048348106366\n", + "ROC AUC: 0.8377645496503626\n", + "Confusion Matrix:\n", + " [[1095 190]\n", + " [ 222 1035]]\n", + "\n", + "SVM:\n", + "Accuracy: 0.8749016522423289\n", + "F1 Score: 0.8760717069368668\n", + "ROC AUC: 0.8751118251410777\n", + "Confusion Matrix:\n", + " [[1100 185]\n", + " [ 133 1124]]\n", + "\n", + "Random Forest:\n", + "Accuracy: 0.8316286388670339\n", + "F1 Score: 0.8279742765273312\n", + "ROC AUC: 0.8314955316376154\n", + "Confusion Matrix:\n", + " [[1084 201]\n", + " [ 227 1030]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "df=pd.read_csv('movie.csv', engine='python', on_bad_lines='warn')\n", + "df.head()\n", + "df.tail()\n", + "df.info()\n", + "df.isnull().sum()\n", + "df.duplicated().sum()\n", + "df.drop_duplicates(inplace=True)\n", + "df.duplicated().sum()\n", + "df.columns\n", + "df.shape\n", + "print(df['label'].value_counts())\n", + "print(df['label'].unique())\n", + "\n", + "plt.figure(figsize=(10,6))\n", + "sns.countplot(x='label',data=df)\n", + "plt.show()\n", + "import nltk\n", + "nltk.download('stopwords')\n", + "import re, string\n", + "from nltk.corpus import stopwords\n", + "from nltk.stem import PorterStemmer\n", + "def clean_text(text):\n", + " text = text.lower()\n", + " text = re.sub(r'<.*?>', '', text)\n", + " text = re.sub(r'https?://\\S+', '', text)\n", + " text = re.sub(f\"[{re.escape(string.punctuation)}]\", \"\", text)\n", + " return text\n", + "\n", + "stop_words = set(stopwords.words(\"english\"))\n", + "stemmer = PorterStemmer()\n", + "def preprocess(text):\n", + " tokens = clean_text(text).split()\n", + " tokens = [stemmer.stem(word) for word in tokens if word not in stop_words]\n", + " return ' '.join(tokens)\n", + "\n", + "df['processed_text'] = df['text'].apply(preprocess)\n", + "df.head()\n", + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(df['processed_text'], df['label'], test_size=0.2)\n", + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "vectorizer = TfidfVectorizer(max_features=5000)\n", + "X_train_vec = vectorizer.fit_transform(X_train)\n", + "X_test_vec = vectorizer.transform(X_test)\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.naive_bayes import BernoulliNB\n", + "from sklearn.svm import SVC\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.metrics import accuracy_score, confusion_matrix, roc_auc_score, f1_score\n", + "def evaluate_model(model, X_train, X_test, y_train, y_test):\n", + " model.fit(X_train, y_train)\n", + " preds = model.predict(X_test)\n", + " print(\"Accuracy:\", accuracy_score(y_test, preds))\n", + " print(\"F1 Score:\", f1_score(y_test, preds))\n", + " print(\"ROC AUC:\", roc_auc_score(y_test, preds))\n", + " print(\"Confusion Matrix:\\n\", confusion_matrix(y_test, preds))\n", + "print(\"Logistic Regression:\")\n", + "evaluate_model(LogisticRegression(), X_train_vec, X_test_vec, y_train, y_test)\n", + "\n", + "print(\"\\nNaive Bayes:\")\n", + "evaluate_model(BernoulliNB(), X_train_vec, X_test_vec, y_train, y_test)\n", + "\n", + "print(\"\\nSVM:\")\n", + "evaluate_model(SVC(), X_train_vec, X_test_vec, y_train, y_test)\n", + "\n", + "print(\"\\nRandom Forest:\")\n", + "evaluate_model(RandomForestClassifier(), X_train_vec, X_test_vec, y_train, y_test)" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file