Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

complete the Practice0 hw #44

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
264 changes: 264 additions & 0 deletions zdong7.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,264 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"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": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Make a 2 row x 3 column array of random numbers\n",
"[[0.39860853 0.00172869 0.97968484]\n",
" [0.65524169 0.85791178 0.72916159]]\n",
"Add 5 to every element\n",
"[[5.39860853 5.00172869 5.97968484]\n",
" [5.65524169 5.85791178 5.72916159]]\n",
"Get the first row\n",
"[5.39860853 5.00172869 5.97968484]\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": [
"<function ndarray.any>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# IPython is quite modern: just press <TAB> at the end of the unfinished statement to see the documentation\n",
"# on possible completions.\n",
"# In the code cell below, type x.<TAB>, 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": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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": 5,
"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": [
"fn = 0\n",
"f0 = 0\n",
"f1 = 1\n",
"fnList = []\n",
"while fn < 1000000:\n",
" if fn == 0:\n",
" fnList.append(f0)\n",
"\n",
" fnList.append(f1)\n",
" fn = f0 + f1\n",
" f0 = f1\n",
" f1 = fn\n",
"\n",
"# Print the Fibonacci numbers list\n",
"print(fnList)\n"
]
},
{
"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": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean is: 0.527000\n",
"\n",
"The standard deviation is: 0.499270\n",
"\n"
]
}
],
"source": [
"n, p = 1, 0.5\n",
"mean = np.random.binomial(n, p, 1000)\n",
"res = np.mean(mean)\n",
"print(\"The mean is: %f\\n\" % res)\n",
"\n",
"stan = np.std(mean)\n",
"print(\"The standard deviation is: %f\\n\" % stan )"
]
},
{
"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": 41,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline \n",
"import matplotlib.pyplot as plt\n",
"x = np.random.normal(0, 5, 50)\n",
"e = np.random.normal(0, 1, 50)\n",
"y = 0.5*x + e\n",
"gram = 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
}