Skip to content

Instantly share code, notes, and snippets.

@prafullkotecha
Created January 13, 2019 18:47
Show Gist options
  • Save prafullkotecha/9547a2ae0793352a8e6f980b38bc1ff2 to your computer and use it in GitHub Desktop.
Save prafullkotecha/9547a2ae0793352a8e6f980b38bc1ff2 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"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": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([100, 2, 300])"
]
},
"execution_count": 20,
"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": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([100000, 1, 100000, 100000, 400])"
]
},
"execution_count": 21,
"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": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 1, 2, 3, 4])"
]
},
"execution_count": 22,
"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": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"5"
]
},
"execution_count": 23,
"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": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 24,
"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": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(5,)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.shape"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"a=np.array([1,-1,1,-1])"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.0"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean=a.mean()\n",
"mean"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"standard_deviation=a.std()\n",
"standard_deviation"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 2, 3, 4, 5])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b=np.array([1,2,3,4,5])\n",
"b"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"max_b=b.max()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"max_b=b.min()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Array Addition "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Consider the numpy array 'u':"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 0])"
]
},
"execution_count": 32,
"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": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 1])"
]
},
"execution_count": 33,
"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": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 1])"
]
},
"execution_count": 34,
"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": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc825d6afd0>"
]
},
"metadata": {},
"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": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1, -1])"
]
},
"execution_count": 36,
"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": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 2])"
]
},
"execution_count": 37,
"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": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([2, 4])"
]
},
"execution_count": 38,
"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": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-4, -8])"
]
},
"execution_count": 39,
"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": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 2])"
]
},
"execution_count": 40,
"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": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([3, 2])"
]
},
"execution_count": 41,
"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": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([3, 4])"
]
},
"execution_count": 42,
"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": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 0, 3, 0, 5])"
]
},
"execution_count": 43,
"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": [
" <div align=\"right\">\n",
"<a href=\"#3\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n",
"\n",
"</div>\n",
"<div id=\"3\" class=\"collapse\">\n",
"```\n",
"a=np.array([1,2,3,4,5])\n",
"b=np.array([1,0,1,0,1])\n",
"a*b\n",
"```\n",
"</div>"
]
},
{
"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": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"7"
]
},
"execution_count": 44,
"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": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The dot product of a and b is: 0\n"
]
},
{
"data": {
"image/png": "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\nktRh/x9YO6txoswW0wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc7f84f1d30>"
]
},
"metadata": {},
"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 of a and b is: \", np.dot(a,b))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div align=\"right\">\n",
"<a href=\"#4\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n",
"\n",
"</div>\n",
"<div id=\"4\" class=\"collapse\">\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",
"</div>\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": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The dot product of a and b is: 0\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEACAYAAABVtcpZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE/xJREFUeJzt3X+s5XV95/HnaxxmGkFkoIoGZLAVlg7FjBjwYs1ybLfr\nYBpGGrWSJaJuKiFLNGk3hVUTrslmt9g/1lokVKGumiBL7FYGKBFaOBLWMlKHAezMwNDakVEZmsJQ\nqKDT6Xv/OIfJ7eWc+4Pvd+65M9/nI7mZ7znfz/1+3vOZO+d1Pp/v93tPqgpJUjetmHQBkqTJMQQk\nqcMMAUnqMENAkjrMEJCkDjMEJKnDGodAkhOT3JVkW5KHk3xsTLvPJdmZZGuS9U37lSQ1t7KFY/wL\n8DtVtTXJUcB3k9xRVTtebJDkPOAXq+qUJG8DrgWmWuhbktRA45lAVT1RVVuH288B24ETZjXbCHxl\n2GYz8OokxzftW5LUTKvnBJKcDKwHNs/adQLw+IzHP+SlQSFJWmKthcBwKejrwMeHM4J/s3vEt/j7\nKiRpwto4J0CSlQwC4KtVdfOIJruBN8x4fCLwozHHMhwkaZGqatSb7Xm1NRP4E2BbVf3hmP2bgA8C\nJJkC9lbVnnEHq6pl/XXllVdOvAbrtE7rtM4Xv5poPBNI8ivAfwIeTvIAg2WeTwBrB6/n9YWq+vMk\n707yGPDPwIeb9itJaq5xCFTV/wNesYB2lzXtS5LULu8Yfhl6vd6kS1gQ62yXdbbLOpeHNF1PaluS\nWm41SdJyloSa8IlhSdIhyBCQpA4zBCSpwwwBSeowQ0CSOswQkKQOMwQkqcMMAUnqMENAkjrMEJCk\nDjMEJKnDDAFJ6jBDQJI6zBCQpA4zBCSpwwwBSeowQ0CSOqyVEEhyfZI9SR4as//cJHuTbBl+faqN\nfiVJzTT+oPmhLwF/BHxljjb3VNX5LfUnSWpBKzOBqroXeHqeZi/r8y8lSQfPUp4TmEryQJLbkqxb\nwn4lSWO0tRw0n+8Ca6vqJ0nOA74BnLpEfUuSxliSEKiq52Zs357kmiTHVtVTo9pPT08f2O71evR6\nvYNeoyQdKvr9Pv1+v5VjparaOVByMnBLVZ0xYt/xVbVnuH02cFNVnTzmONVWTZLUBUmoqpd13rWV\nmUCSG4AecFySHwBXAquAqqovAO9NcimwD3ge+K02+pUkNdPaTKAtzgQkaXGazAS8Y1iSOswQkKQO\nMwQkqcMMAUnqMENAkjrMEJCkDjMEJKnDDAFJ6jBDQJI6zBCQpA4zBKQW7dq1izPOeMnvUJSWLUNA\nalnih+jp0GEISC3bt28fF110EevWreP9738/L7zwwqRLksYyBKSWPfLII1x22WVs27aNV73qVVxz\nzTWTLkkayxCQWnbSSScxNTUFwEUXXcS999474Yqk8QwBqWWzzwl4jkDLmSEgtWzXrl1s3rwZgK99\n7Wu84x3vmHBF0niGgLQAmzfD1q0La3vaaafx+c9/nnXr1vH0009z6aWXHtzipAb8eElpHlXwC78A\nRx8NDz446Wqkl5r4x0smuT7JniQPzdHmc0l2JtmaZH0b/UpLYetWePJJePRReOyxSVcjtaut5aAv\nAe8atzPJecAvVtUpwCXAtS31Kx10114LP/0p7N8P11036WqkdrW2HJRkLXBLVb15xL5rgbur6v8M\nH28HelW1Z0Rbl4O0bPzsZ3DccfDcc4PHxx03mBWs8GyalpGJLwctwAnA4zMe/3D4nLSs3Xbb4JzA\ni55/Hu6+e3L1SG1buUT9jEqosW/3p6enD2z3ej16vV77FUkL8MwzsHLG/5IjjoC9eydXjwTQ7/fp\n9/utHGtSy0E7gHNdDtKhIoGjjoJnn510JdJLLZfloDD6HT/AJuCDAEmmgL2jAkCStLRaWQ5KcgPQ\nA45L8gPgSmAVUFX1har68yTvTvIY8M/Ah9voV5LUjDeLSQvgcpCWs+WyHCRJOsQYApLUYYaAJHWY\nISBJHWYISFKHGQKS1GGGgCR1mCEgSR1mCEhShxkCktRhhoAkdZghIEkdZghIUocZApLUYYaAJHWY\nISBJHWYISFKHGQKS1GGGgCR1WCshkGRDkh1JHk1y+Yj9Fyd5MsmW4ddH2uhXktTMyqYHSLICuBr4\nNeBHwP1Jbq6qHbOa3lhVH2vanySpPW3MBM4GdlbVrqraB9wIbBzRLi30JUlqURshcALw+IzHu4fP\nzfabSbYmuSnJiS30K0lqqPFyEKPf4desx5uAG6pqX5JLgC8zWD4aaXp6+sB2r9ej1+s1r1KSDhP9\nfp9+v9/KsVI1+/V6kQdIpoDpqtowfHwFUFV11Zj2K4CnquqYMfuraU1S2xI46ih49tlJVyK9VBKq\n6mUtubexHHQ/8KYka5OsAj7A4J3/zAJfN+PhRmBbC/1KkhpqvBxUVfuTXAbcwSBUrq+q7Uk+Ddxf\nVbcCH0tyPrAPeAr4UNN+JUnNNV4OapvLQVqOXA7Scjbp5SBJ0iHKEJCkDjMEJKnDDAFJ6jBDQJI6\nzBCQpA4zBCSpwwwBSeowQ0CSOswQkKQOMwQkqcMMAUnqMENA0rJ2wQUXcNZZZ3HGGWdw3XXXTbqc\nw46/RVRaAH+L6OTs3buXY445hhdeeIGzzjqLe+65hzVr1ky6rGXF3yIq6bD12c9+lvXr1zM1NcXu\n3bvZuXPnpEs6rLTxGcOSdFB861vf4q677mLz5s2sXr2ad77znbzwwguTLuuw4kxA0rL1zDPPsGbN\nGlavXs2OHTu47777Jl3SYccQkLRsbdiwgX379nH66afziU98gnPOOWfSJR12PDEsLYAnhrWcTfzE\ncJINSXYkeTTJ5SP2r0pyY5KdSf4qyUlt9CtJaqZxCCRZAVwNvAs4HbgwyWmzmv1n4KmqOgX4LPCZ\npv1Kkppr4+qgs4GdVbULIMmNwEZgx4w2G4Erh9tfZxAakrrqD/4A/vZv4cwzYd06OP108Nr/iWgj\nBE4AHp/xeDeDYBjZpqr2J9mb5NiqeqqF/qUlsfpfnoOP/s6kyzg8fPGLgz9f+Uo44gh4/nn4uZ+D\nU0+Ft74V3vIWuOgiOPLIydbZAW2EwKiTEbPP7M5ukxFtDpienj6w3ev16PV6L7M0qR03//eHOfJT\nH4cv3j3pUg4vP/nJ4M+VK+FnP4O//mt48EE45RQ4/3xDYIx+v0+/32/lWI2vDkoyBUxX1Ybh4yuA\nqqqrZrS5fdhmc5JXAD+uqteOOZ5XB0mHu6kp2LIF1q6FN78ZzjoLfvmXB8tCa9fCCq9eX4wmVwe1\nMRO4H3hTkrXAj4EPABfOanMLcDGwGXgfcFcL/Uo6VN1zz+Ddvy/2E9c4BIZr/JcBdzC42uj6qtqe\n5NPA/VV1K3A98NUkO4F/ZBAUkrpq1apJV6AhbxaTpEPcxG8WkyQdmgwBSeowQ0CSOswQkKQOMwQk\nqcMMAUnqMENAkjrMEJCkDjMEJKnDDAFJ6jBDQJI6zBCQpA4zBCSpwwwBSeowQ0CSOswQkKQOMwQk\nqcMMAUnqMENAkjqsUQgkWZPkjiSPJPlmklePabc/yZYkDyT5RpM+JUntafRB80muAv6xqj6T5HJg\nTVVdMaLdP1XV0Qs8ph80L0mL0OSD5puGwA7g3Krak+R1QL+qThvR7tmqetUCj2kISNIiNAmBpucE\nXltVewCq6gngNWParU7ynSTfTrKxYZ+SpJasnK9BkjuB42c+BRTwqUX0c1JVPZHkjcBdSR6qqu+P\nazw9PX1gu9fr0ev1FtGVJB3e+v0+/X6/lWM1XQ7aDvRmLAfdXVW/NM/3fAm4par+75j9LgdJ0iJM\ncjloE/Ch4fbFwM2zGyQ5Jsmq4fbPA28HtjXsV5LUgqYzgWOBm4A3AD8A3ldVe5O8Fbikqj6a5Bzg\nj4H9DELnf1XV/57jmM4EJGkRJnZ10MFgCEjS4kxyOUiSdAgzBCSpwwwBSeowQ0CSOswQkKQOMwQk\nqcMMAUnqMENAkjrMEJCkDjMEJKnDDAFJ6jBDQJI6zBCQpA4zBCSpwwwBSeowQ0CSOswQkKQOMwQk\nqcMMAUnqsEYhkOS9Sb6XZH+SM+dotyHJjiSPJrm8SZ+SpPY0nQk8DFwAfGtcgyQrgKuBdwGnAxcm\nOa1hv5KkFqxs8s1V9QhAkrk+5f5sYGdV7Rq2vRHYCOxo0rckqbmlOCdwAvD4jMe7h89JkiZs3plA\nkjuB42c+BRTwyaq6ZQF9jJol1FzfMD09fWC71+vR6/UW0I0kdUO/36ff77dyrFTN+Xq8sIMkdwO/\nW1VbRuybAqarasPw8RVAVdVVY45VbdQkSV2RhKqaa1l+rDaXg8YVcD/wpiRrk6wCPgBsarFfSdLL\n1PQS0fckeRyYAm5Ncvvw+dcnuRWgqvYDlwF3AH8D3FhV25uVLUlqQyvLQW1yOUiSFme5LAdJkg4x\nhoAkdZghIEkdZghIUocZApLUYYaAJHWYISBJHWYISFKHGQKS1GGGgCR1mCEgSR1mCEhShxkCktRh\nhoAkdZghIEkdZghIUocZApLUYYaAJHVY088Yfm+S7yXZn+TMOdr9fZIHkzyQ5DtN+pQktWdlw+9/\nGLgA+ON52v0r0Kuqpxv2J0lqUaMQqKpHAJLM9wHHwaUnSVp2luqFuYBvJrk/yW8vUZ+SpHnMOxNI\ncidw/MynGLyof7KqbllgP2+vqieSvAa4M8n2qrp38eVKkto0bwhU1a837aSqnhj++Q9J/gw4Gxgb\nAtPT0we2e70evV6vaQmSdNjo9/v0+/1WjpWqan6Q5G7gv1bVd0fseyWwoqqeS3IkcAfw6aq6Y8yx\nqo2aJKkrklBV852bHanpJaLvSfI4MAXcmuT24fOvT3LrsNnxwL1JHgDuA24ZFwCSpKXVykygTc4E\nJGlxJjYTkCQd2gwBSeowQ0CSOswQkKQOMwQkqcMMAUnqMENAkjrMEJCkDjMEJKnDDAFJ6jBDQJI6\nzBCQpA4zBCSpwwwBSeowQ0CSOswQkKQOMwQkqcMMAUnqMENAkjqs6QfNfybJ9iRbk/xpkqPHtNuQ\nZEeSR5Nc3qRPSVJ7ms4E7gBOr6r1wE7gv81ukGQFcDXwLuB04MIkpzXsd6L6/f6kS1gQ62yXdbbL\nOpeHRiFQVX9RVf86fHgfcOKIZmcDO6tqV1XtA24ENjbpd9IOlR8K62yXdbbLOpeHNs8JfAS4fcTz\nJwCPz3i8e/icJGnCVs7XIMmdwPEznwIK+GRV3TJs80lgX1XdMOoQI56rl1GrJKllqWr2epzkYuCj\nwK9W1U9H7J8Cpqtqw/DxFUBV1VVjjmdASNIiVdWoN9zzmncmMJckG4DfA/79qAAYuh94U5K1wI+B\nDwAXjjvmy/2LSJIWr+k5gT8CjgLuTLIlyTUASV6f5FaAqtoPXMbgSqK/AW6squ0N+5UktaDxcpAk\n6dA18TuGD4UbzpK8N8n3kuxPcuYc7f4+yYNJHkjynaWscdj/Quuc6M17SdYkuSPJI0m+meTVY9rt\nH84wH0jyjSWsb87xSbIqyY1Jdib5qyQnLVVti6zz4iRPDsdwS5KPTKDG65PsSfLQHG0+NxzLrUnW\nL2V9M2qYs84k5ybZO2MsPzWBGk9McleSbUkeTvKxMe0WN55VNdEv4D8AK4bbvw/8zxFtVgCPAWuB\nI4CtwGlLWOO/A04B7gLOnKPd3wFrJjiW89Y56bEc1nAV8HvD7cuB3x/T7p8mMIbzjg9wKXDNcPu3\nGCxxLsc6LwY+t9S1zarhHcB64KEx+88Dbhtuvw24b5nWeS6wacJj+Tpg/XD7KOCREf/mix7Pic8E\n6hC44ayqHqmqnYy+3HWmMMHZ1QLrXA43720Evjzc/jLwnjHtJnGRwELGZ2b9Xwd+bQnre9FC/x0n\neqFFVd0LPD1Hk43AV4ZtNwOvTnL8HO0PigXUCZMfyyeqautw+zlgOy+952rR4znxEJjlUL/hrIBv\nJrk/yW9PupgxlsNYvraq9sDgBxt4zZh2q5N8J8m3kyxVUC1kfA60qcGFD3uTHLs05b20hqFx/46/\nOVwWuCnJqDdYkzb77/FDluf/bYCp4dLkbUnWTbKQJCczmLlsnrVr0ePZ6BLRhToUbjhbSI0L8Paq\neiLJaxhcMbV9+A5jOdW5JDfvzVHnYtZSTxqO5xuBu5I8VFXfb7POERYyPrPbZESbg20hdW4Cbqiq\nfUkuYTB7mcSsZS6Hys2k3wXWVtVPkpwHfAM4dRKFJDmKwQz048MZwb/ZPeJb5hzPJQmBqvr1ufYP\nbzh7N/CrY5rsBmaefDsR+FE71Q3MV+MCj/HE8M9/SPJnDKbsrYZAC3Ue9LGEuescnoA7vqr2JHkd\n8OSYY7w4nt9P0gfeAhzsEFjI+DwOvAH4UZJXAEdX1XxLCW2bt85ZNX2RwbmY5WY3g7F80UH5eWxq\n5ottVd2e5Jokx1bVU0tZR5KVDALgq1V184gmix7PiS8Hzbjh7PxawA1nSVYxuOFs01LVOMvIdcEk\nrxwmNEmOBP4j8L2lLGx2SWOeXw5juQn40HD7YuAlP8xJjhnWR5KfB94ObFuC2hYyPrcwqBvgfQxO\nxC+1eescBuyLNrI04zdKGP/zuAn4IBz47QJ7X1wqnICxdc5cV09yNoPL65c0AIb+BNhWVX84Zv/i\nx3OSZ7uHZ7B3AruALcOvF6+6eD1w64x2GxicDd8JXLHENb6Hwbu/5xnc9Xz77BqBNzK4QuMB4OGl\nrnGhdU56LIf9Hwv8xbCGO4Fjhs+/FfjCcPsc4KHheD4IfGgJ63vJ+ACfBn5juL0auGm4/z7g5KUe\nwwXW+T8YvBF5APhL4NQJ1HgDg3eiPwV+AHwYuAT46Iw2VzO40ulB5rj6bpJ1Av9lxlh+G3jbBGr8\nFWD/jNeZLcOfgUbj6c1iktRhE18OkiRNjiEgSR1mCEhShxkCktRhhoAkdZghIEkdZghIUocZApLU\nYf8f1BYjcGEaXZoAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc7f84ac518>"
]
},
"metadata": {},
"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 of a and b is: \", np.dot(a,b))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div align=\"right\">\n",
"<a href=\"#5\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n",
"\n",
"</div>\n",
"<div id=\"5\" class=\"collapse\">\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",
"```\n",
"</div>"
]
},
{
"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": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The dot product of a and b is: 1\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc7f83d5940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a = np.array([1,1])\n",
"b = np.array([0,1])\n",
"Plotvec2(a,b)\n",
"print(\"The dot product of a and b is: \", np.dot(a,b))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div align=\"right\">\n",
"<a href=\"#6\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n",
"\n",
"</div>\n",
"<div id=\"6\" class=\"collapse\">\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",
"```\n",
"</div>"
]
},
{
"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": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"A: 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": 49,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1, 2, 3, -1])"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"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": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([2, 3, 4, 0])"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"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": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"3.141592653589793"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.pi"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can create the following numpy array in Radians:"
]
},
{
"cell_type": "code",
"execution_count": 52,
"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": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([0.0000000e+00, 1.0000000e+00, 1.2246468e-16])"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"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 \"linspace\". Linspace 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": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-2., -1., 0., 1., 2.])"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"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": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([-2. , -1.5, -1. , -0.5, 0. , 0.5, 1. , 1.5, 2. ])"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"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": 59,
"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": 60,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"y=np.sin(x)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fc7f82d4ac8>]"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc7f840e470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x,y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Quiz Questions\n",
"---"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([2, 2, 2, 2, 2])"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Q1: what is the result of the following lines of code:\n",
"a=np.array([1,1,1,1,1])\n",
"b=np.array([2,2,2,2,2])\n",
"a*b"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Q2: what is the result of the following lines of code:\n",
"a=np.array([0,1])\n",
"b=np.array([1,0])\n",
"np.dot(a,b)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([11, 11, 11, 11, 11])"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Q3: Is the following operation allowed with numpy arrays\n",
"a=np.array([1,1,1,1,1])\n",
"a+10"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Enjoying Python? Think ahead about what you might want to use in the future.\n",
"If you're looking for an enterprise-ready environment to use Python on a big scale with two free Apache Spark executors, consider signing up for a free account on [Data Science Experience](http://cocl.us/NotebooksPython101bottom)"
]
},
{
"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 &copy; 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.5.2"
},
"widgets": {
"state": {},
"version": "1.1.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment