Commit 4cbd5423 by Paktalin

Section 6 exercises are done

parent 388fb65b
{
"cells": [
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"A = np.array([[0.3, 0.6, 0.1],\n",
" [0.5, 0.2, 0.3],\n",
" [0.4, 0.1, 0.5]])\n",
"v = np.array([0.33, 0.33, 0.33])"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"dist = []"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Iteration 0\n",
"[0.33 0.33 0.33]\n",
"[0.396 0.297 0.297]\n",
"Iteration 1\n",
"[0.396 0.297 0.297]\n",
"[0.3861 0.3267 0.2772]\n",
"Iteration 2\n",
"[0.3861 0.3267 0.2772]\n",
"[0.39006 0.32472 0.27522]\n",
"Iteration 3\n",
"[0.39006 0.32472 0.27522]\n",
"[0.389466 0.326502 0.274032]\n",
"Iteration 4\n",
"[0.389466 0.326502 0.274032]\n",
"[0.3897036 0.3263832 0.2739132]\n",
"Iteration 5\n",
"[0.3897036 0.3263832 0.2739132]\n",
"[0.38966796 0.32649012 0.27384192]\n",
"Iteration 6\n",
"[0.38966796 0.32649012 0.27384192]\n",
"[0.38968222 0.32648299 0.27383479]\n",
"Iteration 7\n",
"[0.38968222 0.32648299 0.27383479]\n",
"[0.38968008 0.32648941 0.27383052]\n",
"Iteration 8\n",
"[0.38968008 0.32648941 0.27383052]\n",
"[0.38968093 0.32648898 0.27383009]\n",
"Iteration 9\n",
"[0.38968093 0.32648898 0.27383009]\n",
"[0.3896808 0.32648936 0.27382983]\n",
"Iteration 10\n",
"[0.3896808 0.32648936 0.27382983]\n",
"[0.38968086 0.32648934 0.27382981]\n",
"Iteration 11\n",
"[0.38968086 0.32648934 0.27382981]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 12\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 13\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 14\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 15\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 16\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 17\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 18\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 19\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 20\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 21\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 22\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 23\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n",
"Iteration 24\n",
"[0.38968085 0.32648936 0.27382979]\n",
"[0.38968085 0.32648936 0.27382979]\n"
]
}
],
"source": [
"for i in range(25):\n",
" _v = v.dot(A)\n",
" print(\"Iteration %i\" % i)\n",
" print(v)\n",
" print(_v)\n",
" diff = _v - v\n",
" dist.append(np.linalg.norm(diff))\n",
" v = _v"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.08083316151184486,\n",
" 0.03704240812906204,\n",
" 0.004849989690710693,\n",
" 0.002222544487743674,\n",
" 0.00029099938144264706,\n",
" 0.00013335266926457683,\n",
" 1.7459962886455936e-05,\n",
" 8.001160155840784e-06,\n",
" 1.0475977731887158e-06,\n",
" 4.800696093667666e-07,\n",
" 6.285586635460998e-08,\n",
" 2.8804176523432448e-08,\n",
" 3.77135205560905e-09,\n",
" 1.728250651936743e-09,\n",
" 2.2628112469628292e-10,\n",
" 1.0369503822604577e-10,\n",
" 1.3576844819538952e-11,\n",
" 6.221705260970853e-12,\n",
" 8.145748833116578e-13,\n",
" 3.7327324007457455e-13,\n",
" 4.886006264695781e-14,\n",
" 2.2357835448669304e-14,\n",
" 2.9691980252969e-15,\n",
" 1.3799853365199569e-15,\n",
" 1.8410966031475738e-16]"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dist"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(dist)\n",
"plt.show()"
]
}
],
"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.5.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from random import randrange\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"X = np.random.random(1000)\n",
"Y = [0]*1000"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"for i in range(1000):\n",
" for j in range(1000):\n",
" Y[i] += X[randrange(1000)]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(Y, bins=100)\n",
"plt.show()"
]
}
],
"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.5.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"mnist = pd.read_csv(\"train.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\litak\\Anaconda3\\envs\\tensorflow-cpu\\lib\\site-packages\\ipykernel_launcher.py:1: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n",
" \"\"\"Entry point for launching an IPython kernel.\n"
]
},
{
"data": {
"text/plain": [
"numpy.ndarray"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mnist_7 = mnist[mnist['label'] == 7].as_matrix()\n",
"type(mnist_7)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"M7_mean = np.array([np.mean(mnist_7[:,i]) for i in range(784)])\n",
"M7_mean = M7_mean.reshape(28, 28)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(255-M7_mean, cmap='gray')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\litak\\Anaconda3\\envs\\tensorflow-cpu\\lib\\site-packages\\ipykernel_launcher.py:1: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n",
" \"\"\"Entry point for launching an IPython kernel.\n"
]
}
],
"source": [
"M_3 = mnist[mnist['label'] == 3].as_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
"M3_mean = np.array([np.mean(M_3[:,i]) for i in range(784)])\n",
"M3_mean = M3_mean.reshape(28, 28)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(255-M3_mean, cmap='gray')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\litak\\Anaconda3\\envs\\tensorflow-cpu\\lib\\site-packages\\ipykernel_launcher.py:2: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n",
" \n"
]
}
],
"source": [
"mnist = pd.read_csv(\"train.csv\")\n",
"M1 = mnist[mnist['label'] == 1].as_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"M1_mean = np.array([np.mean(M1[:,i]) for i in range(784)])\n",
"M1_mean = M1_mean.reshape(28, 28)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(255 - M1_mean, cmap='gray')\n",
"plt.show()"
]
},
{
"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.5.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\litak\\Anaconda3\\envs\\tensorflow-cpu\\lib\\site-packages\\ipykernel_launcher.py:2: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n",
" \n"
]
}
],
"source": [
"mnist = pd.read_csv(\"train.csv\")\n",
"M6 = mnist[mnist['label'] == 6].as_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"M6_mean = np.array([np.mean(M6[:,i]) for i in range(784)])\n",
"M6_mean = M6_mean.reshape(28, 28)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"'''Manual rotation'''\n",
"# creating empty array\n",
"rotated = np.array([[0]*29]*28)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"for i in range(28):\n",
" rotated[:,27-i] = M6_mean[i,:]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(255 - rotated, cmap='gray')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(28, 28)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''Rotation with numpy function'''\n",
"\n",
"M6_rotated = np.rot90(M6_mean, k=3)\n",
"M6_rotated.shape"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(255 - M6_rotated, cmap='gray')\n",
"plt.show()"
]
}
],
"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.5.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[1., 0., 0.],\n",
" [0., 1., 0.],\n",
" [0., 0., 1.]])"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"I3 = np.eye(3)\n",
"I3"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"A = np.array([[0.3, 0.6, 0.1],\n",
" [0.5, 0.2, 0.3],\n",
" [0.4, 0.1, 0.5]])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def is_symmetric_automatic(matrix):\n",
" return (matrix == matrix.T).all()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_symmetric_automatic(A)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_symmetric_automatic(I3)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"def is_symmetric_manual(matrix):\n",
" matrix_T = np.zeros((len(matrix), len(matrix[0])))\n",
" for i in range(len(matrix)):\n",
" for j in range(len(matrix[i])):\n",
" matrix_T[i,j] = matrix[j,i]\n",
" return(matrix_T == matrix).all()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_symmetric_manual(A)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_symmetric_automatic(I3)"
]
}
],
"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.5.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"theta = np.linspace(-np.pi, np.pi, 200)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for t in theta:\n",
" plt.scatter(10*np.sin(t) + 2*np.random.random(1), 10*np.cos(t) + 2*np.random.random(1), color='blue')\n",
" plt.scatter(20*np.sin(t) + 2*np.random.random(1), 20*np.cos(t) + 2*np.random.random(1), color='red')\n",
"plt.axis('equal')\n",
"plt.show()"
]
}
],
"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.5.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"b = np.random.uniform(-1, 1, (1000, 2))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>-0.131156</td>\n",
" <td>-0.189478</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>-0.016687</td>\n",
" <td>0.727200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-0.647184</td>\n",
" <td>0.910890</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>-0.492190</td>\n",
" <td>0.149369</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>-0.576105</td>\n",
" <td>0.550543</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 1\n",
"0 -0.131156 -0.189478\n",
"1 -0.016687 0.727200\n",
"2 -0.647184 0.910890\n",
"3 -0.492190 0.149369\n",
"4 -0.576105 0.550543"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame(b)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"csv = df.to_csv(path_or_buf=\"data.csv\")"
]
}
],
"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.5.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment