From 1f6a4fd25cbe42cf2a5e693d3e2bbb52b9e2a207 Mon Sep 17 00:00:00 2001 From: ckakonkwe-tu Date: Mon, 30 Mar 2020 14:56:38 -0500 Subject: [PATCH] Practice with data structures --- ckakonkwe_practice_data_structures.ipynb | 1120 ++++++++++++++++++++++ 1 file changed, 1120 insertions(+) create mode 100644 ckakonkwe_practice_data_structures.ipynb diff --git a/ckakonkwe_practice_data_structures.ipynb b/ckakonkwe_practice_data_structures.ipynb new file mode 100644 index 0000000..a1e94a1 --- /dev/null +++ b/ckakonkwe_practice_data_structures.ipynb @@ -0,0 +1,1120 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Practice activity with data structures\n", + "**Author:** Kakonkwe Christian" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Import of packages successful\n" + ] + } + ], + "source": [ + "#Import necessary python packages\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import urllib.request\n", + "print('Import of packages successful')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.0, 2.0, 5.0, 9.56, 14.39, 21.72, 16.72, 11.61, 4.89, 0.99]\n", + "['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']\n" + ] + } + ], + "source": [ + "#Create a list of monthly temperature (**oC) at Boulder, CO\n", + "avg_temp=[0.0, 2.00, 5.0, 9.56, 14.39, 21.72, 16.72, 11.61, 4.89, 0.99]\n", + "months=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']\n", + "print(avg_temp)\n", + "print(months)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#Insert missing values into the lists, months of June and July." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.0, 2.0, 5.0, 9.56, 14.39, 19.56, 22.78, 21.72, 16.72, 11.61, 4.89, 0.99]\n", + "['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']\n" + ] + } + ], + "source": [ + "avg_temp.insert(5,19.56)\n", + "avg_temp.insert(6,22.78)\n", + "months.insert(5,'June')\n", + "months.insert(6,'July')\n", + "print(avg_temp)\n", + "print(months)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "#Question 5. Manually create numpy arrays." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 2. 5. 9.56 14.39 19.56 22.78 21.72 16.72 11.61 4.89 0.99]\n", + "[ 0. 2. 5. 9.56 14.39 19.56 22.78 21.72 16.72 11.61 4.89 0.99]\n" + ] + } + ], + "source": [ + "avg_temp_np1=np.array([0.0, 2.0, 5.0, 9.56, 14.39, 19.56, 22.78, 21.72, 16.72, 11.61, 4.89, 0.99])\n", + "print(avg_temp_np1)\n", + "avg_temp_np2=np.array(avg_temp)\n", + "print(avg_temp_np2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'D:\\\\onedrive - tulane university\\\\tulane courses\\\\python fundamentals\\\\pythonfundamentals\\\\repositories\\\\ea-bootcamp-practice-data-structures'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "os.getcwd()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File download successful\n" + ] + } + ], + "source": [ + "#Download text file to data directory\n", + "urllib.request.urlretrieve(url='https://ndownloader.figshare.com/files/12732467', filename='d://onedrive - tulane university/tulane courses/python fundamentals/pythonfundamentals/data/avg-monthly-temp.txt')\n", + "print('File download successful')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "os.chdir('d://onedrive - tulane university/tulane courses/python fundamentals/pythonfundamentals/')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0. , 2. , 5. , 9.56, 14.39, 19.56, 22.78, 21.72, 16.72,\n", + " 11.61, 4.89, 0.99])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "avg_monthly_temp=np.loadtxt(fname='data/avg-monthly-temp.txt')\n", + "avg_monthly_temp" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 5. 9.56 14.39]\n", + "[16.72 11.61 4.89]\n" + ] + } + ], + "source": [ + "#Selections of subsets of the data\n", + "#March, April, and May\n", + "mar_apr_may=avg_monthly_temp[2:5]\n", + "print(mar_apr_may)\n", + "#Sept, Oct, and Nov\n", + "sept_oct_nov=avg_monthly_temp[8:11]\n", + "print(sept_oct_nov)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9.65\n", + "11.073333333333332\n" + ] + } + ], + "source": [ + "#Mean of each one of the 2 new arrays\n", + "mean1=np.mean(mar_apr_may)\n", + "print(mean1)\n", + "mean2=np.mean(sept_oct_nov)\n", + "print(mean2)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MonthsTemperature
0jan0.00
1feb2.00
2mar5.00
3apr9.56
4may14.39
5june19.56
6july22.78
7aug21.72
8sept16.72
9oct11.61
10nov4.89
11dec0.99
\n", + "
" + ], + "text/plain": [ + " Months Temperature\n", + "0 jan 0.00\n", + "1 feb 2.00\n", + "2 mar 5.00\n", + "3 apr 9.56\n", + "4 may 14.39\n", + "5 june 19.56\n", + "6 july 22.78\n", + "7 aug 21.72\n", + "8 sept 16.72\n", + "9 oct 11.61\n", + "10 nov 4.89\n", + "11 dec 0.99" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Manually create a pandas data frame of average monthly temperature at Boulder, CO\n", + "avg_temp_bldr=pd.DataFrame(columns=['Months', 'Temperature'], data=[['jan', 0.0], ['feb', 2.00], ['mar', 5.0], ['apr', 9.56], \n", + " ['may', 14.39], ['june', 19.56], ['july', 22.78], \n", + " ['aug', 21.72], ['sept', 16.72], ['oct', 11.61], \n", + " ['nov', 4.89], ['dec', 0.99]])\n", + "avg_temp_bldr" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'d:\\\\onedrive - tulane university\\\\tulane courses\\\\python fundamentals\\\\pythonfundamentals'" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "os.getcwd()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "#Download .csv data" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Data download successful\n" + ] + } + ], + "source": [ + "urllib.request.urlretrieve(url='https://ndownloader.figshare.com/files/12739457', filename='data/avg-temp-months-seasons.csv')\n", + "print('Data download successful')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "#Read .csv data into a pandas dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
monthstempseasons
0Jan0.00Winter
1Feb2.00Winter
2Mar5.00Spring
3Apr9.56Spring
4May14.39Spring
5June19.56Summer
6July22.78Summer
7Aug21.72Summer
8Sept16.72Fall
9Oct11.61Fall
10Nov4.89Fall
11Dec0.99Winter
\n", + "
" + ], + "text/plain": [ + " months temp seasons\n", + "0 Jan 0.00 Winter\n", + "1 Feb 2.00 Winter\n", + "2 Mar 5.00 Spring\n", + "3 Apr 9.56 Spring\n", + "4 May 14.39 Spring\n", + "5 June 19.56 Summer\n", + "6 July 22.78 Summer\n", + "7 Aug 21.72 Summer\n", + "8 Sept 16.72 Fall\n", + "9 Oct 11.61 Fall\n", + "10 Nov 4.89 Fall\n", + "11 Dec 0.99 Winter" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "avg_temp_months_seas=pd.read_csv('data/avg-temp-months-seasons.csv')\n", + "avg_temp_months_seas" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "#Subdivide the data into sets per season" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
monthstempseasons
8Sept16.72Fall
9Oct11.61Fall
10Nov4.89Fall
\n", + "
" + ], + "text/plain": [ + " months temp seasons\n", + "8 Sept 16.72 Fall\n", + "9 Oct 11.61 Fall\n", + "10 Nov 4.89 Fall" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "winter=avg_temp_months_seas[avg_temp_months_seas.seasons=='Winter']\n", + "spring=avg_temp_months_seas[avg_temp_months_seas.seasons=='Spring']\n", + "summer=avg_temp_months_seas[avg_temp_months_seas.seasons=='Summer']\n", + "fall=avg_temp_months_seas[avg_temp_months_seas.seasons=='Fall']\n", + "fall" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
count3.000000
mean0.996667
std1.000017
min0.000000
25%0.495000
50%0.990000
75%1.495000
max2.000000
\n", + "
" + ], + "text/plain": [ + " temp\n", + "count 3.000000\n", + "mean 0.996667\n", + "std 1.000017\n", + "min 0.000000\n", + "25% 0.495000\n", + "50% 0.990000\n", + "75% 1.495000\n", + "max 2.000000" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Summary statistics\n", + "winter.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
count3.000000
mean9.650000
std4.695647
min5.000000
25%7.280000
50%9.560000
75%11.975000
max14.390000
\n", + "
" + ], + "text/plain": [ + " temp\n", + "count 3.000000\n", + "mean 9.650000\n", + "std 4.695647\n", + "min 5.000000\n", + "25% 7.280000\n", + "50% 9.560000\n", + "75% 11.975000\n", + "max 14.390000" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spring.describe()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
count3.000000
mean21.353333
std1.641016
min19.560000
25%20.640000
50%21.720000
75%22.250000
max22.780000
\n", + "
" + ], + "text/plain": [ + " temp\n", + "count 3.000000\n", + "mean 21.353333\n", + "std 1.641016\n", + "min 19.560000\n", + "25% 20.640000\n", + "50% 21.720000\n", + "75% 22.250000\n", + "max 22.780000" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "summer.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
count3.000000
mean11.073333
std5.933231
min4.890000
25%8.250000
50%11.610000
75%14.165000
max16.720000
\n", + "
" + ], + "text/plain": [ + " temp\n", + "count 3.000000\n", + "mean 11.073333\n", + "std 5.933231\n", + "min 4.890000\n", + "25% 8.250000\n", + "50% 11.610000\n", + "75% 14.165000\n", + "max 16.720000" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fall.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
seasonsmeans
0Winter0.996667
1Spring9.650000
2Summer21.353333
3Fall11.073333
\n", + "
" + ], + "text/plain": [ + " seasons means\n", + "0 Winter 0.996667\n", + "1 Spring 9.650000\n", + "2 Summer 21.353333\n", + "3 Fall 11.073333" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean_temp_seas=pd.DataFrame(columns=['seasons', 'means'], data=[['Winter', 0.996667], ['Spring',9.650000 ],\n", + " ['Summer', 21.353333], ['Fall', 11.073333]])\n", + "mean_temp_seas" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0, 0.5, 'Mean Temperature (C)'),\n", + " Text(0.5, 0, 'Season'),\n", + " Text(0.5, 1.0, 'Mean seasonal Temperature at Boulder, CO ')]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax=plt.subplots()\n", + "ax.plot(mean_temp_seas.seasons, mean_temp_seas.means)\n", + "ax.set(title='Mean seasonal Temperature at Boulder, CO ', xlabel='Season', ylabel='Mean Temperature (C)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}