Skip to content

Instantly share code, notes, and snippets.

@MrSnor
Last active April 12, 2024 01:53
Show Gist options
  • Select an option

  • Save MrSnor/4b181df54941e3314b28e0880592279a to your computer and use it in GitHub Desktop.

Select an option

Save MrSnor/4b181df54941e3314b28e0880592279a to your computer and use it in GitHub Desktop.
IDSUP Major Assignment 1
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Major Assignment-1"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Student IDs with Science marks less than or equal to 30: [13, 14, 15, 16, 17]\n",
"Student IDs with Science marks between 30 and 70: [2, 5, 6, 7, 8, 9, 10, 11, 12, 19]\n",
"Student IDs with Science marks more than 70: [1, 3, 4, 18, 20]\n"
]
}
],
"source": [
"'''\n",
"\n",
"Q1. Write a Python program to group the student ids corresponding to the following Science mark.\n",
"• less or equal to 30.\n",
"• between 30 and 70.\n",
"• more than 70.\n",
"\n",
"'''\n",
"\n",
"\n",
"students = [\n",
" {\"student id\": 1, \"Math\": 50, \"Computer Science\": 60, \"Science\": 73},\n",
" {\"student id\": 2, \"Math\": 40, \"Computer Science\": 50, \"Science\": 55},\n",
" {\"student id\": 3, \"Math\": 90, \"Computer Science\": 70, \"Science\": 95},\n",
" {\"student id\": 4, \"Math\": 80, \"Computer Science\": 62, \"Science\": 72},\n",
" {\"student id\": 5, \"Math\": 80, \"Computer Science\": 90, \"Science\": 45},\n",
" {\"student id\": 6, \"Math\": 84, \"Computer Science\": 90, \"Science\": 50},\n",
" {\"student id\": 7, \"Math\": 90, \"Computer Science\": 95, \"Science\": 55},\n",
" {\"student id\": 8, \"Math\": 89, \"Computer Science\": 93, \"Science\": 53},\n",
" {\"student id\": 9, \"Math\": 88, \"Computer Science\": 92, \"Science\": 58},\n",
" {\"student id\": 10, \"Math\": 90, \"Computer Science\": 95, \"Science\": 55},\n",
" {\"student id\": 11, \"Math\": 70, \"Computer Science\": 65, \"Science\": 39},\n",
" {\"student id\": 12, \"Math\": 65, \"Computer Science\": 60, \"Science\": 35},\n",
" {\"student id\": 13, \"Math\": 60, \"Computer Science\": 55, \"Science\": 30},\n",
" {\"student id\": 14, \"Math\": 55, \"Computer Science\": 57, \"Science\": 25},\n",
" {\"student id\": 15, \"Math\": 49, \"Computer Science\": 54, \"Science\": 22},\n",
" {\"student id\": 16, \"Math\": 10, \"Computer Science\": 30, \"Science\": 11},\n",
" {\"student id\": 17, \"Math\": 50, \"Computer Science\": 40, \"Science\": 16},\n",
" {\"student id\": 18, \"Math\": 90, \"Computer Science\": 45, \"Science\": 80},\n",
" {\"student id\": 19, \"Math\": 70, \"Computer Science\": 50, \"Science\": 39},\n",
" {\"student id\": 20, \"Math\": 70, \"Computer Science\": 80, \"Science\": 75}\n",
"]\n",
"\n",
"less_than_30 = []\n",
"between_30_and_70 = []\n",
"more_than_70 = []\n",
"\n",
"for student in students:\n",
" scienceMarks = student[\"Science\"]\n",
" if scienceMarks <= 30:\n",
" less_than_30.append(student[\"student id\"])\n",
" elif 30 < scienceMarks <= 70:\n",
" between_30_and_70.append(student[\"student id\"])\n",
" else:\n",
" more_than_70.append(student[\"student id\"])\n",
"\n",
"print(\"Student IDs with Science marks less than or equal to 30:\", less_than_30)\n",
"print(\"Student IDs with Science marks between 30 and 70:\", between_30_and_70)\n",
"print(\"Student IDs with Science marks more than 70:\", more_than_70)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAIjCAYAAADWYVDIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAACy4UlEQVR4nOzdd3hTZf8G8PskTZvuTRelLR2UUvYoG9kIAgKKgCiCE1AEnPwcUBRfcYsKjldQRBQQ9AWRLSJ7U6BlFCijm9I90pGc3x9tAqUtJCXpSdL7c11c2pPT5G7SNPnmeZ7vI4iiKIKIiIiIiIgAADKpAxAREREREZkTFklERERERES3YJFERERERER0CxZJREREREREt2CRREREREREdAsWSURERERERLdgkURERERERHQLFklERERERES3YJFERERERER0CxZJRGTVBEHAvHnzpI5BZJaCg4PxxBNPSB3Doj3xxBNwcnKSOgYRGRmLJCIymVOnTuGhhx5CUFAQlEolAgICMHDgQHzxxRfVznvvvffwxx9/SBPSCFauXInPPvtM7/ODg4PxwAMPVDsmCILun42NDTw8PNCxY0e8+OKLSEhIMHJi08vIyMDLL7+MyMhIODg4wNHRER07dsS7776L3NxcqeMZxb59+zBv3rwG/3n27NmD+++/HwEBAVAqlWjWrBmGDx+OlStXNmgOcxIcHAxBEDBgwIBaL//uu+90z68jR440cDoiskQskojIJPbt24dOnTohLi4OTz/9NL788ks89dRTkMlk+Pzzz6ud29iKpLoMHDgQP/30E5YtW4b58+ejQ4cO+PHHH9G2bVt88skn9x60gRw+fBjR0dH46quv0KtXL3zyySf4+OOP0b59e7z//vsYO3as1BGNYt++fYiNjW3QImnNmjXo3bs3MjIy8OKLL+KLL77AxIkTkZOTg++++87g6zt37ly9vs8cKZVK7Ny5E+np6TUu+/nnn6FUKiVIRUSWykbqAERknRYsWABXV1ccPnwYbm5u1S7LzMyUJpSZi4iIwMSJE6sde//99zF8+HC89NJLiIyMxNChQyVKp5/c3FyMGjUKcrkcx48fR2RkZLXLFyxYYDVvyk2luLgYDg4OtV42b948REVF4cCBA7C1ta12WX2eV3Z2dvXKaI569OiBw4cPY9WqVXjxxRd1x5OTk7F7926MGjUK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w2FCjySJ/j7djCl2sen2Wl9ldifChyRra2sEBAQAAEJDQ3HkyBGsXr0aU6dORXNzM6qrq+Hi4qLdvry8HAqF4pb3Z2NjAxsbmxuul8vlwv9SWplSSys26YdN+jPFLjbph036YZN+2KQfkU3hAR7wdLbFxZqmm56XJAOgcLZFeICH8HOSTPHvDjDNLjbdukEfJvc+SRqNBkqlEqGhoZDL5UhPT9feVlhYiJKSEoSHhwssJCIiImo/LC1kWDI+CMC1gUhX6+Ul44OED0hExiT0SNKiRYswduxY+Pr6oq6uDklJScjIyEBqaiqcnZ0xa9YszJ8/H66urnBycsLLL7+M8PBwrmxHREREdB9F9fXE2mdDsHTXsTaLOCicbbFkfBCi+noKrCMyPqFDUkVFBaZPn46ysjI4OzsjODgYqampGD16NABg1apVsLCwQHR0NJRKJcaMGYMvvvhCZDIRERFRuxTV1xOjgxQ4eLICe386jMiHw0ziJXZEIggdkhISEm57u62tLdasWYM1a9YYqYiIiIjIfFlayBDm74rK4xLC/F05IJHZMrlzkoiIiIiIiETikERERERERKSDQxIREREREZEODklEREREREQ6OCQRERERERHp4JBERERERESkg0MSERERERGRDg5JREREREREOjgkERERERER6eCQREREREREpINDEhERERERkQ4OSURERERERDo4JBEREREREemwEh1gaJIkAQBqa2sFlwAqlQqNjY2ora2FXC4XnQOATfpik/5MsYtN+mGTftikHzbph036McUmwDS72HR7rTNB64xwK+1+SKqrqwMAdOnSRXAJERERERGZgrq6Ojg7O9/ydpl0pzHqAafRaFBaWgpHR0fIZDKhLbW1tejSpQvOnTsHJycnoS2t2KQfNunPFLvYpB826YdN+mGTftikH1NsAkyzi023J0kS6urq4OXlBQuLW5951O6PJFlYWMDHx0d0RhtOTk7Cf0Cuxyb9sEl/ptjFJv2wST9s0g+b9MMm/ZhiE2CaXWy6tdsdQWrFhRuIiIiIiIh0cEgiIiIiIiLSwSHJiGxsbLBkyRLY2NiITtFik37YpD9T7GKTftikHzbph036YZN+TLEJMM0uNt0f7X7hBiIiIiIiorvBI0lEREREREQ6OCQRERERERHp4JBERERERESkg0MSERERERGRDg5JRrB/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CoX28p3U19cjISEBH3/8MUaNGoV+/fph8+bNaGlp0W5TUlKCxMREJCcn4+GHH0b37t2xYMECDB8+HImJidrtVCoV1q1bh4EDByIkJARz5sxBeno6gGuDnp2dnfaIkEKhgLW19T1/bwIDA3HmzJl7vh8iIjIMDklERGQw0dHRKC0txc6dOxEVFYWMjAyEhITc80vNTp06hebmZoSFhWmvc3V1Ra9evbSX8/PzoVar0bNnT+1RLQcHB2RmZuLUqVPa7Tp06IDu3btrL3t6eqKiouKe+u5EkiTIZDKDPgYREf1xPGOUiIgMytbWFqNHj8bo0aOxePFivPDCC1iyZAliYmJu+TkWFhaQJKnNdSqV6q4et76+HpaWlsjJyYGlpWWb2xwcHLR/lsvlbW6TyWQ3PPb9dvz4cfj7+xv0MYiI6I/jkSQiIjKqoKAgNDQ0aC/L5XKo1eo227i7u2sXT2iVl5en/XP37t0hl8tx+PBh7XVVVVU4ceKE9vKAAQOgVqtRUVGBgICANh8KhULvXmtr6xv67sWPP/6I/Px8REdH37f7JCKi+4tDEhERGURlZSVGjhyJrVu34ujRoyguLkZycjI+/PBDTJw4Ubtd165dkZ6ejosXL6KqqgrAtcUNsrOzsWXLFhQVFWHJkiUoKCjQfo6DgwNmzZqFhQsX4scff0RBQQFiYmJgYfHf/9Z69uyJadOmYfr06di2bRuKi4uRlZWFDz74AN9//73eX0fXrl1x9OhRFBYW4vLly3d1REupVOLixYu4cOECcnNzsWzZMkycOBGPP/44pk+frvf9EBGRcfHldkREZBAODg4ICwvDqlWrcOrUKahUKnTp0gUvvvgi3njjDe12K1aswPz587FhwwZ4e3vjzJkzGDNmDBYvXozXXnsNTU1NmDlzJqZPn478/Hzt53300Ueor6/H+PHj4ejoiFdffRU1NTVtGhITE/Hee+/h1VdfxYULF9CpUycMGTIEjz/+uN5fx4svvoiMjAwMHDgQ9fX12LdvX5ulyG8nJSUFnp6esLKyQseOHdG/f398+umnmDFjRpuBjoiITItMMvQLr4mIiIiIiB4g/DUWERERERGRDg5JREREREREOjgkERERERER6eCQREREREREpINDEhERERERkQ4OSURERERERDo4JBEREREREengkERERERERKSDQxIREREREZEODklEREREREQ6OCQRERERERHp+P9cLkjmSf8I6gAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"'''\n",
"\n",
"Question 2:-\n",
"Create a line chart for student ids and Computer Science marks. Student id on the x-axis and\n",
"Computer Science mark on the y-axis.\n",
"\n",
"'''\n",
"\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"student_ids = [student[\"student id\"] for student in students]\n",
"cs_marks = [student[\"Computer Science\"] for student in students]\n",
"\n",
"plt.figure(figsize=(10, 6))\n",
"plt.plot(student_ids, cs_marks, marker='o')\n",
"plt.xlabel('Student ID')\n",
"plt.ylabel('Computer Science Marks')\n",
"plt.title('Student IDs vs Computer Science Marks')\n",
"plt.grid(True)\n",
"plt.xticks(student_ids)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sum of all 20 vectors: [1370, 1333, 983]\n",
"Average marks - Math: 68.5\n",
"Average marks - Computer Science: 66.65\n",
"Average marks - Science: 49.15\n"
]
}
],
"source": [
"'''\n",
"QUESTION 3:-\n",
"Write a Python program to create a list of 20 vectors by taking student's Math, \n",
"Computer Science and Science marks. Find the sum of all these 20 vectors. After \n",
"that, find the average marks for Math, Computer Science and Science.\n",
"Hint: [50,60,73] will be one vector.\n",
"'''\n",
"\n",
"\n",
"def create_vectors(data):\n",
" vectors = [[s[\"Math\"], s[\"Computer Science\"], s[\"Science\"]] for s in data]\n",
" return vectors\n",
"\n",
"student_vectors = create_vectors(students)\n",
"\n",
"sum_vector = [0, 0, 0]\n",
"num_students = len(student_vectors)\n",
"\n",
"for vector in student_vectors:\n",
" sum_vector[0] += vector[0]\n",
" sum_vector[1] += vector[1]\n",
" sum_vector[2] += vector[2]\n",
"\n",
"avg_math = sum_vector[0] / num_students\n",
"avg_cs = sum_vector[1] / num_students\n",
"avg_science = sum_vector[2] / num_students\n",
"\n",
"print(\"Sum of all 20 vectors:\", sum_vector)\n",
"print(\"Average marks - Math:\", avg_math)\n",
"print(\"Average marks - Computer Science:\", avg_cs)\n",
"print(\"Average marks - Science:\", avg_science)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Computer Science marks are - [60, 50, 70, 62, 90, 90, 95, 93, 92, 95, 65, 60, 55, 57, 54, 30, 40, 45, 50, 80]\n",
"Mean of Computer Science marks: 66.65\n",
"Median of Computer Science marks: 61.0\n",
"Mode of Computer Science marks: [60, 50, 90, 95]\n"
]
}
],
"source": [
"'''\n",
"QUESTION 4:-\n",
"Write a Python program to find the mean, median and mode of Computer Science marks.\n",
"'''\n",
"\n",
"\n",
"from typing import List\n",
"from collections import Counter\n",
"\n",
"\n",
"def mean(xs: List[float]) -> float:\n",
" return sum(xs) / len(xs)\n",
"\n",
"\n",
"def median(xs: List[float]) -> float:\n",
" sorted_xs = sorted(xs)\n",
" n = len(xs)\n",
" mid = n // 2\n",
" if n % 2 == 0:\n",
" return (sorted_xs[mid - 1] + sorted_xs[mid]) / 2\n",
" else:\n",
" return sorted_xs[mid]\n",
"\n",
"\n",
"def mode(x: List[float]) -> List[float]:\n",
" counts = Counter(x)\n",
" max_count = max(counts.values())\n",
" return [x_i for x_i, count in counts.items() if count == max_count]\n",
"\n",
"\n",
"computer_science_marks = [student_data[\"Computer Science\"]\n",
" for student_data in students]\n",
"print(f\"Computer Science marks are - {computer_science_marks}\")\n",
"\n",
"mean_cs = mean(computer_science_marks)\n",
"median_cs = median(computer_science_marks)\n",
"mode_cs = mode(computer_science_marks)\n",
"\n",
"print(f\"Mean of Computer Science marks: {mean_cs}\")\n",
"print(f\"Median of Computer Science marks: {median_cs}\")\n",
"print(f\"Mode of Computer Science marks: {mode_cs}\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Covariance of Math and Science marks: 299.6578947368421\n"
]
}
],
"source": [
"'''\n",
"QUESTION 5:-\n",
"Write a Python program to find the covariance of Math and Science marks.\n",
"'''\n",
"\n",
"def dot(xs: List[float], ys: List[float]) -> float:\n",
" assert len(xs) == len(ys)\n",
" return sum(x * y for x, y in zip(xs, ys))\n",
"\n",
"\n",
"def covariance(xs: List[float], ys: List[float]) -> float:\n",
" assert len(xs) == len(ys)\n",
" return dot([x - mean(xs) for x in xs], [y - mean(ys) for y in ys]) / (len(xs) - 1)\n",
"\n",
"math_marks = [student_data[\"Math\"] for student_data in students]\n",
"science_marks = [student_data[\"Science\"] for student_data in students]\n",
"\n",
"res = covariance(math_marks, science_marks)\n",
"print(f\"Covariance of Math and Science marks: {res}\")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Correlation between Computer Science and Math marks: 0.7862361838230755\n"
]
}
],
"source": [
"'''\n",
"QUESTION 6:-\n",
"Write a Python program to find the correlation between Computer Science and Math marks.\n",
"'''\n",
"\n",
"\n",
"# from typing import List\n",
"\n",
"def standard_deviation(xs: List[float]) -> float:\n",
" mean_xs = mean(xs)\n",
" variance = sum((x - mean_xs) ** 2 for x in xs) / len(xs)\n",
" return variance ** 0.5\n",
"\n",
"\n",
"# def covariance(xs: List[float], ys: List[float]) -> float:\n",
"# assert len(xs) == len(ys)\n",
"# mean_xs = mean(xs)\n",
"# mean_ys = mean(ys)\n",
"# return sum((x - mean_xs) * (y - mean_ys) for x, y in zip(xs, ys)) / (len(xs) - 1)\n",
"\n",
"\n",
"def correlation(xs: List[float], ys: List[float]) -> float:\n",
" stdev_x = standard_deviation(xs)\n",
" stdev_y = standard_deviation(ys)\n",
" if stdev_x > 0 and stdev_y > 0:\n",
" return covariance(xs, ys) / stdev_x / stdev_y\n",
" else:\n",
" return 0\n",
"\n",
"\n",
"math_marks = [student_data[\"Math\"] for student_data in students]\n",
"computer_science_marks = [student_data[\"Computer Science\"]\n",
" for student_data in students]\n",
"\n",
"correlation_cs_math = correlation(computer_science_marks, math_marks)\n",
"print(f\"Correlation between Computer Science and Math marks: {\n",
" correlation_cs_math}\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment