From 40ef21520058198264dd19f5824dafe13235fa31 Mon Sep 17 00:00:00 2001 From: Sediqa Date: Mon, 1 Dec 2025 21:32:31 +0430 Subject: [PATCH 1/5] drafted assignment-1 --- 02_activities/assignments/assignment_1.ipynb | 97 +++++++++++++++++--- 1 file changed, 82 insertions(+), 15 deletions(-) diff --git a/02_activities/assignments/assignment_1.ipynb b/02_activities/assignments/assignment_1.ipynb index 625be024..c304e9d9 100644 --- a/02_activities/assignments/assignment_1.ipynb +++ b/02_activities/assignments/assignment_1.ipynb @@ -56,32 +56,66 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# For testing purposes, we will write our code in the function\n", "def anagram_checker(word_a, word_b):\n", - " # Your code here\n", - "\n", + " word_a = word_a.lower()\n", + " word_b = word_b.lower()\n", + " return sorted(word_a) == sorted(word_b)\n", "# Run your code to check using the words below:\n", "anagram_checker(\"Silent\", \"listen\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "anagram_checker(\"Silent\", \"Night\")" + "anagram_checker(\"Silent\", \"Night\")\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "anagram_checker(\"night\", \"Thing\")" ] @@ -97,13 +131,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "def anagram_checker(word_a, word_b, is_case_sensitive):\n", - " # Modify your existing code here\n", - "\n", + " if not is_case_sensitive:\n", + " word_a = word_a.lower()\n", + " word_b = word_b.lower()\n", + " sorted_a = sorted(word_a)\n", + " sorted_b = sorted(word_b)\n", + " return sorted_a == sorted_b\n", "# Run your code to check using the words below:\n", "anagram_checker(\"Silent\", \"listen\", False) # True" ] @@ -113,6 +162,24 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "anagram_checker(\"Silent\", \"Listen\", True) # False" ] @@ -130,7 +197,7 @@ ], "metadata": { "kernelspec": { - "display_name": "new-learner", + "display_name": "python-env (3.11.14)", "language": "python", "name": "python3" }, @@ -144,7 +211,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.11.14" } }, "nbformat": 4, From f891ae6f4a21cac644d8559e36e49e5b8796a904 Mon Sep 17 00:00:00 2001 From: Sediqa Date: Fri, 12 Dec 2025 18:06:31 +0000 Subject: [PATCH 2/5] assignment-2 done --- 02_activities/assignments/assignment_2.ipynb | 139 ++++++++++++++++--- 1 file changed, 122 insertions(+), 17 deletions(-) diff --git a/02_activities/assignments/assignment_2.ipynb b/02_activities/assignments/assignment_2.ipynb index fdaead28..29b72735 100644 --- a/02_activities/assignments/assignment_2.ipynb +++ b/02_activities/assignments/assignment_2.ipynb @@ -72,11 +72,78 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "id": "n0m48JsS-nMC" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0,0,1,3,1,2,4,7,8,3,3,3,10,5,7,4,7,7,12,18,6,13,11,11,7,7,4,6,8,8,4,4,5,7,3,4,2,3,0,0\n", + "0,1,2,1,2,1,3,2,2,6,10,11,5,9,4,4,7,16,8,6,18,4,12,5,12,7,11,5,11,3,3,5,4,4,5,5,1,1,0,1\n", + "0,1,1,3,3,2,6,2,5,9,5,7,4,5,4,15,5,11,9,10,19,14,12,17,7,12,11,7,4,2,10,5,4,2,2,3,2,2,1,1\n", + "0,0,2,0,4,2,2,1,6,7,10,7,9,13,8,8,15,10,10,7,17,4,4,7,6,15,6,4,9,11,3,5,6,3,3,4,2,3,2,1\n", + "0,1,1,3,3,1,3,5,2,4,4,7,6,5,3,10,8,10,6,17,9,14,9,7,13,9,12,6,7,7,9,6,3,2,2,4,2,0,1,1\n", + "0,0,1,2,2,4,2,1,6,4,7,6,6,9,9,15,4,16,18,12,12,5,18,9,5,3,10,3,12,7,8,4,7,3,5,4,4,3,2,1\n", + "0,0,2,2,4,2,2,5,5,8,6,5,11,9,4,13,5,12,10,6,9,17,15,8,9,3,13,7,8,2,8,8,4,2,3,5,4,1,1,1\n", + "0,0,1,2,3,1,2,3,5,3,7,8,8,5,10,9,15,11,18,19,20,8,5,13,15,10,6,10,6,7,4,9,3,5,2,5,3,2,2,1\n", + "0,0,0,3,1,5,6,5,5,8,2,4,11,12,10,11,9,10,17,11,6,16,12,6,8,14,6,13,10,11,4,6,4,7,6,3,2,1,0,0\n", + "0,1,1,2,1,3,5,3,5,8,6,8,12,5,13,6,13,8,16,8,18,15,16,14,12,7,3,8,9,11,2,5,4,5,1,4,1,2,0,0\n", + "0,1,0,0,4,3,3,5,5,4,5,8,7,10,13,3,7,13,15,18,8,15,15,16,11,14,12,4,10,10,4,3,4,5,5,3,3,2,2,1\n", + "0,1,0,0,3,4,2,7,8,5,2,8,11,5,5,8,14,11,6,11,9,16,18,6,12,5,4,3,5,7,8,3,5,4,5,5,4,0,1,1\n", + "0,0,2,1,4,3,6,4,6,7,9,9,3,11,6,12,4,17,13,15,13,12,8,7,4,7,12,9,5,6,5,4,7,3,5,4,2,3,0,1\n", + "0,0,0,0,1,3,1,6,6,5,5,6,3,6,13,3,10,13,9,16,15,9,11,4,6,4,11,11,12,3,5,8,7,4,6,4,1,3,0,0\n", + "0,1,2,1,1,1,4,1,5,2,3,3,10,7,13,5,7,17,6,9,12,13,10,4,12,4,6,7,6,10,8,2,5,1,3,4,2,0,2,0\n", + "0,1,1,0,1,2,4,3,6,4,7,5,5,7,5,10,7,8,18,17,9,8,12,11,11,11,14,6,11,2,10,9,5,6,5,3,4,2,2,0\n", + "0,0,0,0,2,3,6,5,7,4,3,2,10,7,9,11,12,5,12,9,13,19,14,17,5,13,8,11,5,10,9,8,7,5,3,1,4,0,2,1\n", + "0,0,0,1,2,1,4,3,6,7,4,2,12,6,12,4,14,7,8,14,13,19,6,9,12,6,4,13,6,7,2,3,6,5,4,2,3,0,1,0\n", + "0,0,2,1,2,5,4,2,7,8,4,7,11,9,8,11,15,17,11,12,7,12,7,6,7,4,13,5,7,6,6,9,2,1,1,2,2,0,1,0\n", + "0,1,2,0,1,4,3,2,2,7,3,3,12,13,11,13,6,5,9,16,9,19,16,11,8,9,14,12,11,9,6,6,6,1,1,2,4,3,1,1\n", + "0,1,1,3,1,4,4,1,8,2,2,3,12,12,10,15,13,6,5,5,18,19,9,6,11,12,7,6,3,6,3,2,4,3,1,5,4,2,2,0\n", + "0,0,2,3,2,3,2,6,3,8,7,4,6,6,9,5,12,12,8,5,12,10,16,7,14,12,5,4,6,9,8,5,6,6,1,4,3,0,2,0\n", + "0,0,0,3,4,5,1,7,7,8,2,5,12,4,10,14,5,5,17,13,16,15,13,6,12,9,10,3,3,7,4,4,8,2,6,5,1,0,1,0\n", + "0,1,1,1,1,3,3,2,6,3,9,7,8,8,4,13,7,14,11,15,14,13,5,13,7,14,9,10,5,11,5,3,5,1,1,4,4,1,2,0\n", + "0,1,1,1,2,3,5,3,6,3,7,10,3,8,12,4,12,9,15,5,17,16,5,10,10,15,7,5,3,11,5,5,6,1,1,1,1,0,2,1\n", + "0,0,2,1,3,3,2,7,4,4,3,8,12,9,12,9,5,16,8,17,7,11,14,7,13,11,7,12,12,7,8,5,7,2,2,4,1,1,1,0\n", + "0,0,1,2,4,2,2,3,5,7,10,5,5,12,3,13,4,13,7,15,9,12,18,14,16,12,3,11,3,2,7,4,8,2,2,1,3,0,1,1\n", + "0,0,1,1,1,5,1,5,2,2,4,10,4,8,14,6,15,6,12,15,15,13,7,17,4,5,11,4,8,7,9,4,5,3,2,5,4,3,2,1\n", + "0,0,2,2,3,4,6,3,7,6,4,5,8,4,7,7,6,11,12,19,20,18,9,5,4,7,14,8,4,3,7,7,8,3,5,4,1,3,1,0\n", + "0,0,0,1,4,4,6,3,8,6,4,10,12,3,3,6,8,7,17,16,14,15,17,4,14,13,4,4,12,11,6,9,5,5,2,5,2,1,0,1\n", + "0,1,1,0,3,2,4,6,8,6,2,3,11,3,14,14,12,8,8,16,13,7,6,9,15,7,6,4,10,8,10,4,2,6,5,5,2,3,2,1\n", + "0,0,2,3,3,4,5,3,6,7,10,5,10,13,14,3,8,10,9,9,19,15,15,6,8,8,11,5,5,7,3,6,6,4,5,2,2,3,0,0\n", + "0,1,2,2,2,3,6,6,6,7,6,3,11,12,13,15,15,10,14,11,11,8,6,12,10,5,12,7,7,11,5,8,5,2,5,5,2,0,2,1\n", + "0,0,2,1,3,5,6,7,5,8,9,3,12,10,12,4,12,9,13,10,10,6,10,11,4,15,13,7,3,4,2,9,7,2,4,2,1,2,1,1\n", + "0,0,1,2,4,1,5,5,2,3,4,8,8,12,5,15,9,17,7,19,14,18,12,17,14,4,13,13,8,11,5,6,6,2,3,5,2,1,1,1\n", + "0,0,0,3,1,3,6,4,3,4,8,3,4,8,3,11,5,7,10,5,15,9,16,17,16,3,8,9,8,3,3,9,5,1,6,5,4,2,2,0\n", + "0,1,2,2,2,5,5,1,4,6,3,6,5,9,6,7,4,7,16,7,16,13,9,16,12,6,7,9,10,3,6,4,5,4,6,3,4,3,2,1\n", + "0,1,1,2,3,1,5,1,2,2,5,7,6,6,5,10,6,7,17,13,15,16,17,14,4,4,10,10,10,11,9,9,5,4,4,2,1,0,1,0\n", + "0,1,0,3,2,4,1,1,5,9,10,7,12,10,9,15,12,13,13,6,19,9,10,6,13,5,13,6,7,2,5,5,2,1,1,1,1,3,0,1\n", + "0,1,1,3,1,1,5,5,3,7,2,2,3,12,4,6,8,15,16,16,15,4,14,5,13,10,7,10,6,3,2,3,6,3,3,5,4,3,2,1\n", + "0,0,0,2,2,1,3,4,5,5,6,5,5,12,13,5,7,5,11,15,18,7,9,10,14,12,11,9,10,3,2,9,6,2,2,5,3,0,0,1\n", + "0,0,1,3,3,1,2,1,8,9,2,8,10,3,8,6,10,13,11,17,19,6,4,11,6,12,7,5,5,4,4,8,2,6,6,4,2,2,0,0\n", + "0,1,1,3,4,5,2,1,3,7,9,6,10,5,8,15,11,12,15,6,12,16,6,4,14,3,12,9,6,11,5,8,5,5,6,1,2,1,2,0\n", + "0,0,1,3,1,4,3,6,7,8,5,7,11,3,6,11,6,10,6,19,18,14,6,10,7,9,8,5,8,3,10,2,5,1,5,4,2,1,0,1\n", + "0,1,1,3,3,4,4,6,3,4,9,9,7,6,8,15,12,15,6,11,6,18,5,14,15,12,9,8,3,6,10,6,8,7,2,5,4,3,1,1\n", + "0,1,2,2,4,3,1,4,8,9,5,10,10,3,4,6,7,11,16,6,14,9,11,10,10,7,10,8,8,4,5,8,4,4,5,2,4,1,1,0\n", + "0,0,2,3,4,5,4,6,2,9,7,4,9,10,8,11,16,12,15,17,19,10,18,13,15,11,8,4,7,11,6,7,6,5,1,3,1,0,0,0\n", + "0,1,1,3,1,4,6,2,8,2,10,3,11,9,13,15,5,15,6,10,10,5,14,15,12,7,4,5,11,4,6,9,5,6,1,1,2,1,2,1\n", + "0,0,1,3,2,5,1,2,7,6,6,3,12,9,4,14,4,6,12,9,12,7,11,7,16,8,13,6,7,6,10,7,6,3,1,5,4,3,0,0\n", + "0,0,1,2,3,4,5,7,5,4,10,5,12,12,5,4,7,9,18,16,16,10,15,15,10,4,3,7,5,9,4,6,2,4,1,4,2,2,2,1\n", + "0,1,2,1,1,3,5,3,6,3,10,10,11,10,13,10,13,6,6,14,5,4,5,5,9,4,12,7,7,4,7,9,3,3,6,3,4,1,2,0\n", + "0,1,2,2,3,5,2,4,5,6,8,3,5,4,3,15,15,12,16,7,20,15,12,8,9,6,12,5,8,3,8,5,4,1,3,2,1,3,1,0\n", + "0,0,0,2,4,4,5,3,3,3,10,4,4,4,14,11,15,13,10,14,11,17,9,11,11,7,10,12,10,10,10,8,7,5,2,2,4,1,2,1\n", + "0,0,2,1,1,4,4,7,2,9,4,10,12,7,6,6,11,12,9,15,15,6,6,13,5,12,9,6,4,7,7,6,5,4,1,4,2,2,2,1\n", + "0,1,2,1,1,4,5,4,4,5,9,7,10,3,13,13,8,9,17,16,16,15,12,13,5,12,10,9,11,9,4,5,5,2,2,5,1,0,0,1\n", + "0,0,1,3,2,3,6,4,5,7,2,4,11,11,3,8,8,16,5,13,16,5,8,8,6,9,10,10,9,3,3,5,3,5,4,5,3,3,0,1\n", + "0,1,1,2,2,5,1,7,4,2,5,5,4,6,6,4,16,11,14,16,14,14,8,17,4,14,13,7,6,3,7,7,5,6,3,4,2,2,1,1\n", + "0,1,1,1,4,1,6,4,6,3,6,5,6,4,14,13,13,9,12,19,9,10,15,10,9,10,10,7,5,6,8,6,6,4,3,5,2,1,1,1\n", + "0,0,0,1,4,5,6,3,8,7,9,10,8,6,5,12,15,5,10,5,8,13,18,17,14,9,13,4,10,11,10,8,8,6,5,5,2,0,2,0\n", + "0,0,1,0,3,2,5,4,8,2,9,3,3,10,12,9,14,11,13,8,6,18,11,9,13,11,8,5,5,2,8,5,3,5,4,1,3,1,1,0\n" + ] + } + ], "source": [ "all_paths = [\n", " \"../../05_src/data/assignment_2_data/inflammation_01.csv\",\n", @@ -95,10 +162,17 @@ "\n", "with open(all_paths[0], 'r') as f:\n", " # YOUR CODE HERE: Use the readline() or readlines() method to read the .csv file into a variable\n", - " \n", - " # YOUR CODE HERE: Iterate through the variable using a for loop and print each row for inspection" + " lines = f.readlines() #reading all lines from the file\n", + " # YOUR CODE HERE: Iterate through the variable using a for loop and print each row for inspection\n", + " for row in lines:\n", + " print(row.strip())" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, { "cell_type": "markdown", "metadata": { @@ -130,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "id": "82-bk4CBB1w4" }, @@ -144,12 +218,15 @@ "\n", " # Implement the specific operation based on the 'operation' argument\n", " if operation == 'mean':\n", + " summary_values = np.mean(data, axis=ax)\n", " # YOUR CODE HERE: Calculate the mean (average) number of flare-ups for each patient\n", "\n", " elif operation == 'max':\n", + " summary_values = np.max(data, axis=ax)\n", " # YOUR CODE HERE: Calculate the maximum number of flare-ups experienced by each patient\n", "\n", " elif operation == 'min':\n", + " summary_values = np.max(data, axis=ax)\n", " # YOUR CODE HERE: Calculate the minimum number of flare-ups experienced by each patient\n", "\n", " else:\n", @@ -165,12 +242,26 @@ "metadata": { "id": "3TYo0-1SDLrd" }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'summary_values' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[10], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Test it out on the data file we read in and make sure the size is what we expect i.e., 60\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m# Your output for the first file should be 60\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m data_min \u001b[38;5;241m=\u001b[39m \u001b[43mpatient_summary\u001b[49m\u001b[43m(\u001b[49m\u001b[43mall_paths\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mmin\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28mprint\u001b[39m(result_mean\u001b[38;5;241m.\u001b[39mshape)\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(patient_summary(all_path[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmax\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n", + "Cell \u001b[0;32mIn[8], line 24\u001b[0m, in \u001b[0;36mpatient_summary\u001b[0;34m(file_path, operation)\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[38;5;66;03m# YOUR CODE HERE: Calculate the minimum number of flare-ups experienced by each patient\u001b[39;00m\n\u001b[1;32m 19\u001b[0m \n\u001b[1;32m 20\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 21\u001b[0m \u001b[38;5;66;03m# If the operation is not one of the expected values, raise an error\u001b[39;00m\n\u001b[1;32m 22\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInvalid operation. Please choose \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmean\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmax\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m, or \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmin\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 24\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msummary_values\u001b[49m\n", + "\u001b[0;31mNameError\u001b[0m: name 'summary_values' is not defined" + ] + } + ], "source": [ "# Test it out on the data file we read in and make sure the size is what we expect i.e., 60\n", "# Your output for the first file should be 60\n", "data_min = patient_summary(all_paths[0], 'min')\n", - "print(len(data_min))" + "print(result_min.shape)\n", + "print(data_min)" ] }, { @@ -228,7 +319,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "id": "_svDiRkdIwiT" }, @@ -246,12 +337,15 @@ "\n", " # Checks if there are any objects in flag (i.e. not empty)\n", " # If not empty, it found at least one zero so flag is True, and vice-versa.\n", - " return len(flag) > 0" + " return len(flag) > 0\n", + "def detect_problems():\n", + " mean_inflam = patient_summary(file_path, 'mean')\n", + " return check_zeros(mean_inflam)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { "id": "LEYPM5v4JT0i" }, @@ -260,20 +354,31 @@ "# Define your function `detect_problems` here\n", "\n", "def detect_problems(file_path):\n", - " #YOUR CODE HERE: Use patient_summary() to get the means and check_zeros() to check for zeros in the means\n", - "\n", - " return" + " mean_inflam = patient_summary(file_path, 'mean')\n", + " return check_zeros(mean_inflam)\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n", + "Number of CSV files found: 0\n" + ] + } + ], "source": [ "# Test out your code here\n", "# Your output for the first file should be False\n", - "print(detect_problems(all_paths[0]))" + "import glob as glob_module\n", + "all_paths = sorted(glob_module.glob('data/*.csv'))\n", + "print(all_paths)\n", + "print(\"Number of CSV files found:\", len(all_paths))\n" ] }, { @@ -327,7 +432,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.9.6" } }, "nbformat": 4, From 5efe8299500ecea827f04dda167446b6f90b20d0 Mon Sep 17 00:00:00 2001 From: Sediqa Date: Tue, 16 Dec 2025 14:59:45 +0000 Subject: [PATCH 3/5] updated assignment 2 based on comments --- 02_activities/assignments/assignment_2.ipynb | 32 ++++++++------------ 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/02_activities/assignments/assignment_2.ipynb b/02_activities/assignments/assignment_2.ipynb index 29b72735..4d7cd73d 100644 --- a/02_activities/assignments/assignment_2.ipynb +++ b/02_activities/assignments/assignment_2.ipynb @@ -72,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 4, "metadata": { "id": "n0m48JsS-nMC" }, @@ -204,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": { "id": "82-bk4CBB1w4" }, @@ -218,15 +218,15 @@ "\n", " # Implement the specific operation based on the 'operation' argument\n", " if operation == 'mean':\n", - " summary_values = np.mean(data, axis=ax)\n", + " summary_values = np.mean(data, axis=1)\n", " # YOUR CODE HERE: Calculate the mean (average) number of flare-ups for each patient\n", "\n", " elif operation == 'max':\n", - " summary_values = np.max(data, axis=ax)\n", + " summary_values = np.max(data, axis=1)\n", " # YOUR CODE HERE: Calculate the maximum number of flare-ups experienced by each patient\n", "\n", " elif operation == 'min':\n", - " summary_values = np.max(data, axis=ax)\n", + " summary_values = np.min(data, axis=1)\n", " # YOUR CODE HERE: Calculate the minimum number of flare-ups experienced by each patient\n", "\n", " else:\n", @@ -238,21 +238,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "id": "3TYo0-1SDLrd" }, "outputs": [ { - "ename": "NameError", - "evalue": "name 'summary_values' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[10], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Test it out on the data file we read in and make sure the size is what we expect i.e., 60\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m# Your output for the first file should be 60\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m data_min \u001b[38;5;241m=\u001b[39m \u001b[43mpatient_summary\u001b[49m\u001b[43m(\u001b[49m\u001b[43mall_paths\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mmin\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28mprint\u001b[39m(result_mean\u001b[38;5;241m.\u001b[39mshape)\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(patient_summary(all_path[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmax\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n", - "Cell \u001b[0;32mIn[8], line 24\u001b[0m, in \u001b[0;36mpatient_summary\u001b[0;34m(file_path, operation)\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[38;5;66;03m# YOUR CODE HERE: Calculate the minimum number of flare-ups experienced by each patient\u001b[39;00m\n\u001b[1;32m 19\u001b[0m \n\u001b[1;32m 20\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 21\u001b[0m \u001b[38;5;66;03m# If the operation is not one of the expected values, raise an error\u001b[39;00m\n\u001b[1;32m 22\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInvalid operation. Please choose \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmean\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmax\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m, or \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmin\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 24\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msummary_values\u001b[49m\n", - "\u001b[0;31mNameError\u001b[0m: name 'summary_values' is not defined" + "name": "stdout", + "output_type": "stream", + "text": [ + "60\n" ] } ], @@ -260,8 +255,7 @@ "# Test it out on the data file we read in and make sure the size is what we expect i.e., 60\n", "# Your output for the first file should be 60\n", "data_min = patient_summary(all_paths[0], 'min')\n", - "print(result_min.shape)\n", - "print(data_min)" + "print(len(data_min))" ] }, { @@ -345,7 +339,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 13, "metadata": { "id": "LEYPM5v4JT0i" }, @@ -360,7 +354,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 14, "metadata": {}, "outputs": [ { From 191dd3067fa7df76a08fb3d662d4511f6263d0f3 Mon Sep 17 00:00:00 2001 From: Sediqa Date: Tue, 16 Dec 2025 20:44:31 +0000 Subject: [PATCH 4/5] completed assignment2 --- 02_activities/assignments/assignment_2.ipynb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/02_activities/assignments/assignment_2.ipynb b/02_activities/assignments/assignment_2.ipynb index 4d7cd73d..b4fba9eb 100644 --- a/02_activities/assignments/assignment_2.ipynb +++ b/02_activities/assignments/assignment_2.ipynb @@ -72,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 1, "metadata": { "id": "n0m48JsS-nMC" }, @@ -204,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 2, "metadata": { "id": "82-bk4CBB1w4" }, @@ -238,7 +238,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 3, "metadata": { "id": "3TYo0-1SDLrd" }, @@ -313,7 +313,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 5, "metadata": { "id": "_svDiRkdIwiT" }, @@ -339,7 +339,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 6, "metadata": { "id": "LEYPM5v4JT0i" }, @@ -354,7 +354,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 7, "metadata": {}, "outputs": [ { From a2424ff00e6818ded0fb89205e0136a1797b18ca Mon Sep 17 00:00:00 2001 From: Sediqa Date: Tue, 16 Dec 2025 22:36:02 +0000 Subject: [PATCH 5/5] completed assignment2! --- 02_activities/assignments/assignment_2.ipynb | 196 +++++++++++++++---- 1 file changed, 161 insertions(+), 35 deletions(-) diff --git a/02_activities/assignments/assignment_2.ipynb b/02_activities/assignments/assignment_2.ipynb index b4fba9eb..884a5d60 100644 --- a/02_activities/assignments/assignment_2.ipynb +++ b/02_activities/assignments/assignment_2.ipynb @@ -72,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 9, "metadata": { "id": "n0m48JsS-nMC" }, @@ -204,41 +204,167 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "data_dir = '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/'\n", + "csv_files = sorted(glob(data_dir + '*.csv'))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_01.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_02.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_03.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_04.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_05.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_06.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_07.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_08.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_09.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_10.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_11.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_12.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/small_01.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/small_02.csv', '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/small_03.csv']\n" + ] + } + ], + "source": [ + "print(csv_files)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "data_dir = '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/'\n", + "csv_files = sorted(glob(data_dir + 'inflammation_*.csv')) " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "def patient_summary(file_path, operation):\n", + " data = np.loadtxt(fname=file_path, delimiter=',')\n", + "\n", + " if operation == 'mean':\n", + " summary_values = np.mean(data, axis=1)\n", + " elif operation == 'max':\n", + " summary_values = np.max(data, axis=1)\n", + " elif operation == 'min':\n", + " summary_values = np.min(data, axis=1)\n", + " else:\n", + " raise ValueError(\"Invalid operation. Please choose 'mean', 'max', or 'min'.\")\n", + "\n", + " return summary_values\n" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_01.csv min mean: 5.225 zeros: 0 problem: False\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_02.csv min mean: 5.1 zeros: 0 problem: False\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_03.csv min mean: 0.0 zeros: 1 problem: True\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_04.csv min mean: 5.025 zeros: 0 problem: False\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_05.csv min mean: 4.85 zeros: 0 problem: False\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_06.csv min mean: 4.85 zeros: 0 problem: False\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_07.csv min mean: 5.0 zeros: 0 problem: False\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_08.csv min mean: 0.0 zeros: 1 problem: True\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_09.csv min mean: 5.275 zeros: 0 problem: False\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_10.csv min mean: 5.1 zeros: 0 problem: False\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_11.csv min mean: 0.0 zeros: 1 problem: True\n", + "/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_12.csv min mean: 4.825 zeros: 0 problem: False\n" + ] + } + ], + "source": [ + "from glob import glob\n", + "import numpy as np\n", + "\n", + "data_dir = '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/'\n", + "csv_files = sorted(glob(data_dir + 'inflammation_*.csv'))\n", + "\n", + "for f in csv_files:\n", + " means = patient_summary(f, 'mean')\n", + " print(f, \"min mean:\", means.min(), \"zeros:\", np.sum(means == 0), \"problem:\", detect_problems(f))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "data_dir = '/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/'\n", + "csv_files = sorted(glob(data_dir + '*.csv'))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 36, "metadata": { "id": "82-bk4CBB1w4" }, "outputs": [], "source": [ "import numpy as np\n", + "from glob import glob\n", + "\n", + "def check_zeros(x):\n", + " flag = np.where(x == 0)[0]\n", + " return len(flag) > 0\n", "\n", "def patient_summary(file_path, operation):\n", - " data = np.loadtxt(fname=file_path, delimiter=',') # Load the data from the file\n", - " ax = 1 # This specifies that the operation should be done for each row (patient)\n", + " data = np.loadtxt(fname=file_path, delimiter=',')\n", "\n", - " # Implement the specific operation based on the 'operation' argument\n", " if operation == 'mean':\n", " summary_values = np.mean(data, axis=1)\n", - " # YOUR CODE HERE: Calculate the mean (average) number of flare-ups for each patient\n", "\n", " elif operation == 'max':\n", " summary_values = np.max(data, axis=1)\n", - " # YOUR CODE HERE: Calculate the maximum number of flare-ups experienced by each patient\n", "\n", " elif operation == 'min':\n", " summary_values = np.min(data, axis=1)\n", - " # YOUR CODE HERE: Calculate the minimum number of flare-ups experienced by each patient\n", "\n", " else:\n", - " # If the operation is not one of the expected values, raise an error\n", " raise ValueError(\"Invalid operation. Please choose 'mean', 'max', or 'min'.\")\n", "\n", - " return summary_values" + " return summary_values\n", + "\n", + "def detect_problems(file_path):\n", + " mean_inflam = patient_summary(file_path, 'mean')\n", + " return check_zeros(mean_inflam)\n", + "\n", + "\n", + "data_dir = 'python/05_src/data/assignment_2_data/'\n", + "csv_files = sorted(glob(data_dir + '*.csv'))\n", + "\n", + "for f in csv_files:\n", + " means = patient_summary(f, 'mean')\n", + " print(f, \"min mean:\", means.min(), \"zeros:\", np.sum(means == 0), \"problem:\", detect_problems(f))\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "data = np.loadtxt(csv_files[0], delimiter=',')\n", + "print(\"shape:\", data.shape)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 27, "metadata": { "id": "3TYo0-1SDLrd" }, @@ -254,6 +380,13 @@ "source": [ "# Test it out on the data file we read in and make sure the size is what we expect i.e., 60\n", "# Your output for the first file should be 60\n", + "from glob import glob\n", + "\n", + "all_paths = sorted(\n", + " glob('/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_*.csv')\n", + ")\n", + "\n", + "\n", "data_min = patient_summary(all_paths[0], 'min')\n", "print(len(data_min))" ] @@ -313,33 +446,22 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 28, "metadata": { "id": "_svDiRkdIwiT" }, "outputs": [], "source": [ "# Run this cell so you can use this helper function\n", - "\n", - "def check_zeros(x):\n", - " '''\n", - " Given an array, x, check whether any values in x equal 0.\n", - " Return True if any values found, else returns False.\n", - " '''\n", - " # np.where() checks every value in x against the condition (x == 0) and returns a tuple of indices where it was True (i.e. x was 0)\n", - " flag = np.where(x == 0)[0]\n", - "\n", - " # Checks if there are any objects in flag (i.e. not empty)\n", - " # If not empty, it found at least one zero so flag is True, and vice-versa.\n", - " return len(flag) > 0\n", - "def detect_problems():\n", + "def detect_problems(file_path):\n", " mean_inflam = patient_summary(file_path, 'mean')\n", - " return check_zeros(mean_inflam)" + " return check_zeros(mean_inflam)\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 29, "metadata": { "id": "LEYPM5v4JT0i" }, @@ -349,30 +471,34 @@ "\n", "def detect_problems(file_path):\n", " mean_inflam = patient_summary(file_path, 'mean')\n", - " return check_zeros(mean_inflam)\n" + " return check_zeros(mean_inflam)\n", + "\n", + "from glob import glob\n", + "\n", + "all_paths = sorted(\n", + " glob('/Users/Bakhtiari/Desktop/python/05_src/data/assignment_2_data/inflammation_*.csv')\n", + ")\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[]\n", - "Number of CSV files found: 0\n" + "False\n" ] } ], "source": [ "# Test out your code here\n", "# Your output for the first file should be False\n", - "import glob as glob_module\n", - "all_paths = sorted(glob_module.glob('data/*.csv'))\n", - "print(all_paths)\n", - "print(\"Number of CSV files found:\", len(all_paths))\n" + "print(detect_problems(all_paths[0]))\n", + "\n" ] }, {