Last active
January 19, 2019 02:24
-
-
Save NithyaSahadevan/1f5be1ff5a89426ef3c237fbf01bddfe to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" <div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
" <a href=\"http://cocl.us/NotebooksPython101\"><img src = \"https://ibm.box.com/shared/static/yfe6h4az47ktg2mm9h05wby2n7e8kei3.png\" width = 750, align = \"center\"></a>\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://ibm.box.com/shared/static/ugcqz6ohbvff804xp84y4kqnvvk3bq1g.png\" width = 300, align = \"center\"></a>\n", | |
"\n", | |
"\n", | |
"\n", | |
"<h1 align=center><font size = 5>Numpy in Python</font></h1>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import time \n", | |
"import sys\n", | |
"import numpy as np \n", | |
"\n", | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"def Plotvec1(u,z,v):\n", | |
" #this function is used in code \n", | |
" ax = plt.axes()\n", | |
" ax.arrow(0, 0, *u, head_width=0.05,color ='r', head_length=0.1)\n", | |
" plt.text(*(u+0.1), 'u')\n", | |
" \n", | |
" ax.arrow(0, 0, *v, head_width=0.05,color ='b', head_length=0.1)\n", | |
" plt.text(*(v+0.1), 'v')\n", | |
" ax.arrow(0, 0, *z, head_width=0.05, head_length=0.1)\n", | |
" plt.text(*(z+0.1), 'z')\n", | |
" plt.ylim(-2,2)\n", | |
" plt.xlim(-2,2)\n", | |
"\n", | |
"\n", | |
"\n", | |
"def Plotvec2(a,b):\n", | |
" #this function is used in code \n", | |
" ax = plt.axes()\n", | |
" ax.arrow(0, 0, *a, head_width=0.05,color ='r', head_length=0.1)\n", | |
" plt.text(*(a+0.1), 'a')\n", | |
" ax.arrow(0, 0, *b, head_width=0.05,color ='b', head_length=0.1)\n", | |
" plt.text(*(b+0.1), 'b')\n", | |
"\n", | |
" plt.ylim(-2,2)\n", | |
" plt.xlim(-2,2)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If you recall, a Python list is a container that allows you to store and access data. We can create a Python List as follows:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"a=[\"0\",1,\"two\",\"3\",4]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can access the data via an index:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src = \"https://ibm.box.com/shared/static/myq8bs3maj0g1sqn9yqo910zwparhhtj.png\" width = 660, align = \"center\">\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can access each element using a square bracket as follows: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"a[0]: 0\n", | |
"a[1]: 1\n", | |
"a[2]: two\n", | |
"a[3]: 3\n", | |
"a[4]: 4\n" | |
] | |
} | |
], | |
"source": [ | |
"print(\"a[0]:\",a[0])\n", | |
"print(\"a[1]:\",a[1])\n", | |
"print(\"a[2]:\",a[2])\n", | |
"print(\"a[3]:\",a[3])\n", | |
"print(\"a[4]:\",a[4])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"A numpy array is similar to a list, it's usually fixed in size and each element is of the same type. We can cast a list to a numpy array by first importing numpy: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We then cast the list as follows:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([0, 1, 2, 3, 4])" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a=np.array([0,1,2,3, 4])\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Each element is of the same type, in this case integers: " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src = \"https://ibm.box.com/shared/static/sb97ysreaayf24b8ece1452e8m5e2vol.png\" width = 500, align = \"center\">\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" As with lists, we can access each element via a square bracket:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"a[0]: 0\n", | |
"a[1]: 1\n", | |
"a[2]: 2\n", | |
"a[3]: 3\n", | |
"a[4]: 4\n" | |
] | |
} | |
], | |
"source": [ | |
"print(\"a[0]:\",a[0])\n", | |
"print(\"a[1]:\",a[1])\n", | |
"print(\"a[2]:\",a[2])\n", | |
"print(\"a[3]:\",a[3])\n", | |
"print(\"a[4]:\",a[4])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The value of “a” is stored a follows: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([0, 1, 2, 3, 4])" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If we check the type of the array we get \"numpy.ndarray\":" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"numpy.ndarray" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"type(a)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As numpy arrays contain data of the same type, we can use the attribute \"dtype\" to obtain the Data-type of the array’s elements. In this case a 64-bit integer: \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dtype('int64')" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.dtype" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can create a numpy array with real numbers:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"b=np.array([3.1,11.02,6.2, 213.2,5.2])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"When we check the type of the array we get \"numpy.ndarray\":" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"numpy.ndarray" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"type(b)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If we examine the attribute \"dtype\" we see float 64, as the elements are not integers: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dtype('float64')" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"b.dtype" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can change the value of the array, consider the array \"c\":" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([20, 1, 2, 3, 4])" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"c=np.array([20,1,2,3,4])\n", | |
"c" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can change the first element of the array to 100 as follows:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([100, 1, 2, 3, 4])" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"c[0]=100\n", | |
"c" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can change the 5th element of the array as follows:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([100, 1, 2, 3, 0])" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"c[4]=0\n", | |
"c" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"\n", | |
"Like lists, we can slice the numpy array, and we can select the elements from 1 to 3 and assign it to a new numpy array 'd' as follows:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([1, 2, 3])" | |
] | |
}, | |
"execution_count": 17, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"d=c[1:4]\n", | |
"d" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can assign the corresponding indexes to new values as follows: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([100, 1, 2, 300, 400])" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"c[3:5]=300,400\n", | |
"c" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Similarly, we can use a list to select a specific index.\n", | |
"The list ' select ' contains several values:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"select=[0,2,3]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can use the list as an argument in the brackets. The output is the elements corresponding to the particular index:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([100, 2, 300])" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"d=c[select]\n", | |
"d" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can assign the specified elements to a new value. For example, we can assign the values to 100 000 as follows:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([100000, 1, 100000, 100000, 400])" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"c[select]=100000\n", | |
"c" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's review some basic array attributes using the array ‘a’:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([0, 1, 2, 3, 4])" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a=np.array([0,1,2,3, 4])\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The attribute size is the Number of elements in the array:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"5" | |
] | |
}, | |
"execution_count": 26, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.size" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The next two attributes will make more sense when we get to higher dimensions but let's review them. The attribute “ndim” represents the Number of array dimensions or the rank of the array, in this case, one:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"1" | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.ndim" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The attribute “shape” is a tuple of integers indicating the size of the array in each dimension:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(5,)" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"a=np.array([1,-1,1,-1])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.0" | |
] | |
}, | |
"execution_count": 30, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"mean=a.mean()\n", | |
"mean" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"1.0" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"standard_deviation=a.std()\n", | |
"standard_deviation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([1, 2, 3, 4, 5])" | |
] | |
}, | |
"execution_count": 32, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"b=np.array([1,2,3,4,5])\n", | |
"b" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"5" | |
] | |
}, | |
"execution_count": 36, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"max_b=b.max()\n", | |
"max_b" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"1" | |
] | |
}, | |
"execution_count": 37, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"max_b=b.min()\n", | |
"max_b" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Array Addition " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Consider the numpy array 'u':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([1, 0])" | |
] | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"u=np.array([1,0])\n", | |
"u" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Consider the numpy array 'v':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([0, 1])" | |
] | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"v=np.array([0,1])\n", | |
"v" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can add the two arrays and assign it to z:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([1, 1])" | |
] | |
}, | |
"execution_count": 40, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"z=u+v\n", | |
"z" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" The operation is equivalent to vector addition:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": { | |
"collapsed": false | |
}, | |
"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": [ | |
"Plotvec1(u,z,v)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Implement the following vector subtraction in numpy: u-v " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 1, -1])" | |
] | |
}, | |
"execution_count": 42, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"u-v" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" <div align=\"right\">\n", | |
"<a href=\"#1\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n", | |
"\n", | |
"</div>\n", | |
"<div id=\"1\" class=\"collapse\">\n", | |
"```\n", | |
"u-v\n", | |
"```\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Consider the vector numpy array 'y':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([1, 2])" | |
] | |
}, | |
"execution_count": 43, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"y=np.array([1,2])\n", | |
"y" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can multiply every element in the array by 2:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([2, 4])" | |
] | |
}, | |
"execution_count": 44, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"z=2*y\n", | |
"z" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" This is equivalent to multiplying a vector by a scaler: " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Multiply the numpy array z with -2:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([-4, -8])" | |
] | |
}, | |
"execution_count": 45, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"-2*z" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" <div align=\"right\">\n", | |
"<a href=\"#2\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n", | |
"\n", | |
"</div>\n", | |
"<div id=\"2\" class=\"collapse\">\n", | |
"```\n", | |
"-2*z\n", | |
"```\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Product of two numpy arrays " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Consider the following array 'u':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([1, 2])" | |
] | |
}, | |
"execution_count": 46, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"u=np.array([1,2])\n", | |
"u" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Consider the following array 'v':" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([3, 2])" | |
] | |
}, | |
"execution_count": 47, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"v=np.array([3,2])\n", | |
"v" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" The product of the two numpy arrays 'u' and 'v' is given by:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 48, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([3, 4])" | |
] | |
}, | |
"execution_count": 48, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"z=u*v\n", | |
"z" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Consider the list [1,2,3,4,5] and [1,0,1,0,1], and cast both lists to a numpy array then multiply them together:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([1, 0, 3, 0, 5])" | |
] | |
}, | |
"execution_count": 49, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a=np.array([1,2,3,4,5])\n", | |
"b=np.array([1,0,1,0,1])\n", | |
"a*b" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click __here__ for the solution.\n", | |
"<!-- \n", | |
"a=np.array([1,2,3,4,5])\n", | |
"b=np.array([1,0,1,0,1])\n", | |
"a*b\n", | |
" -->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Dot Product" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" The dot product of the two numpy arrays 'u' and 'v' is given by:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 50, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"7" | |
] | |
}, | |
"execution_count": 50, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"np.dot(u,v)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Convert the list [-1,1] and [1,1] to numpy arrays 'a' and 'b'. Then, plot the arrays as vectors using the fuction Plotvec2 and find the dot product:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 51, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"the dot product is 0\n" | |
] | |
}, | |
{ | |
"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": [ | |
"a=np.array([-1,1])\n", | |
"b=np.array([1,1])\n", | |
"Plotvec2(a,b)\n", | |
"print(\"the dot product is\",np.dot(a,b) )\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"\n", | |
"Double-click __here__ for the solution.\n", | |
"<!-- \n", | |
"a=np.array([-1,1])\n", | |
"b=np.array([1,1])\n", | |
"Plotvec2(a,b)\n", | |
"print(\"the dot product is\",np.dot(a,b) )\n", | |
" -->\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Convert the list [1,0] and [0,1] to numpy arrays 'a' and 'b'. Then, plot the arrays as vectors using the function Plotvec2 and find the dot product:\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"the dot product is 0\n" | |
] | |
}, | |
{ | |
"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": [ | |
"a=np.array([1,0])\n", | |
"b=np.array([0,1])\n", | |
"Plotvec2(a,b)\n", | |
"print(\"the dot product is\",np.dot(a,b) )" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click __here__ for the solution.\n", | |
"<!-- \n", | |
"a=np.array([1,0])\n", | |
"b=np.array([0,1])\n", | |
"Plotvec2(a,b)\n", | |
"print(\"the dot product is\",np.dot(a,b) )\n", | |
" -->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Convert the list [1,1] and [0,1] to numpy arrays 'a' and 'b'. Then plot the arrays as vectors using the fuction Plotvec2 and find the dot product:\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click __here__ for the solution.\n", | |
"<!-- \n", | |
"a=np.array([1,1])\n", | |
"b=np.array([0,1])\n", | |
"Plotvec2(a,b)\n", | |
"print(\"the dot product is\",np.dot(a,b) )\n", | |
"print(\"the dot product is\",np.dot(a,b) )\n", | |
" -->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Why is the result of the dot product for question 4 and 5 zero, but not zero for question 6? Hint: study the corresponding figures, pay attention to the direction the arrows are pointing to. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"\n", | |
"Double-click __here__ for the solution.\n", | |
"<!-- \n", | |
"```\n", | |
"The vectors used for question 4 and 5 are perpendicular. As a result, the dot product is zero. -->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Adding Constant to a numpy Array " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Consider the following array: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"u=np.array([1,2,3,-1]) \n", | |
"u" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Adding the constant 1 to the array adds 1 to each element in the array:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"u+1" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" The process is summarised in the following animation:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" <img src = \"https://ibm.box.com/shared/static/aqcmsph1r0p5la73p1zw8p9vj01opx3h.gif\" width = 500, align = \"center\">" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" This part of <a href=\"https://docs.scipy.org/doc/numpy-1.13.0/user/basics.broadcasting.html\" > Broadcasting</a> check out the link for more detail. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Mathematical Functions " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can access the value of pie in numpy as follows :" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"np.pi" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can create the following numpy array in Radians:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"x=np.array([0,np.pi/2 , np.pi] )" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" We can apply the function \"sine\" to the array 'x' and assign the values to the array 'y'; this applies the sine function to each element in the array: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"y=np.sin(x)\n", | |
"y" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Linspace" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" A useful function for plotting mathematical functions is \"linespace\". Linespace returns evenly spaced numbers over a specified interval. We specify the starting point of the sequence and the ending point of the sequence. The parameter \"num\" indicates the Number of samples to generate, in this case 5:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"np.linspace(-2,2,num=5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" If we change the parameter **num** to 9, we get 9 evenly spaced numbers over the interval from -2 to 2: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"np.linspace(-2,2,num=9)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can use the function line space to generate 100 evenly spaced samples from the interval 0 to 2 pi: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"x=np.linspace(0,2*np.pi,num=100)\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can apply the sine function to each element in the array 'x' and assign it to the array 'y': " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"y=np.sin(x)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"plt.plot(x,y)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" <a href=\"http://cocl.us/NotebooksPython101bottom\"><img src = \"https://ibm.box.com/shared/static/irypdxea2q4th88zu1o1tsd06dya10go.png\" width = 750, align = \"center\"></a>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### About the Authors: \n", | |
"\n", | |
" [Joseph Santarcangelo]( https://www.linkedin.com/in/joseph-s-50398b136/) has a PhD in Electrical Engineering, his research focused on using machine learning, signal processing, and computer vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Copyright © 2017 [cognitiveclass.ai](https:cognitiveclass.ai). This notebook and its source code are released under the terms of the [MIT License](cognitiveclass.ai)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"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.6.6" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment