diff --git a/cmathew9.ipynb b/cmathew9.ipynb new file mode 100644 index 0000000..8791751 --- /dev/null +++ b/cmathew9.ipynb @@ -0,0 +1,255 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "IPython version: %6.6s 6.1.0\n" + ] + } + ], + "source": [ + "import IPython\n", + "import json\n", + "# Numpy is a library for working with Arrays\n", + "import numpy as np\n", + "# SciPy implements many different numerical algorithms\n", + "import scipy as sp\n", + "# Pandas is good with data tables\n", + "import pandas as pd\n", + "# Module for plotting\n", + "import matplotlib\n", + "#BeautifulSoup parses HTML documents (once you get them via requests)\n", + "import bs4\n", + "# Nltk helps with some natural language tasks, like stemming\n", + "import nltk\n", + "# Bson is a binary format of json to be stored in databases\n", + "import bson\n", + "# Mongo is one of common nosql databases \n", + "# it stores/searches json documents natively\n", + "import pymongo\n", + "print (\"IPython version: %6.6s\", IPython.__version__)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Make a 2 row x 3 column array of random numbers\n", + "[[ 0.20354485 0.87353642 0.79226415]\n", + " [ 0.26457656 0.23486214 0.8240387 ]]\n", + "Add 5 to every element\n", + "[[ 5.20354485 5.87353642 5.79226415]\n", + " [ 5.26457656 5.23486214 5.8240387 ]]\n", + "Get the first row\n", + "[ 5.20354485 5.87353642 5.79226415]\n" + ] + } + ], + "source": [ + "#Here is what numpy can do\\n\",\n", + "print (\"Make a 2 row x 3 column array of random numbers\")\n", + "x = np.random.random((2, 3))\n", + "print (x)\n", + "\n", + "#array operation (as in R)\n", + "print (\"Add 5 to every element\")\n", + "x = x + 5\n", + "print (x)\n", + "\n", + "# get a slice (first row) (as in R)\n", + "print (\"Get the first row\")\n", + "print (x[0, :])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# IPython is quite modern: just press at the end of the unfinished statement to see the documentation\n", + "# on possible completions.\n", + "# In the code cell below, type x., to find built-in operations for x\n", + "x.any" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline \n", + "import matplotlib.pyplot as plt\n", + "heads = np.random.binomial(500, .5, size=500)\n", + "histogram = plt.hist(heads, bins=10)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Task 1\n", + "## write a program to produce Fibonacci numbers up to 1000000" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040]\n" + ] + } + ], + "source": [ + "def fib(n=10):\n", + " if n == 0:\n", + " return 0\n", + " if n == 1:\n", + " return 1\n", + " return fib(n-1) + fib(n-2)\n", + "nums = []\n", + "n = 0\n", + "fibn = 0\n", + "while fibn <= 1000000:\n", + " nums.append(fibn)\n", + " n += 1\n", + " fibn = fib(n)\n", + "print(nums)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Task 2\n", + "## write a program to simulate 1000 tosses of a fair coin (use np.random.binomial)\n", + "## Calculate the mean and standard deviation of that sample" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mean: 0.497\n", + "standard deviation: 0.4999909999189985\n" + ] + } + ], + "source": [ + "tosses = np.random.binomial(1, 0.5, 1000)\n", + "mean = sum(tosses)/len(tosses)\n", + "std = np.std(tosses)\n", + "print(\"mean: \", mean)\n", + "print(\"standard deviation: \", std)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Task 3\n", + "## Produce a scatterplot of y = 0.5*x+e where x has gaussian (0, 5) and e has gaussian (0, 1) distributions \n", + "### use numpy.random.normal to generate gaussian distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "x = np.random.normal(0, 5, 25)\n", + "e = np.random.normal(0, 1, 25)\n", + "scatter = plt.scatter(x, 0.5*x+e)" + ] + }, + { + "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.8.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +}