{ "cells": [ { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Introduction to Python\n", "---" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "# Why Python?" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "One of the most in-demand programming languages in the financial industry: https://news.efinancialcareers.com/uk-en/137065/the-six-hottest-programming-languages-to-know-in-banking-technology
\n", "See more details in the PDF file
\n" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "# Installing Python locally" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "The easiest way to install Jupyter notebooks is through the license-free Anaconda software available\n", "at: https://www.continuum.io/downloads (you will find versions for Windows, MAC and Linux).\n", "Once the package is installed you can easily access the Jupyter notebook by typing jupyter notebook\n", "either in the Anaconda prompt or in the OS command line. (I recommend using the Anaconda\n", "prompt specially when running in Windows, since there might be some compatibility issues).\n", "I also recommend installing the following package, since it makes very easy to download financial\n", "series data from either Yahoo Finance or Google Finance:
" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "### Installing the R kernel" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Since you will be using both Python and R , a useful feature of Jupyter notebooks is that they may\n", "also be run in R. To this end in the Anaconda prompt type the following command to install the\n", "required packages:

\n", "conda install -c r r-essentials

\n", "whenever you type jupyter notebook in the command prompt, now you should be able to run\n", "notebooks in either R or Python." ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "### Using both R and Python in the same notebook" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Sometimes it might be useful to be able to use both programming languages and be able to move\n", "back and forth between them. In this case you will need to install (if they are already installed\n", "make sure they are updated):

\n", "conda install rpy2 (if already installed replace install by update)

\n", "conda install menuinst" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "## Introduction to IPython notebook" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "There are two fundamental different types of cells: markdown cells, like this one, including text and \\LaTeX formulae, such as \n", "$$\n", "\\frac{1}{2\\pi}\\int_{\\mathbb{R}}\\exp\\left(-\\frac{x^2}{2}\\right)dx = \\cdots\n", "$$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello MSc Math Finance. This is a code cell.\n" ] } ], "source": [ "print(\"Hello MSc Math Finance.\", \"This is a code cell.\")" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "A session, or a kernel, manages all the code, variables, names,...., within a notebook. The kernel can be restarted anytime if needed." ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "# Python" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "The main documentation for Python is available at https://docs.python.org/3.5/reference/.\n", "A fundamental thing to bear in mind is indentation!!! " ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "## Basic operations" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] } ], "source": [ "a=5\n", "b=7\n", "c=2.\n", "print(type(a))\n", "print(type(c))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "12\n", "78125\n", "\n", "\n" ] } ], "source": [ "print(a+b)\n", "print(a**b)\n", "print(type(a+b))\n", "print(type(a*c))" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "WATCH OUT: ^ is not a power operator but the XOR operator." ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Naming variables:
\n", "- Start with lowercase letter or underscore
\n", "- CamelCase
\n", "- variables written in upper case are usually constants
\n", "- one cannot use a keyword (reserved word) as a variable name (print, for, end, while,...)." ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "As exciting as the above sum is, we might be interested in going a tad further into mathematical computations. \n", "For this, we shall need the NumPy package, which can be imported as follows (as any other package):" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "source": [ "import numpy as np\n", "import scipy as sp" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "The numpy library has pretty much all the functions you would expect in Matlab or R.\n", "Check for example http://mathesaurus.sourceforge.net/matlab-numpy.html for the correspondence between MATLAB and Python" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "0\n", "Note that the first element is index by 0\n", "190\n" ] } ], "source": [ "rr = range(20)\n", "aa=np.array(rr)\n", "print(type(rr))\n", "print(type(aa))\n", "print(aa[0])\n", "print(\"Note that the first element is index by 0\")\n", "print(np.sum(aa))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] } ], "source": [ "## Note that the variables a and rr are not the same:\n", "print(type(aa))\n", "print(type(rr))" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "## Variable types" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Simple variables" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \n", "0.5 0.5\n" ] } ], "source": [ "a = 2\n", "b = 2.\n", "print(type(a), type(b))\n", "print(1/a, 1/b)" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Arrays" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "A one-dimensional array is a sequence of values on which we can do mathematical operations." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "aa: [0 1 2 3 4] \n", "bb: [0 1 2 3] \n" ] } ], "source": [ "aa = np.array([0,1,2,3,4])\n", "bb = np.arange(0, 4, 1) ## the last input indicates the step size, by default equal to 1\n", "\n", "print(\"aa:\", aa, type(aa))\n", "print(\"bb:\", bb, type(bb))" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "We shall for now only consider arrays, and keep the other types for later. \n", "To call elements from an array:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Element with index 0: 0\n", "All elements between two indices: [0 1 2] or [0 1 2]\n", "All elements between two indices, with a step: [0 2]\n", "Last element, backward counting: 4\n" ] } ], "source": [ "print(\"Element with index 0:\", aa[0])\n", "print(\"All elements between two indices:\", aa[0:3], \" or \", aa[:3])\n", "print(\"All elements between two indices, with a step:\", aa[0:3:2])\n", "print(\"Last element, backward counting:\", aa[-1])" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Arrays support direct mathematical operations:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4]\n", "[0. 2. 4. 6. 8.]\n", "[ 0 1 4 9 16]\n" ] } ], "source": [ "print(aa)\n", "print(2.*aa)\n", "print(aa**2)" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### List and tuples" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Next to arrays, one can define other data types to store sequences:
\n", "- list, entered between square brackets;
\n", "- tuple, entered with parentheses.
\n", "The main difference is that one can change the values in a list creation after you create them, whereas this is not possible with a tuple. \n", "Mathematical operations are not allowed with either lists or tuples. " ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "myList [1, 2, 3] \n", "myTuple (1, 2, 3) \n", "Modified list [7, 2, 3]\n" ] }, { "ename": "TypeError", "evalue": "'tuple' object does not support item assignment", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mmyList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m7\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Modified list'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmyList\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 7\u001b[1;33m \u001b[0mmyTuple\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m7\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 8\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Lists and tuples do not support mathematical operations:\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mmyList\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mTypeError\u001b[0m: 'tuple' object does not support item assignment" ] } ], "source": [ "myList = [1, 2, 3]\n", "print('myList', myList, type(myList))\n", "myTuple = (1, 2, 3)\n", "print('myTuple', myTuple, type(myTuple))\n", "myList[0] = 7 \n", "print('Modified list', myList)\n", "myTuple[0] = 7\n", "print(\"Lists and tuples do not support mathematical operations:\", 2*myList)" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Why then do we care about lists and tuples? In fact, the advantage of these two objects is their versatility, as their elements do not need to be numbers, but can be anything, such as functions, objects, other sequences, html links,..." ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Multi-dimensional arrays and reshaping" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Arrays have arbitrary dimension (up to computer memory)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Multidimensional arrays of ones:\n", "[[1. 1. 1. 1.]\n", " [1. 1. 1. 1.]\n", " [1. 1. 1. 1.]]\n", "Multidimensional arrays of zeros:\n", "[[0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0.]]\n" ] } ], "source": [ "xx = np.ones((3, 4))\n", "print(\"Multidimensional arrays of ones:\")\n", "print(xx)\n", "xx = np.zeros((2, 6))\n", "print(\"Multidimensional arrays of zeros:\")\n", "print(xx)" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "They can also be declared directly as" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 7 8 2]\n", " [2 4 2 2]\n", " [9 1 5 3]]\n", "Initial dimension: (3, 4)\n", "----------------------\n", "Reshaping in (2, 6):\n", "[[1 7 8 2 2 4]\n", " [2 2 9 1 5 3]]\n", "New dimension: (2, 6)\n", "----------------------\n", "Reshaping in (1, 12):\n", "[[1 7 8 2 2 4 2 2 9 1 5 3]]\n", "New dimension: (1, 12)\n" ] } ], "source": [ "xx = np.array([[1, 7, 8, 2],\n", " [2, 4, 2, 2],\n", " [9, 1, 5, 3]])\n", "print(xx)\n", "print(\"Initial dimension: \", xx.shape)\n", "print(\"----------------------\")\n", "print(\"Reshaping in (2, 6):\")\n", "xx = np.reshape(xx, (2, 6))\n", "print(xx)\n", "print(\"New dimension: \", xx.shape)\n", "print(\"----------------------\")\n", "print(\"Reshaping in (1, 12):\")\n", "xx = np.reshape(xx, (1, 12))\n", "print(xx)\n", "print(\"New dimension: \", xx.shape)\n" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Multi-dimensional arrays are not matrices." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "xx: [ 4 8 12 16]\n", "yy: [1 3 5 7]\n", "Product: [ 4 24 60 112]\n", "Division: [4. 2.66666667 2.4 2.28571429]\n" ] } ], "source": [ "xx = np.arange(4, 20, 4)\n", "yy= np.arange(1, 8, 2)\n", "print(\"xx: \", xx)\n", "print(\"yy: \", yy)\n", "print('Product:', xx * yy)\n", "print('Division:', xx / yy)" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Exercise: Consider the following array:\n", "$$\n", "x = \\text{np.array}([[2, 2, 4, 4], [6, 4, 8, 1], [9, 4, 1, 2], [7, 5, 2, 8]]).\n", "$$\n", "Write Python code to output the following:\n", "- the second row of xx;
\n", "- the first column of xx;
\n", "- the last two rows of xx;
\n", "- the four values in the upper left-hand corner of x;
\n", "- the four values at the center of x;
" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Visualising arrays" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pylab as plt" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "xx = np.array([[1, 7, 8, 2],\n", " [2, 4, 2, 2],\n", " [9, 1, 5, 3]])\n", "plt.matshow(xx)\n", "plt.colorbar(ticks=[2, 5, 8], shrink=0.8);" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "A version with a condition" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "yy = xx<4\n", "plt.matshow(yy);" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "A more interesting array" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dimension: (100, 100)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n = 100\n", "xx = np.random.normal(0., 1., (n, n))\n", "print(\"Dimension: \", xx.shape)\n", "#myTicks = np.linspace(0, 1, 11)\n", "myTicks = np.linspace(-10., 10., 21)\n", "plt.figure(figsize=(10,5))\n", "plt.matshow(xx, fignum=1)\n", "plt.colorbar(ticks=myTicks, shrink=1);" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "source": [ "def isPrime(num):\n", " isPrime = 0\n", " if num > 1:\n", " # check for factors\n", " for i in range(2,num):\n", " if (num % i) == 0:break\n", " else:\n", " isPrime = 1\n", " \n", " else:\n", " isPrime = 0\n", " return isPrime" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n = 2\n", "N = 10**(2*n)+1\n", "Nn = 10**n\n", "xx = np.arange(1, N)\n", "yy = np.array([isPrime(x) for x in xx])\n", "yy = np.reshape(yy, (Nn, Nn))\n", "#plt.figure(figsize=(20,10))\n", "plt.matshow(yy, cmap='hot');\n", "plt.title(\"Prime number distribution\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "## Loops" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "The for loop is one of the fundamental operation in programming. In the following example, the loop is over an array." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loop number 0\n", "Loop number 1\n", "Loop number 2\n", "Loop number 3\n", "Loop number 4\n", "Loop number 5\n", "Loop number 6\n", "Loop number 7\n", "Loop number 8\n", "Loop number 9\n", "-------\n", "Note that it always starts at 0!!!\n" ] } ], "source": [ "for i in range(10): \n", " print(\"Loop number\", i)\n", "print(\"-------\")\n", "print(\"Note that it always starts at 0!!!\")" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "But a loop can be over all (or some) elements of a list:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Homer : 48.15618149806833\n", "Marge : 41.11694476235276\n", "Bart : 73.66102691893192\n", "Lisa : 83.53524307063222\n", "Maggie : 78.72656785119409\n", "GrandPa : 70.88168768845406\n", "Burns : 93.8469694689137\n", "Ned : 64.3803337179365\n", "Santa : 58.918869351578806\n", "Waylon : 47.63847437404682\n", "Barney : 45.68254906641085\n", "Kent : 49.76578342201985\n", "Rodd : 86.31163917897027\n", "Todd : 88.95572978735865\n", "Apu : 42.05503018774323\n", "Seymour : 48.10172727078209\n", "Wiggum : 77.5394266571744\n", "Willie : 53.57681836425695\n", "Hans : 61.663208384025225\n", "Moe : 72.98657326666894\n" ] } ], "source": [ "n = 20\n", "names = [\"Homer\", \"Marge\", \"Bart\", \"Lisa\", \"Maggie\", \"GrandPa\", \"Burns\", \"Ned\", \"Santa\", \"Waylon\", \"Barney\", \"Kent\", \"Rodd\", \"Todd\", \"Apu\", \"Seymour\", \"Wiggum\", \"Willie\", \"Hans\", \"Moe\"]\n", "studentMarks = [[names[i], 30.+70.*np.random.rand()] for i in range(n)]\n", "print(type(names))\n", "print(type(studentMarks))\n", "\n", "for s in studentMarks:\n", " print(s[0], \": \", s[1])" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Computation time?" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "224 µs ± 3.61 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n", "29.6 µs ± 816 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)\n", "3.53 ms ± 492 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" ] } ], "source": [ "import time\n", "def f(xx):\n", " res = 0\n", " for x in xx:\n", " res = res+x\n", " return res\n", "\n", "%timeit xx = np.arange(100000)\n", "%timeit np.sum(xx)\n", "%timeit f(xx)" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "## The if/else statement" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Homer : 48.15618149806833 True\n", "Marge : 41.11694476235276 True\n", "Bart : 73.66102691893192 False\n", "Lisa : 83.53524307063222 False\n", "Maggie : 78.72656785119409 False\n", "GrandPa : 70.88168768845406 False\n", "Burns : 93.8469694689137 False\n", "Ned : 64.3803337179365 False\n", "Santa : 58.918869351578806 False\n", "Waylon : 47.63847437404682 True\n", "Barney : 45.68254906641085 True\n", "Kent : 49.76578342201985 True\n", "Rodd : 86.31163917897027 False\n", "Todd : 88.95572978735865 False\n", "Apu : 42.05503018774323 True\n", "Seymour : 48.10172727078209 True\n", "Wiggum : 77.5394266571744 False\n", "Willie : 53.57681836425695 False\n", "Hans : 61.663208384025225 False\n", "Moe : 72.98657326666894 False\n" ] } ], "source": [ "fails = []\n", "for s in studentMarks:\n", " if s[1]<50:\n", " fails.append(1)\n", " else:\n", " fails.append(0)\n", " print(s[0], \": \", s[1], True==fails[-1])" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-----------------------\n", "Number of Fails: 7\n", "Number of Pass: 13\n", "Highest mark: 93.8469694689137 achieved by Burns\n", "Lowest mark: 41.11694476235276 achieved by Marge\n", "Average mark: 64.37503921437597\n", "Median mark: 63.02177105098086\n" ] } ], "source": [ "print(\"-----------------------\")\n", "print(\"Number of Fails: \", np.sum(fails))\n", "print(\"Number of Pass: \", len(fails) - np.sum(fails))\n", "print(\"Highest mark: \", np.max([s[1] for s in studentMarks]), \"achieved by\", names[np.argmax([s[1] for s in studentMarks])])\n", "print(\"Lowest mark: \", np.min([s[1] for s in studentMarks]), \"achieved by\", names[np.argmin([s[1] for s in studentMarks])])\n", "print(\"Average mark: \", np.mean([s[1] for s in studentMarks]))\n", "print(\"Median mark: \", np.median([s[1] for s in studentMarks]))" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "## Defining functions" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Let us check the following formula, valid for any integer $n$:\n", "$$\n", "\\sum_{i=1}^{n} i = \\frac{n(n+1)}{2}\n", "$$" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "source": [ "def sumInteg(n):\n", " res = 0\n", " for i in range(1, n): \n", " res+=i\n", " return res\n", "\n", "def sumInteg_Formula(n):\n", " return n*(n+1)/2." ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sum: 45\n", "Theoretical: 55.0\n", "??????????????????\n" ] } ], "source": [ "n = 10\n", "print(\"Sum:\", sumInteg(n))\n", "print(\"Theoretical:\", sumInteg_Formula(n))\n", "print(\"??????????????????\")" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "A function can of course take several arguments, and can also take keyword arguments.\n", "While the former are compulsory, the latter do not need to be entered when calling the function." ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n", "3\n" ] } ], "source": [ "def myFunction(x, a=1, b=0):\n", " return a*x+b\n", "#\n", "print(myFunction(1))\n", "print(myFunction(1, 2))\n", "print(myFunction(1, 1, 2))\n", "print(myFunction(1,b=2))" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### A financial example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A (European) Call option gives the holder (the buyer) the right, but not the obligation to buy, at maturity $T$ of the option a given underlying share for a fixed price $K$, determined in the contract. It is easy to see that its payoff at maturity is equal to $\\max(S_T - K, 0)$, where $S_T$ denote the value (unknown at inception of the contract, but known at maturity) of the underlying at time $T$. The price of such a contract, at inception (time zero) is given, by no-arbitrage theory, by\n", "$$\n", "\\textrm{Price at time 0} = \\mathbb{E}\\left[\\max(S_T-K, 0)\\right].\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "The Black–Scholes model is one of the cornerstone of mathematical finance.\n", "The value of a European Call option for a non-dividend-paying stock $(S_t)_{t\\geq 0}$ in this model is given, at time $t\\in [0,T]$, by\n", "$$\n", "C(S_t, t, K, T) := \\mathrm{e}^{-r(T-t)}\\mathbb{E}\\left[\\max(S_{T} - K, 0)\\right]\n", " = S_t\\left(\\mathcal{N}(d_{+}) - \\mathrm{e}^{k}\\mathcal{N}(d_{-})\\right),\n", "$$\n", "where\n", "$$\n", "d_{\\pm} = \\frac{-k}{\\sigma\\sqrt{T - t}} \\pm\\frac{\\sigma\\sqrt{T-t}}{2}.\n", "$$\n", "Correspondingly, the price of a corresponding put option based on put–call parity is:\n", "$$\n", "P(S_t, t, K, T) := \\mathrm{e}^{-r(T-t)}\\mathbb{E}\\left[\\max(K-S_{T}, 0)\\right]\n", " = S_t\\left(\\mathrm{e}^{k}\\mathcal{N}(-d_{-}) - \\mathcal{N}(-d_{+})\\right).\n", "$$\n", "For both, as :
\n", "$k := \\log\\left(\\frac{K}{S_t\\mathrm{e}^{r(T - t)}}\\right)$ is called the log-forward moneyness,
\n", "$\\mathcal{N}(\\cdot)$ is the cumulative distribution function of the standard normal distribution,
\n", "$T - t$ is the time to maturity,
\n", "$S_t$ is the spot price of the underlying asset,
\n", "$K$ is the strike price,
\n", "$r$ is the risk free rate (annual rate, expressed in terms of continuous compounding),
\n", "$\\sigma$ is the volatility of returns of the underlying asset.\n" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Exercise: By checking the payoffs at maturity, and using the fact that $\\mathbb{E}_{t}(S_T) = S_t \\mathrm{e}^{r(T-t)}$, \n", "show that the following Put-Call parity formula always holds:\n", "$$\n", "C(S_t,t) - P(S_t,t) = S_t -K\\mathrm{e}^{-r(T-t)}.\n", "$$" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "source": [ "from scipy.stats import norm\n", "\n", "def BSCall(S, K, r, sigma, t, T):\n", " '''\n", " #Inputs:\n", " S: initial stock price\n", " K: strike\n", " r: risk-free rate\n", " sigma: instantaneous volatility\n", " T: time to maturity\n", " #Output:\n", " Black-Scholes Call price\n", " '''\n", " tau = T-t\n", " sigmtau = sigma*np.sqrt(T)\n", " k = np.log(K/S) - r*tau\n", " dp = -k/sigmtau + 0.5*sigmtau\n", " dm = dp - sigmtau\n", " return S*(norm.cdf(dp) - np.exp(k)*norm.cdf(dm))\n", "\n", "def BSPut(S, K, r, sigma, t, T):\n", " '''\n", " #Inputs: same as black_scholes_call\n", " #Output:\n", " Black-Scholes Put price\n", " '''\n", " return BSCall(S,K,r,sigma,t,T) - S + K*np.exp(-r*(T-t))" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Black-Scholes price of the Call: 9.925053717274446\n" ] } ], "source": [ "S, K, r, sigma, t, T = 100., 100., 0.05, 0.2, 0.2, 1.\n", "print(\"Black-Scholes price of the Call:\", BSCall(S,K,r,sigma,t,T))" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "zanadu": { "code_type": "", "is_hidden": true } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "TT = np.linspace(0.1,5,20)\n", "strikes = np.linspace(40., 180, 50)\n", "fig, axs = plt.subplots(ncols=2, figsize=(12, 4))\n", "plt.subplot(1,2,1)\n", "plt.plot(strikes,BSCall(S,strikes,r,sigma,t,T),label='Call prices')\n", "plt.plot(strikes,BSPut(S,strikes,r,sigma,t,T),label='Put prices')\n", "plt.legend(loc='upper left')\n", "plt.title('Black-Scholes Option prices',y=1.05,fontsize=12)\n", "plt.xlabel('Strike')\n", "plt.ylabel('Price')\n", "plt.subplot(1,2,2)\n", "plt.plot(TT,BSCall(S,K,r,sigma,t,TT)-BSPut(S,K,r,sigma,t,TT), 'x', label='Put prices')\n", "plt.plot(TT,S-K*np.exp(-r*(TT-t)), 'k-', label='Put prices')\n", "plt.legend(loc='upper left')\n", "plt.title('Put-Call parity consistency',y=1.05,fontsize=12)\n", "plt.xlabel('Maturity')\n", "plt.ylabel('Difference')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "zanadu": { "code_type": "", "is_hidden": true } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "TT = np.linspace(0.01,10.,10)\n", "strikes = np.linspace(40., 180, 50)\n", "fig, axs = plt.subplots(ncols=1,figsize=(12, 4))\n", "for T in TT:\n", " plt.plot(strikes,BSCall(S,strikes,r,sigma,t,T),label='T = %.2f' %T)\n", "\n", "plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05),fancybox=True, shadow=True, ncol=5)\n", "plt.title('Black-Scholes Call Option for different maturities',y=1.05,fontsize=12)\n", "plt.xlabel('Strike')\n", "plt.ylabel('Price')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Vectorisation of a function" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Let us now try to apply a function on a sequence of numbers." ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "source": [ "def f(x):\n", " if x < 0:\n", " f = np.cos(x)\n", " else:\n", " f = np.exp(-x)\n", " return f" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.45590535 0.86154946 0.06076985 0.66292377 0.85412778 0.14046621\n", " 0.70651717 0.1392742 0.8008963 0.28142329]\n", "[0.89786279 0.65126244 0.99815408 0.78819625 0.65687641 0.99015083\n", " 0.7606275 0.99031702 0.69606346 0.96066113]\n" ] } ], "source": [ "xx = np.random.rand(10)\n", "print(xx)\n", "print(np.cos(xx))" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "ename": "ValueError", "evalue": "The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mxx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32m\u001b[0m in \u001b[0;36mf\u001b[1;34m(x)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;32mif\u001b[0m \u001b[0mx\u001b[0m \u001b[1;33m<\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcos\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()" ] } ], "source": [ "print(f(xx))" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fvec = np.vectorize(f)\n", "xx = np.random.rand(100)\n", "yy = fvec(xx)\n", "plt.plot(xx, yy, 'o')\n", "plt.plot(xx, np.cos(xx), 'o')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Vectorisation of a function works by default for Python-defined functions, but not for user-defined ones." ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Using a function as the argument of another function" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "source": [ "def newFunc(g, x):\n", " return g(x) ** 2" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Calling a numpy function: 0.17317818956819406\n", "Calling a function defined previously: 0.018315638888734182\n" ] } ], "source": [ "print(\"Calling a numpy function: \", newFunc(np.cos, 2))\n", "print(\"Calling a function defined previously: \", newFunc(f, 2))" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Zeros of a function" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-1.]\n" ] } ], "source": [ "from scipy.optimize import fsolve\n", "def f(x):\n", " return x*x-1.\n", "\n", "print(fsolve(f, -1.8))" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "#### Integration" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "source": [ "from scipy.integrate import quad" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "source": [ "def f(x):\n", " return np.exp(-x)\n", "\n", "def g(x):\n", " return np.exp(-x) / x" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "We wish to integrate both functions on the interval [1, 5].\n", "First Step: always plot the functions to be studied." ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "xMin, xMax = 1., 5.\n", "xx = np.linspace(xMin, xMax, 100)\n", "plt.figure(figsize=(6,4))\n", "plt.plot(xx, [f(x) for x in xx], 'b', label='f')\n", "plt.plot(xx, [g(x) for x in xx], 'r', label='g')\n", "plt.legend(loc='best')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Numerical integration for f: (0.3611414941723568, 4.009476019776823e-15)\n", "Analytic integration for f: 0.36114149417235686\n", "numerical integration for g: (0.21823563880424607, 5.999095875237938e-09)\n", "wolframalpha result: for g 0.218236\n" ] } ], "source": [ "print('Numerical integration for f:', quad(f, 1., 5.))\n", "print('Analytic integration for f:', -np.exp(-5.) + np.exp(-1.))\n", "\n", "print('numerical integration for g:', quad(g, 1., 5.))\n", "print('wolframalpha result: for g', 0.218236)" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "# Plotting in Python" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Fundamentally, Python plots arrays." ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "Let us assume that $f\\in C(\\mathbb{R})$, such that $f:x\\mapsto x^2$. The following command shows the corresponding plot" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "a = np.arange(5)\n", "fig,ax = plt.subplots(ncols=1, figsize=(6, 4))\n", "plt.plot(a,a*a,label='My function')\n", "plt.legend(loc='best')\n", "plt.title('Plot of the function $f(x):=x^2$',y=1.02,fontsize=14)\n", "plt.xlabel('Maturity')\n", "plt.ylabel('Price')\n", "plt.show()\n", "\n", "#Saving results in image files\n", "#fig.savefig('my_graph.eps', format='eps', dpi=1000)\n", "#fig.savefig('my_graph.png', format='png',dpi=400)" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "We shall later introduce Seaborn, a more advanced package for plotting." ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "# Treating Bugs" ] }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": [ "The best way to learn how to resolve errors is to practice. There are ways to handle bugs, exceptions and errors, though, but we shall not see them here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For more involved Python coding, see also https://www.spyder-ide.org/" ] }, { "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.7.3" }, "zanadu": { "authors": [ "Antoine Jacquier" ], "bibliography_data": {}, "category": "1", "clearance": "Internal", "group_name": "ImperialMScMathFin", "md5": "2121bebe96f4e62db725bd633b355c4a", "notebook_id": "B20B0CCC-FB14-4BC5-9BDB-82C8E4FD69DF", "python_name": null, "reviewer_id": "B81D4EC4-269D-42B3-9975-85BC42EE5712", "status": "Approved" } }, "nbformat": 4, "nbformat_minor": 1 }