diff --git a/jjack113.ipynb b/jjack113.ipynb new file mode 100644 index 0000000..21c1210 --- /dev/null +++ b/jjack113.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "IPython version: %6.6s 7.17.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": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Make a 2 row x 3 column array of random numbers\n", + "[[0.88498519 0.11704372 0.660586 ]\n", + " [0.41760578 0.12936561 0.94512844]]\n", + "Add 5 to every element\n", + "[[5.88498519 5.11704372 5.660586 ]\n", + " [5.41760578 5.12936561 5.94512844]]\n", + "Get the first row\n", + "[5.88498519 5.11704372 5.660586 ]\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": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "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": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "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": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "1\n", + "2\n", + "3\n", + "5\n", + "8\n", + "13\n", + "21\n", + "34\n", + "55\n", + "89\n", + "144\n", + "233\n", + "377\n", + "610\n", + "987\n", + "1597\n", + "2584\n", + "4181\n", + "6765\n", + "10946\n", + "17711\n", + "28657\n", + "46368\n", + "75025\n", + "121393\n", + "196418\n", + "317811\n", + "514229\n", + "832040\n" + ] + } + ], + "source": [ + "count = 0\n", + "x = 0\n", + "y = 1\n", + "\n", + "while count < nterms:\n", + " if x < 1000000:\n", + " print(x)\n", + " next_num = x + y\n", + " x = y\n", + " y = next_num\n", + " count += 1" + ] + }, + { + "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": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.508\n", + "0.49993599590347565\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "n, p = 1, .5\n", + "s = np.random.binomial(n, p, 1000)\n", + "mean = sum(s)/1000 \n", + "print(mean)\n", + "sd = np.std(s)\n", + "print(sd)" + ] + }, + { + "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": 19, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'plt' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0me\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0.5\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mscatterplot\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'plt' is not defined" + ] + } + ], + "source": [ + "import matplotlib\n", + "x = np.random.normal(0,5,1000)\n", + "e = np.random.normal(0,1,1000)\n", + "y = 0.5 * x + e\n", + "scatterplot = plt.scatter(x,y)" + ] + }, + { + "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 +}