Skip to content

Instantly share code, notes, and snippets.

@yhilpisch
Last active October 3, 2017 14:57
Show Gist options
  • Save yhilpisch/64aeedbeb334c89aa05529a79881ceeb to your computer and use it in GitHub Desktop.
Save yhilpisch/64aeedbeb334c89aa05529a79881ceeb to your computer and use it in GitHub Desktop.
Gist with additional files from For Python Quants Bootcamp, May 2017, New York City
3 + 4
3 * 4
3 / 4
type(3)
type(4)
3 ** 4
sqrt(3)
3 ** 0.5
import math
math.sqrt(3)
print("Python.")
a = 3
b = 0.75
c = 'Python.'
d = "He said:'I am late.'"
d
d = "He said:"I am late.""
d = 'He said:"I am late."'
d
a
print(a)
a
b
a * b
a ** b
d
2 * d
d + d
d + d * 2
d / d
d / 2
d
d[0]
d[1]
len(d)
d[20]
d[19]
d[-1]
d[-2]
d[-20]
d[-21]
d[2]
d[:2]
d[:2] + d[2:]
d[2:]
d[2:7]
d[2:7:2]
d[::2]
d[::-1]
range(10)
type(range(10))
for i in range(10):
print('For Python Quants')
for i in range(10):
print(i)
for i in range(10):
print(i ** 2)
%magic
%lsmagic
%hist
%hist?
%history?
len?
for i in range(10):
print(d[i])
for c in d:
print(c)
for _ in d:
print(_)
c
for _ in d:
print(_, end='')
for _ in d:
print(_, end='|')
for x in range(10):
print(x)
for x in range(10):
print(x ** 2)
l = [x for x in range(10)]
l
l = [x ** 2 for x in range(10)]
l
type(l)
l2 = [x ** 2 for x in range(10) if x > 2]
l2
l2 = [x ** 2 for x in range(10) if (x > 2) and (x < 8)]
l2
l[0]
l[:5]
l[5:]
l[::-1]
l = [x ** 2 for x in range(10)]
10 % 2
11 % 2
l = [x ** 2 for x in range(10) if x % 2 == 0]
l
l = [x for x in range(20) if x % 2 == 0]
l
for x in range(20):
for y in range(10, 50):
if x % 2 == 0:
# then do something
pass
def f(x):
return x ** 2
f
f(10)
f(10.5)
l = [f(x) for x in range(20) if x % 2 == 0]
l
l3 = [5, 'fpq', a, l]
l3
l3.append('this is new')
l3
l3.append(f)
l3
l3[-1](5)
l.append('new')
l
l3
l
l3
def is_prime(I):
for i in range(2, I):
if I % i == 0:
return False
return True
is_prime(8)
is_prime(10)
is_prime(11)
is_prime(13)
l = [is_prime(x) for x in range(2, 101)]
l
l = [is_prime(x) for x in range(2, 20)]
l
class MyClass(object):
pass
class my_class(object):
pass
int(Ture)
int(True)
int(False)
while True:
print('hi')
while 2:
print('hi')
2 == 2
True == 2
True == 1
def is_prime_2(I):
for i in range(2, I ** 0.5):
if I % i == 0:
return False
return True
is_prime_2(10)
def is_prime_2(I):
for i in range(2, int(I ** 0.5)):
if I % i == 0:
return False
return True
int(2.3)
int(2.7)
def is_prime_2(I):
for i in range(2, int(I ** 0.5) + 1):
if I % i == 0:
return False
return True
is_prime_2(10)
is_prime_2(11)
%ed
p1 = int(1e8 + 1)
p2 = int(1e8 + 3)
p1
p2
is_prime(p1)
is_prime(p2)
p2 = 2** 17 − 1
p2 = 2 ** 17 - 1
p2
p2 = 2 ** 31 - 1
p2
%time is_prime(p1)
%time is_prime(p2)
p2 = 2 ** 17 - 1
%time is_prime(p2)
%time is_prime_2(p2)
%time is_prime_2(int(2**31 - 1))
def is_prime_3(I):
if I % 2 == 0:
return False
for i in range(3, int(I ** 0.5) + 1, 2):
if I % i == 0:
return False
return True
%time is_prime_3(int(2**31 - 1))
%ed is_prime_3
%ed -p
from math import sqrt
sqrt(4)
ls
cd ..
ls
cd bc
!mkdir bc
cd bc/
%hist -f bc_day_1_section_02
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"http://hilpisch.com/tpq_logo.png\" width=\"350px\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# For Python Quants Bootcamp"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Day 2**\n",
"\n",
"Yves Hilpisch\n",
"\n",
"The Python Quants GmbH"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Science Case"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'/Users/yhilpisch/Dropbox/Program/live/bc'"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pwd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"filename = '../data/Titanic.csv'"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# !cat $filename"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pure Python"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"data = []\n",
"with open(filename) as f:\n",
" for line in f:\n",
" # print(line)\n",
" data.append(line)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['\"\",\"Class\",\"Sex\",\"Age\",\"Survived\",\"Freq\"\\n',\n",
" '\"1\",\"1st\",\"Male\",\"Child\",\"No\",0\\n',\n",
" '\"2\",\"2nd\",\"Male\",\"Child\",\"No\",0\\n',\n",
" '\"3\",\"3rd\",\"Male\",\"Child\",\"No\",35\\n',\n",
" '\"4\",\"Crew\",\"Male\",\"Child\",\"No\",0\\n']"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[:5]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"s = data[3]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\"3\",\"3rd\",\"Male\",\"Child\",\"No\",35\\n'"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\"3\",\"3RD\",\"MALE\",\"CHILD\",\"NO\",35\\n'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s.upper()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'3,3rd,Male,Child,No,35\\n'"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s.replace('\"', '')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'3,3rd,Male,Child,No,35'"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s.replace('\"', '')[:-1]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sr = s.replace('\"', '')[:-1]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'3,3rd,Male,Child,No,35'"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sr"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['3', '3rd', 'Male', 'Child', 'No', '35']"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sr.split(',')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"titanic = [s.replace('\"', '')[:-1].split(',') for s in data[1:]]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[['1', '1st', 'Male', 'Child', 'No', '0'],\n",
" ['2', '2nd', 'Male', 'Child', 'No', '0'],\n",
" ['3', '3rd', 'Male', 'Child', 'No', '35'],\n",
" ['4', 'Crew', 'Male', 'Child', 'No', '0'],\n",
" ['5', '1st', 'Female', 'Child', 'No', '0']]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"titanic[:5]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum([1, 2, 3, 4])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 0, 35, 0, 0]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[int(row[-1]) for row in titanic][:5]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2201"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum([int(row[-1]) for row in titanic])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"470"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum([int(row[-1]) for row in titanic if row[2] == 'Female'])"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1731"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum([int(row[-1]) for row in titanic if row[2] == 'Male'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## csv module"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import csv"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"csv_reader = csv.reader(open(filename))\n",
"raw = []\n",
"for line in csv_reader:\n",
" # print(line)\n",
" raw.append(tuple(line))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('', 'Class', 'Sex', 'Age', 'Survived', 'Freq'),\n",
" ('1', '1st', 'Male', 'Child', 'No', '0'),\n",
" ('2', '2nd', 'Male', 'Child', 'No', '0'),\n",
" ('3', '3rd', 'Male', 'Child', 'No', '35'),\n",
" ('4', 'Crew', 'Male', 'Child', 'No', '0')]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw[:5]"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"csv_dict = csv.DictReader(open(filename))\n",
"raw_dict = [line for line in csv_dict]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[OrderedDict([('', '1'),\n",
" ('Class', '1st'),\n",
" ('Sex', 'Male'),\n",
" ('Age', 'Child'),\n",
" ('Survived', 'No'),\n",
" ('Freq', '0')]),\n",
" OrderedDict([('', '2'),\n",
" ('Class', '2nd'),\n",
" ('Sex', 'Male'),\n",
" ('Age', 'Child'),\n",
" ('Survived', 'No'),\n",
" ('Freq', '0')]),\n",
" OrderedDict([('', '3'),\n",
" ('Class', '3rd'),\n",
" ('Sex', 'Male'),\n",
" ('Age', 'Child'),\n",
" ('Survived', 'No'),\n",
" ('Freq', '35')])]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_dict[:3]"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2201"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum([int(row['Freq']) for row in raw_dict])"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"706"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum([int(row['Freq']) for row in raw_dict\n",
" if row['Class'] == '3rd'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## SQLite3"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import sqlite3 as sq3"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"con = sq3.connect('Titanic.sql')"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"('4', 'Crew', 'Male', 'Child', 'No', '0')"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"query = '''\n",
"CREATE TABLE titanic (id int, class str, sex str, age str,\n",
"survived str, freq int)\n",
"'''\n",
"# con.execute(query)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"q = con.execute"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('table',\n",
" 'titanic',\n",
" 'titanic',\n",
" 2,\n",
" 'CREATE TABLE titanic (id int, class str, sex str, age str,\\nsurvived str, freq int)')]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q('SELECT * FROM sqlite_master').fetchall()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q('SELECT * FROM titanic').fetchall()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<sqlite3.Cursor at 0x1102a3960>"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"con.executemany('INSERT INTO titanic VALUES (?, ?, ?, ?, ?, ?)',\n",
" raw[1:])"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(1, '1st', 'Male', 'Child', 'No', 0),\n",
" (2, '2nd', 'Male', 'Child', 'No', 0),\n",
" (3, '3rd', 'Male', 'Child', 'No', 35),\n",
" (4, 'Crew', 'Male', 'Child', 'No', 0),\n",
" (5, '1st', 'Female', 'Child', 'No', 0),\n",
" (6, '2nd', 'Female', 'Child', 'No', 0)]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q('SELECT * FROM titanic').fetchmany(6)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(17, '1st', 'Male', 'Child', 'Yes', 5),\n",
" (18, '2nd', 'Male', 'Child', 'Yes', 11),\n",
" (19, '3rd', 'Male', 'Child', 'Yes', 13),\n",
" (20, 'Crew', 'Male', 'Child', 'Yes', 0),\n",
" (21, '1st', 'Female', 'Child', 'Yes', 1),\n",
" (22, '2nd', 'Female', 'Child', 'Yes', 13),\n",
" (23, '3rd', 'Female', 'Child', 'Yes', 14),\n",
" (24, 'Crew', 'Female', 'Child', 'Yes', 0),\n",
" (25, '1st', 'Male', 'Adult', 'Yes', 57),\n",
" (26, '2nd', 'Male', 'Adult', 'Yes', 14),\n",
" (27, '3rd', 'Male', 'Adult', 'Yes', 75),\n",
" (28, 'Crew', 'Male', 'Adult', 'Yes', 192),\n",
" (29, '1st', 'Female', 'Adult', 'Yes', 140),\n",
" (30, '2nd', 'Female', 'Adult', 'Yes', 80),\n",
" (31, '3rd', 'Female', 'Adult', 'Yes', 76),\n",
" (32, 'Crew', 'Female', 'Adult', 'Yes', 20)]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q('SELECT * FROM titanic WHERE survived == \"Yes\"').fetchall()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(711,)]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q('SELECT Sum(freq) FROM titanic WHERE survived == \"Yes\"').fetchall()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(1490,)]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q('SELECT Sum(freq) FROM titanic WHERE survived == \"No\"').fetchall()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## NumPy"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 36.4 ms, sys: 21.3 ms, total: 57.8 ms\n",
"Wall time: 81.5 ms\n"
]
}
],
"source": [
"%time l = list(range(1000000))"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"l[100:110]"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 17 ms, sys: 566 µs, total: 17.5 ms\n",
"Wall time: 18.8 ms\n"
]
},
{
"data": {
"text/plain": [
"499999500000"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time sum(l)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 3.38 ms, sys: 4.96 ms, total: 8.34 ms\n",
"Wall time: 8.03 ms\n"
]
}
],
"source": [
"%time a = np.arange(1000000)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.88 ms, sys: 649 µs, total: 2.53 ms\n",
"Wall time: 1.62 ms\n"
]
},
{
"data": {
"text/plain": [
"499999500000"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time np.sum(a)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import math"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 277 ms, sys: 30.9 ms, total: 308 ms\n",
"Wall time: 325 ms\n"
]
},
{
"data": {
"text/plain": [
"666666166.4588418"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time sum([math.sqrt(x) for x in l])"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 1. , 1.41, 1.73, 2. , 2.24, 2.45, 2.65, 2.83, 3. ])"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array = np.arange(10)\n",
"np.sqrt(array).round(2)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 8.66 ms, sys: 7.1 ms, total: 15.8 ms\n",
"Wall time: 32.8 ms\n"
]
},
{
"data": {
"text/plain": [
"666666166.45882225"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time np.sum(np.sqrt(a))"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21])"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array * 2 + 3"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"45"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array.sum()"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4.5"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array.mean()"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.8722813232690143"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array.std()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array.max()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"matrix = np.arange(15).reshape((5, 3))"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0, 1, 2],\n",
" [ 3, 4, 5],\n",
" [ 6, 7, 8],\n",
" [ 9, 10, 11],\n",
" [12, 13, 14]])"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matrix"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4.3204937989385739"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matrix.std()"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 6., 7., 8.])"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matrix.mean(axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1., 4., 7., 10., 13.])"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matrix.mean(axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def f(x):\n",
" return 3 * x + 0.5"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15.5"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f(5)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.0"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f(1.5)"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.5, 3.5, 6.5],\n",
" [ 9.5, 12.5, 15.5],\n",
" [ 18.5, 21.5, 24.5],\n",
" [ 27.5, 30.5, 33.5],\n",
" [ 36.5, 39.5, 42.5]])"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f(matrix)"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.4142135623730951"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"math.sqrt(2)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [],
"source": [
"# math.sqrt(array)"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 1. , 1.41421356, 1.73205081, 2. ,\n",
" 2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ])"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sqrt(array)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.4142135623730951"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sqrt(2)"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 352 ms, sys: 37 ms, total: 389 ms\n",
"Wall time: 648 ms\n"
]
},
{
"data": {
"text/plain": [
"666666166.4588418"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time sum([math.sqrt(x) for x in range(1000000)])"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.89 s, sys: 53.1 ms, total: 1.94 s\n",
"Wall time: 2.01 s\n"
]
},
{
"data": {
"text/plain": [
"666666166.4588418"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time sum([np.sqrt(x) for x in range(1000000)])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## European Option Pricing"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"rn = np.random.random((1000, 2))"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.57735175, 0.36802614],\n",
" [ 0.46654692, 0.8808001 ],\n",
" [ 0.81927475, 0.22610941],\n",
" [ 0.53926085, 0.42931492],\n",
" [ 0.12074449, 0.10924716]])"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rn[:5]"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from pylab import plt\n",
"plt.style.use('ggplot')\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [],
"source": [
"# plt.style.available"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1196cd278>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(rn[:, 0], rn[:, 1], 'b.');"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sn = np.random.standard_normal((1000, 2))"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0017712276871560278"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sn.mean()"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0126125113180307"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sn.std()"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sn -= sn.mean()"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.8421709430404008e-17"
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sn.mean()"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
"sn /= sn.std()"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.5987211554602253e-17"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sn.mean()"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sn.std()"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD8CAYAAABjAo9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztvX10HFeZJv5UV3+o25IlYXlhbBJmQezPC4owO2KQhxkv\nCXgi+3g+AKmc5JidwZtj1jvrXQiwk0TjcTQ5zmQWML+sZxLGB7IzRLGtcidzwgF/4OAkClnJM2Jw\nZMXRITAQwCG/sRL5C8nqr/r9cftW3bp9q7qqu/pT9znHJ5HUXXVvfbz3ve/7vM+rGIYBCQkJCYnm\nQajWA5CQkJCQCBbSsEtISEg0GaRhl5CQkGgySMMuISEh0WSQhl1CQkKiySANu4SEhESTQRp2CQkJ\niSaDNOwSEhISTQZp2CUkJCSaDOEanVeWu0pISEiUBqXYB2pl2PHaa6/5+nxXVxfm5uYqNJrqoVnm\nAci51CvkXOoTQcxlzZo1nj4nQzESEhISTQZp2CUkJCSaDNKwS0hISDQZpGGXkJCQaDJIwy4hISHR\nZJCGXUJCQqLJIA27RF1gaiqCAwdaMTUVqfVQJCQaHjXjsUtIUExNRbBt2yqk0woikVaMjb2Bvr50\nrYclIdGwkB67RM0xMRFDOq0gm1WQTiuYmIjVekgSEg0Nadglao4NG5YQiRhQVQORiIENG5ZqPSQJ\niYaGDMVI1Bx9fWmMjb2BiYkYNmxYkmEYCYkyUbZh1zStBcA4gFj+eEld1/eWe1yJ5YW+vrQ06BIS\nASGIUMwSgFt0XX8fgPUABjRN6w/guBISEhISJaBsj13XdQPAtfyPkfw/KcsrISEhUSMEEmPXNE0F\n8H0A3QD+Rtf1M0EcV0JCQkLCPxTDCM651jStA8A/ANit6/oM97edAHYCgK7rv5FKpXwdOxwOI5PJ\nBDXUmqFZ5gHIudQr5FzqE0HMJRqNAh4abQRq2AFA07Q/B7Cg6/qXXD5myEYbjQ85l/qEnEt9IsBG\nG0UNe9nJU03TVuc9dWiaFgewCcBsuceVkJCQkCgNQcTYfw3A3+fj7CEAuq7r3wrguBISEhISJSAI\nVsw0gPcHMBYJCQkOU1MRWbgl4Ruy8lRCok4hxdEkSoXUipGQqFNIcTSJUiENu4REnUKKo0mUChmK\nkWg4LJe4sxRHkygV0rBLNBSWW9xZiqNJlAIZipFoKMi4s4REcUjDLtFQkHFnCYnikKEYiYaCjDtL\nSBSHNOwSDQcZd5aQcIcMxUhIBISpqQgOHGjF1FSk1kORWOaQHruERABYbmwdifqG9NiXMaSHGRwk\nW0einiA99mUK6WEGA1os1dmZRSRCehtIto5ErSEN+zIF62HSn6Vh9wf74mhgZOQy5ufVpmDrLJfq\n3maFNOzLFIQP3gqg8T3MWhkhfnGcn1exe/e1It+qf8jdXONDGvZlimbhg9fSCDXT4shC7uYaH9Kw\nL2M0Ax+8lkao0RZHrzubZl2wlhOkYZdoaNTaCFVqcQw6vORnZ9NoC5ZEIaRhl2hoNKMRqkR4yevO\nhl1QmiFfsFwhDbtEw6MZQkosKhFe8rKzkUnT5oE07BJNhWag6ZUaXqJz37xZQXe3/W9edjYyado8\nkIZdomlQK48z6MWklPASO/eHHgKOHIkUfK/YzqbW+QqJ4CANu0c0gycYNCYnFRw/3lo31yQIj9Pp\nPrv9vhKLid/wEjv3VMooae7NmK9YrpCG3QNk7LEQU1MR3HZbGKlUW91ck3I9Tqf77Hb/Kxm+8ONM\nsHOPRlGyt91s+YrlirINu6ZpNwD4BoC3AjAAHNR1/aFyj1tPkLHHQkxMxJBKoa6uSbkep9N9drv/\nlQpfiBYTem7R3Ni5b94cR3f38n4+lzuC8NgzAD6n6/o/a5rWBuD7mqad0nX9fADHrgvI2GMhNmxY\nQjTahlSqvlrUleNxOt1nt/tfqfAFv5gkk3EcPZpw3TXSuXd1tWBuLpBhSDQoyjbsuq7/EsAv8/9/\nVdO0lwGsBdA0hl3GHgvR15fGiRMZHD++KLwmbmGEWuYr3M7tdJ+L3f9KhC/4xQRQTENvGMD+/W24\n666r8lmUEEIxDCOwg2ma9usAxgH06Lp+xeWjxmuvvebr2F1dXZhrAjekWeYBOM+FVz1kvcupqQiG\nhqy/HT1avdi827jq8b6wixAAbNu2CqmUglwOCIWAcBjYtm0Bg4MLtmtYj3MpFXIudqxZswYAlGKf\nCyx5qmlaK4AnAHxGZNQ1TdsJYCcA6LqOrq4uX8cPh8O+v1OPaJZ5AM5zmZ4O2cII09OdGBjIAQC+\n9a0QUikFgIJUCvjWt6y/iTA5qWB8XMHGjQb6+92dkGKfdRtXPd6XgQHyD2gBAJw8mcX994dw+nQI\nuRxhv4yOJpBMJnDiRMaccz3OpVTIuZR4riAOomlaBMSoP67r+pOiz+i6fhDAwfyPht+Vq1lW7maZ\nB+A8l97eCFR1FXI5QFUN9PbOY26OeJTXr68EsML87PXr1zE3J97cuXnYPEZH4xge7kAuB0Sj4s/2\n9kYQiawCQMIb7Ljcdh/1EoLr7gZ2747ge99bhaUlwDAAwyAG/vjxRXR3EwmA5fCMNSIC9NiLouzW\neJqmKQC+DuBlXdf3l3s8CWfUYys75zEp3H8JBgcXEY0CimIgGiU/O8Fru7nR0TjuuacdmQzynqz4\nszRW/oUvXPVEz6QLyxe/2IZt21bVxXWnc9i+/VeIRg2oan0lryXqA0F47B8C8EkA5zRNO5v/3b26\nrh8L4NgSeZTCpa+0tzk5qQjHNDERQzZLvMls1l4s09eXxtGjc4HJx05NRUxPnSwiBkIh8l3R/N0S\nnfznq0lz9XOv6BwGBxfrZjchUV8IghXzPXgI5kuUB79GphpFVePjinBMTgbZr3KgGxuFHuvChRBn\n1A3s23cZAGzzL9a2TrRI0XkYBtlhdHZmheMsdwEt9V7JYiIJJ8jK0waBXy59NbzNjRsNYQNnkUEO\n0nixx1JVA+EwkMkQT33nzmuYn1eRTEZt9MDh4Q4YBhzPLVqkdu++hpGRy/kdgYK9e9uxbl0mcEkB\nWQAnETSkYW8Q+OXSV6Ooqr/fcBwTb5CDNF7ssXI54NZbr2P9+jQ6O7PYu7c9b/BJ4hYg3nYupyCX\ncz630yI1P6/CMEjsfmmJFAqx1M39+9vyFESLX75ly6KvptayAE4iaEjD3kDws/UOoqjKS4jB65i8\nhjW8YMOGJahqaz6OD5w+3YJdu65xBt/IG/wMY/CdDafTIkXO1YZs1oBhAGNjCTPhy/LKyeIBjI/H\n8NxzMYRCQDTqzYOv5wK4emIFSXiHNOxNAr+JQi/HCzJG39eXLhrW8HOsbdsWMDq6wpagLTT4ceza\nNYe+vjTWrcu4VsJOT4fQ24uC2L91rkT+XDAZN+k08dQVxUBHRw6XLoVgGCTWn8spSKe970zqMV4u\nxe8aF2XTHSVqD1rN+Vd/1YahoWBoeV6phn7AhjXKPebg4CJiMTvdjxphRQEAuxHu60tj9+5rjvH6\n++5THSmNg4MLBeciOxCSrDUM5I068dwBIBSqLxpiKVTZSjwDEtWB9NgbCE7b4mQyYavmTCYT6Ou7\nXNa5KhH3DfKYTuGLwcHFvFhWcElmeq5kMg5KAKO/27+/Dc8/H0MupyAUMtDbm8Lb3pbD6tVZDA4u\nCj3catBQWZ38Uj3vzs4sFIUkpetpkZIoDmnYGwTuLydfPl++/k8l4r6lHLOYaJdXIS8n8MarszOL\nAwfEzUOouuLRo3Hz+t9111WcORNFOg2oKnD+fATnzpFKWVHxVaXDGyKd/FIS11NTEezd255fsICR\nkcsyDNNAkIa9QeD2cg4OLmJsbAXSaQORiHM1p19PsRJxXy/HpONkWS5uRpCfl9dx88Zrx45rjudz\nuv7sQnLhgopDhxKuBrTS1EaRTn4pOyU6TppDmJ9XAxujROWx7Ax7o2b5i2mCF6vmbJREGNV8yWYB\nRbH0UACxESxnXrzxeumlqKPRLWYcL1xQcfFiyKRY8p+ZmoogmUy4fiYIiHTyS9kpSQpmY2NZGfZG\nMW4iFHs5i3mpjVAEQ+QBiOYLoIBKSrslIsuZFxuGiUaBLVsWceZMFID3hho0cU1yHEAkAtxxh11K\n18tngkJfn1gnv5Td19DQIgDDMVcgUb9YVoa9EYybG8oJjQTlgbE7HiIpGxwmJmL5IiJCGQSIJ/07\nv7Pk2FSi1HnxYZgvfSmLP/zDRVdapOj602eKJlUzGQNr12aFxVlunwkS/f2GqfRYCnhVTTehNon6\nxLIy7Mt5exlUwRK74zl5Movu7uDGSMIIraYkraIYiMUM105Bpc6LD8OcPQv8/OetnnVs2DFHIq1I\npcjPkUhhI2kvn/ELryHFUj6XTMaxtKS4hsAk6hvLyrDXc4VfNeAnqSi6RvyOZ3xccTXspSRr6f3p\n7Mx6LssvZSfDLvKqauAb31CRybT5DtGR/MYbSCYTcApbePmMn2vlNaRYyudUtQ25HOHmAwZUtfxF\nSKL6WFaGHajPCr8gUUmlQX7Hs3GjM62yVoqFXudvZ7OEcOjQipJDdGTM7nUDbp/xe628hhQJQ8bS\nsXH7HCvFQEJGZCezbZu3PECjkhKaFcvOsDczKq00yO94+vvbwTeEseR01arnM/zOny4ihLGywsYk\ncTq+nwbdXo2d39yPW0jRkkeIoLMzm5c0Jjo2Tvo89t0L+Xw2i3x8fcFxHOw5G5WU0KyQhr2JUGoh\nCmt8iuUh3Dxq+5YeFaX1ieBn/pR+SEMjIiYJ/3neeNFziPj2ADwbu1JyP0NDCwCUAvaNdc5VGBpa\nRCgEsyrWiYvOL9h0Xl6970YnJTQjpGFvIvg1EE6eVql5CPsLbuCOOxawdm2uattz0fydPGmWfjg2\ntgKnTmVck6a88Uom42YlqkgWGIBnY+fnmhcyViyPmh8jYCAaNTzJK/ALtp/7tZxJCfUKadibCH4N\nBKslDtirKb0wKDZvtidP+Re82vxnkecp6qJ09mzE1NYBgHTaKJoI5ucGWI05QiEgFCIsHtaw+TF2\nXnMLbt6x6PpXo33ecicl1CMUWgRSZRivvfaary80S7fyepgH9fqoljgp0DF8NXhOpxVEo8CRI3O2\n79RTEu3AgVZ88YtteeNLlBiJZ23/XDQKnDqVQXf3RdfjsXMDYPOcRa33Sr0WrKSC6Jjsefl7RmLs\nnejtna/59WdR6rWoh/clKAQxlzVr1gAeWpFKj30ZguVwh0LuBUBO381mFaRSRkGIoZ5YR2xzDwD5\nNnn24qf3vS+FkZErwkQwDzovaqCKeamlXAvxomuFyYp5x319aQwM5DA3V917UCyxHERytZ6chnqH\nNOxNDKcXgd+yU6Pu5cWh383lSBHRlSv+z18t9PVZzT1o8w1FIRztUIjEn0dGrngem8hAucXlvTJl\n2N+xi65Tww6nBYMPkVXr+hcz3EEkVyXzxh+kYW9SuL0IIq+P/7wotEC/u2PHNTz8cBsMA3j44Ta8\n4x1ZbN++KAxVpFIKQqFW7Nt3Gdu3V780nTb3MAxrd+K3Jylh0MRx7lxUmJMQgYiZEckC6nEDhUwZ\n/nc7dlyDohimABrVyaFywk6FW+z9e+gh4L774p6UMYNAMcMdRHJVMm/8QRr2KoJyjKPRuC/DUgqK\nvQi818d+3jCA4eEOGAaERuGll6L5/yNe5bFjcaxbl8HQkGWgtm1bMI1gLkeO59YKr1LeJW9USjHq\nQ0NdphwAQIytqhJFx6mpiDD0MDzcYYqZLS2RJtc33pgpuCcAbNfp4MFW5HKELrpz51WsXAmTTukU\nnqHHosdeWjLw1a+2el6EyoUXimy5yVXJvPEHadirBHvstMNXs+NS4OVFYI0p+3kRfY8d45Yti3ju\nuRhoQ48tWxYLujhNTsbyLepIPDuXK4zHU4yOxnHvve3IZhUoSit27bqG4eFr5hjdSvG9gHK+e3pS\nvr1YYjABK19FuiSdPx/BoUMJW9MN9jskQUsWPsMAnn8+hnA4ahYA0XsyOxs2i4gMw8oDKIqBlStJ\nD9YDB1qLhmfYfEIuB/z0p2Ghx18JZ8KL4S439yKZN/4QiGHXNO1RAFsB/Kuu6z1BHLPZ4CV2yqMc\nL7bYiyAK1bA6LcQAihcFGlI5dWolNm26gu3bF3H33fZemq+8EkY4bEBVifxuNGodh53X7GwYd9/d\nkU9wKrbwDt0FsHzzo0fnPF8LnkECWNzyXM5bC0FiMIm+OUDYQzfdlMG5c9ECz5tdJKNRS/TL6vMK\ndHen0d+fMhepiYmYWUSkKKSvKtkpWdeLN9oiGWN6v/lWfTT0VOmwTDWS5vWUmK93BOWx/x2Avwbw\njYCO13Tw8nKyKDdZVGxREIVq2GbPTvK17HE/85ks5uYW8w2SFUQihBNOQIw0KVLKCmP5qtpqhn4s\nj9gK78zPp2xyt+m0s9cvgqhgR1UNM5E6NpYoqone10eamNB+p7Qg6OjROACrnZ7bIrlnTztSKXLO\nV16J4NVXw6YUbmdnFqEQGRtJ5hbmNthF2k0cra8vjS1bFvHCCzHzeFu2LOLw4QSuX7euYyXDMrVO\nmEsQBGLYdV0f1zTt14M4VrOCvpzT052IRq8WjfOWkyzysig4hWrYF5NnfIhkey9dYg21gYGB6zh9\nOo5s1jArI51i+ZRZw+qv0/DOe9+bwoULpNsQiVUTuVs/IQVRwQ4AjI6ugGEoyGa9LRQiT5HdDfFz\nSibjePBBi20zMxPBY4+tgLVAWV7+nj0kFq+qpK+oU4LZi7dqacwTx2HHjmvYs6eDyQ9UVq1RMlfq\nB1WLsWuathPATgDQdR1dXV2+vh8Oh31/p94wMABs3RpCJrMi/5sWx89u3qxg/34glyMv4+bNcXR1\nOX+exfR0yLYoTE93YmDAXpUzMACcPJnF+LiCjRsN9Pe3Y3JSyTdCBqLRNpw4kUF/v+F43O99T0Uu\n12n73Q03RPFHf5QDYGD7dnJcfl4PPQSkUmReikI8cRpnVhTgttuy+D//pw2pFBAOA1u2ZPHWtypY\nv97A5z/f4Tg+AJicVMw5DQwYBXPs6FCQTJLzR6PWdfX7fA0MIN9opAUdHQq+8hUgmzXyO4EV6O9v\nwZtvAhs3GrjzTkDXgaUlMlZ6P0dHV+SNLllkXnhhJVKptvxY/RcO0vtDwjrAD3+4oiA/8Ed/lMXA\nQLvLUUqHl+fOL5rhvaeo5lyqZth1XT8I4GD+R8NvBVazVKB5ncelSxEAXczPlzwXnfT2RhCJrAJA\nPNXe3nnhd7u7YZbRz80Bx4+3IpVqM4uPjh9ftHXi4Y/727+dxaVLl8zfqaqBv/971VQG3Lr1jYLz\ndncDR45YlZUzM1EABnp60uYuhsjNtpmaM+95z4KZROTHd+nSkrAaVFWJ5Ozg4CJ27Eibc2TPv2HD\nErq705ibc78vxcIL3d2AprVjdDQBw1CQyRj4H/8jBMOwqkP/4i/CuPdewqcPhcj9vH49ASBhHufb\n31bw7W+HbBWl/LndxsLfn02brmB8vMOWH9i6Vfws+IHTGLw+d37QLO89EGjlaVE0DSum2WJ7ExOx\nfCzYe8iAgo/J0m2/39BFMdoaqdb0rmvOs3DsYlZvoK/PCkOIxsGPj49tDw0tmh5jNktCLkePJgri\n1n6ScF7DC4ODCzh6NI50muxCRKJgBNb9HBxcwNgY+U4oRO41/U4ymUAySfIAZKEktQVuSVA23Ecl\nBdaty9jyA17COW7vkd/6CL9wOn+zvd+VRlMY9krG9tx0OyqJcnm7dIx+9clLoa3R301NRXD0aEI4\nZv4esUYYcNd9Z8/HytUSz95qJEFphDR2bxiEeunGyadjoxrm/N+85jrYMV+5QvjoANnFXLgQQk9P\n2mTm0GtDErOFTCRVNTA2lkA6DVti+dixeNGx9PXZJQWCXsT81kf4gej8AwMydl8KgqI7HgbwYQBd\nmqb9AsBeXde/HsSxvaBSVWnFdDsqiSC8n1KuC2uk/fKe3cYsYqjwhg5wTt6SSs4O5HIkpDA4uFDQ\nSKKtLYehoUVcvKiYCdxinHw7S2eVGb6h14AmcNlxOnmP7GJK49yGoeDxx1cgFLIKjuhc6fWl86RM\nJLrzobo2lAYZjxsV1bj38rxUslBIdP6BgdpXnTbibiEoVsztQRynVFTqYSuFex4kSvV+2F1GJGKY\nGim0g045220v5xUdl71H1DjxIRKn85JKznazkjOVQt4A0sYR5P787d+2gtAuDdx//yXMz6tFOfms\n0chmgcceW4HDhxPYufMaHn201WwacscdCybVcWioK3+8tgJePfvMKAqhVtICrYMHibRCMhnPh1js\n8xTtfFTVwC23EKbRqVMttrEE/QyylFz2eWHhxeEo1RDaz291fKpl1Wmj7hbU++67rxbnve/q1au+\nvpBIJLCwIG7TtWZNDh/60BJuvDGLz37Wm0qhF6iqgSefjJtbeypv+9nPXsWaNaVl+93mEQTog/j8\n8zGMj8ewY8c1/PM/k4KV55+PYdWqLP7kTzrx/PMxPPlkHB/60FLBXJ54IoHnn4+ZHPMbb8zigx9M\nFZyLncvoaBw7d3bie9+L4Ykn4ujqyuK551qgqgbWrMmZ90hViSTB9HQU4+Mx835Rffif/CRshlZU\nFXj55QjOnIlhejpqerCqCnzuc1dx/nwY09NR0FCFYSj5nAQp09e0BQwMLDk+G1NTEZw5E8X58xFG\nypfszr7//VievkiOPTBwHR/72HX87//dih/8gJyTJok/+lHL0NBnhlZ9kjGT4xoG8MwzLXjxxahZ\nYUrmaeDllyMF1+rGG7O4666ryGRCGB+PmbIDmzeTsTjd/yefTCCbTfl+RtesyWHVqiyeeabFfF7Y\n52NqKoInnkjghhuy+NjHrguPzz5/Ts9X8fNbz+vNNxvo6blakffbC7y+C14QxLvf1tYGACPFPtcU\nMXagMlVpXgtD6gn8tvWll6K2ykcvcVpRkrKYABVlfFCP+t57O/Lft3ukySTysWOrE1EymcCRI4k8\nNY9qsRhm4lBVgXDYyCcmDezcaRVSjY2tQDptIBRC/vxkhzI+HsOZM1HbuelYk8k4Ll4M4fTpFmSz\nxCP/vd/L4tvfVpHNEj69YZAxKIrdS7x40d5ejv+ZPjOPPLICp07Fzd/TcApZtNgQC1y9dwA4eTJm\n5hDcFDX51nileJdUNI3dndL7JBonj3LDJuT8inl+2gClEu+3FzSqRk3TGPZKoVYPVKkQiV6dORN1\n/Fn0oPILmpMAFeFx89ooBGSXY3+5R0fjOHQoYRopRUE+SchWnxItlptuSjMMGwObNi3h6aeJJ/no\no6249VaafJwz49KPP77CDJsZRmHYbGoqgk98ossseCIgn//AB4APfehSPo7vXAW6erU9PMH/TPH0\n0y3mQqcoBjZuZEv7yWK1bRvx3g4dSrgaQl50zfrZjiBi0U7Mo6Ule4Ww07HLNYT89zduNGoa4w4i\n11ULSMPeZBA9iCzlbd26jKcHlS5oTgJUyWTcZJLQl5FWOIbDxOumoQqacBwebrcZu56eNM6dizDN\nLwhuuimDwcFFHD2aMOO9gF1zJZlMYGIiayYfaVw6lXKWbEgmE2acnsAw29lt3Gigu3vRTGBSjv3F\niwrOno1g9eocBgdJYpXuEiIRmNWsgBVbvnBBzV8vK3RENe95qYbR0TgUJWFK9XZ2ZgsMmUh0TYQg\nvEv++aGLBbvLcDt2uYaQ/z7Q4TnGXakFoNGcO0Aa9qYEz2zp7MyajZepGqFbgwgWIo0be/iAbPmP\nHn3DpsII2DvdHzjQajN2oRBw++2/wuxsu3lsajRoYpA2ycjlFHz3uy3m99gwDfuyj4xcxrFjcaxa\nlcUbb6jYsoVXgzRs/x8KAb/7u4tYvdoAEDWvHQCb+BjF2FgcR4++Ye4SWANiZ9eQ0FEmQ67Xvn2X\nbVRO9jtUUgAgoaTh4XYz9k53RlRm4NixOLZsWXTVtR8aWkRLSwu2bn1TSOv0ElbkDZmV9EaeNbRg\nmwN/Lco1hOz3H31U8bQLadQkZ6UgDXsJoHFar0UftQD7oAMwPWXA3xZdlGe4cEEtCB+QhWLBVgzF\nnmPDhiWEw5ZXryiw7R7osdmCKjbem8sZUBTSOPod78jgxz+OFBQA7d3bboYMFAU4cyaKdesy5md6\netKIRmHG5D/96asm8yWZJM0p6PxY8TEKGtphxdIo7GEQIy9+lnP1HpPJuCkpQMNHVpiI5CrYncn2\n7W863ie+F+3WrYV/Z3XlQyEgHG4rMNQ83DzwahjTjRvFtFgetaZE1hukYfcJ/gWhXly9PUS8oSEo\nTQRKlHwUcbvdXvK+vjS2bVswBbgMwygwkmzdQCjUhp07rxYUHGWzBl55hUgEs+EWWqxEQwa0OCmZ\nTOQrQu00SF68a2nJML1lVYVNfIzCzbCIBMdEz8ToaNz0vAt7ElvKmGwOgt+ZiMDORdSLll9Ecjny\nudFRsaY8CycP3M2YBhUW6e83PIV2GjXJWSlIw+4T5GEGeKW+ejPs9EFnFRQVheinlDpWsqhZ4YYd\nO7LYunXeFovnX3L2BadxczdOudVNyOJ9z8xECiox+Sbcs7NhMylrhXsMAIatM9SxY3Fb425Vbcvv\nBlgZAOJxAwp++EMVb76p4l3vymDXrmuOhstLbHl0NI4//VPCFnruuRj+63+9imiUsn2AD3wghR/8\nIIpMhoz9ox9dwqlTLZ680A0blqCq5H6LF2/xIiJKMrP3220+bgqhQXryXkI7jZrkrBSkYfcJ8jBb\njRfq1TugMefDhxOYmYmYzRtokY0IxV5ktktSJmOY5wHEL7lbMw8+Pk3DMaTpBO26BMzMRLF2bRb3\n328ZeJqUZZtw79nTnjfsAN2Z7Nx5DVevhszmFbkc6WREaZD0s2ShgFlQxEr80vH//Ocqdu2yujqx\nmvJstaqbQTl2jNIfLXbL/fdfNqmiU1NRfPrT9urUZ5+NmfM6ezYsbMVngRhvRSm8n6wujaqSReP0\n6Zgtwc0/C8WMs5MxZT152tCEhukqaXQbMclZKUjD7hOUYhdEjL2SNC6qzZ1KkdL2TZuu2zxO0eeL\nvcgXL4YVl0pcAAAgAElEQVS4b1leoOglF3nxNPQyOhrH/v1tWLUqi29+M55v+mxg586r+b6fJAF5\n+LBlyI8efQODg4tmkpaOe//+Ni4mbmDTpuu2ytHe3hSmp6M2fvaFCyGT8ZHLke8sLobMpKvTLoSv\nVqViY8U8UxG7ZWYmauY/sllSPfvkk9ZxRkYum20DT5yI4/TpuC2cRBe2/fvbkMnAVJe0h6BazQQ3\ne3/cnj8/Gjn87+nugTY0OXIkgbGxeFEOvERwkIa9BIgeZi9GmhWbAsQd64My9MlknOmaY+Dpp1tM\nj1OEYi/y1FQEp09TlUID4TD5L+tBihKmoq06G5KwQJo+v/RSFPv2Ef742bNhnDhBFlAaL7dUFBWM\njSUAKEyIhsrTAqtX52w5hptuSmN2NmKGgTo7s9i/v9X8XiiEvL6MlXTlS+yvXCH6LleuEK9YUQyb\n2Nj+/W22MA977eh9/au/umTG2Nety+Dw4YTtGuRy9ms/P89SJ4mOPCtqRhUfraQx0ZlnQ1D0fvJJ\nXzcPt5yYNZ9PIbs7mv+oz9Bls0Ea9gDgxdvlqwJ5dcNkMm5SEkXH8OPdT01F8kYP8NJMGnAOpbB8\nZjJWxTRojz6q4rHH7BWOPGNItFXnQxJ802caKrlwwb5DuHgxVLDNt3dgAt7+9gx+//cXcfWqamsc\nPTi4aPP2n3mmxfTyFcVAd3cOs7OhvPdudUGilMtsVsHDD7flhb2IYQ+FDIRCxNPmwzwiGiS9r9u3\nv1mQhKfj52PVfBcpVYUp50xzBmzSWFEMfOlLObz97YuuSpte6hjKiVmz+RR6H5zCPssJ1Sq2koY9\nAHjZthZTNySepzPDwE8yijXC9GVnm0mLwPLAaQEMe86RkcumoBhlVfAeGF/ZSRlDPGeeD0lQBghg\nL2Xv6UmbfweA73wnhne+05K/Jf1LFVMGADDwi1+E8fDDbQiFCKXvne9M413vsqpDjx6Nm1W09Nih\nkIEf/ShkK9sn/VAXTcoly7ax/gvcdtsCfvYz1WwgzSciRc8GAOzdu9LGUnn3uzP5JtcL5rVkefED\nA9exenUWbW05PPxwG6ii5Xvfm8ILL8TMvAQAvPkm8Id/KDbMduYRSU6X047PCfzCQOfupz9As2Fy\nUqka114a9gDgZdsqosMNDi7aHny2QTJ7DFEyqq/vsqfxsJ2EnAo7WOmAdFrBmTNRDA0t2AzS/Lxq\n816pyBU7Vr6yk6ow8ufdvn0RzzzTghMnWkA95ltvXcSzz7bYGDPUANDj5XLAwYNt2LfPijHPzoZx\nzz0dNsNGF55cjlAjX3mFhJG2bVuwVdGy1D++92o2a4XF2AItuluhc6fJ6DNnogVsH5HsLy3RJ2Ey\nC/39KTz4oHVPebrq+vVps4sUSTATZtDKlcC+fZcwPNxuShq/5S2FksBWVWyIYR4Rrfp16zIVMTCi\nhWE5FxGNj3srtgoC0rDnwW6RAH+xbi/bVvoZtrsN/T2F0zH4ZBTxJksvKmHnSemLpIMPzKIfKn8L\nkK30hQsqzp6NmGGAUMjALbfksHs3W+For+xUVeddwq5d1/DsszHTGO7a9SvcfPOSuWOgx4xGLQYS\nDSmxPPQNG5bwl395CXff3c4YZ3Ys1iJz8SIJz+Ry1s6DrYSlXjC7YLHXki2iYoupNmxYsu12qMfN\nUkOp1C6ldFqLiIFwuJCt5OQsUOYQYO3C+vrSNikE0he2zZa7YVsGkt2RtxBdkKhGEVE9a6d7LbYK\nAtKwo5C+ZkmyevcqvHJt2e42Xo/BJ6O8tMpzSvCyHtOHP3zdNDLZLDHEqmrRIgcHF0xVv8cfT9jC\nF+EwsGdPDt3d1jl6etL5GDA5zgMPXPa8+ADAnj1kxzAxETW9yKNH50ylRMMgxoxviTcychm33rqE\n73ynBYZBOekAG3sHgO9+tyXPHCE/qyrMY/7Jn+QwNZXBe9+bMumGTklh/lqqKgmNZDIKXnghildf\nVfF//2/MkRoaCrWa41MUQj3kwxOixZkynejiMzJSKFVA+sKiIPTDGtRNm67nBdXEIbpKGcdKFxHV\nu6yA12KrICANOwpDHUChMqEfVOLFKFbc4wW8x/T66/bb/853ZvCud2VNxUJK7bN0yYmXRwud+vsj\noL15qdGh+uKbNi2Z5fxOYA3m3Xe3m4aQMmBouGn9+gxuvllcMWoYlr5KOGzgllvIdSFG3BIPIzkM\ne2XnW96SxcDAEtrasnjooTbkcqot+cmGqWZmImDprfZnhsbcyfNDYuA8LOO+b99lU0UyHAZOn47h\n1KmWAmPELyj0nLQ70/y8WnCWDRuWzF0O+5ywBnXXrmvYteta1WUCyk3IFkMjyApUi2svDTtE3X2I\nB1uKAQ3yxeAXiHI71/Ae0+23/wrnz3cgnSahiR/9iMSjQyGYvGyRCBhtTQe0m8dmjQ4AnDzZgmef\njfmYv2H76dy5MEZH40zzZsMMK1y4oJreNgBb0wriicJcoIk8ANlFZDmF3YsXVbPgiXLJl5aARx5Z\ngdWrc3kOvWJ6+ICVELY/M0AmY3C7BCvUEo2S3QyNe2/fvsi0wSvU3SmFgsje+xMnMjh+fNH2HIie\nHdF5Km0cK2nYpKyAhWVp2IuVgwOl88mDejGcFgg3jrxTWzl2LmwsmBqY/fvbTFYH3wJw9+5rtibN\nL70ULVBNJElCe/zarVRdBCqHS+Pp09NRzMxEbP1KadGNpbpomAadUA/Z/qbWAr1p0yLWr8/gm99s\nwfnzEeashV68YSDPnYft97yEBHtdOjuz+LM/6zD7rwJkPOEw2dn09KTNBYqtVLXkhguT5k6qiW5M\nF3rvT57MFiRN2UQq/9ywx2tk41jpHUEjYdkYdhH7w6ljDVA6FSuoF8PvAuFEq+Nj0bQa9YUXiEzt\n9u2LuOuuqzhzJuqoZU7PS49FC3j4DvKqauDWW6+bjaT9zv+WW67jxRcjeP111TTmtNQ/EjFw8WLI\nVnRF/mvpxtBGFte5rnGrVxvYvfsaNmxYwsc/3pWnR1LjSxYjVlXR7nGzIIsHf1327l1p6gcRhs91\nrF+fNj+3f3+byUQRVaqKYulOuz7R4s7f+/FxBZcuRYp2PXI6TyMbx2qFOuody8Kwsw9wsa715SKo\nF8Mu6lTcQIoWFP6Fp8UsIqqbm3wuH1MG7B3k6TENg8TDd+0q1Ct3Q2GxDkzuPe1i1NmZxZ49NPRj\nGV76ObaRRTKZyIdRjHxozaqQffLJuXxrPBWrV2fR05PGnj0dTOERy5ix/5dPCIuKjMJhmNINLGec\n9eZppSp99ug/qp9PpQ68aJDTe8ayLd7yFrh2PWIbgojOI41j42NZGHbWKNHClWKdYIDSk6DBvRgK\n91/3c4oWFL5N3gsvRM1YMEt1Y8cs8uTs5fVWB/nOzqxptHI58jM9jpdCFKpzYhXrkGMpCtFJocUz\nBw602oquaOya1xMn87icZ/QkMDaWwKFDlocMgKnwNQAsmBRORTHwvvel8Fu/tYSDB9vy/VZJj1We\nKUPnxyp9kmtgcH+nyU6DidWTa/XMM4RXTgXHhoa6zEpNtmpW9Iza75G9jd+3vtWZN+rW4icSZqPy\nxPT5qARLpVE9/0bHsjDsvDcr6mXJo9bUKcJGgWd6I1C4oDgZe7avp+hl5r1zUoYPvO99xNvL5RTs\n3duO/n7i3bMFM/Pzqudrx3q0BPZ4N8v68FN0RfGzn6nIZGDbnQEW9S+Xs7jt2SwxvDMzEdx0U9rM\nExgGsHIlhPFpMiY7z94wrPPQvANdqPi2fGfORPMsnBW45ZZFc3HLZAy8+93pPEMpBxH4ezQ/r5ox\n+298QzV3HeEwcPvt1uJnFzbz1hCkFLgpYLp9pxILgdNxG6FhTqkIxLBrmjYA4CEAKoCv6br+YBDH\nDQqlhEdqTZ0KKlbPG3uWkeGFPaOqRGGRbwC9tASMjirYunUJ0WhrQcUoG55xunZ2Jo29uCkUMsxd\nAZ2H13vIh0DYnMHsbBhWSAQ4fboF739/Kt/gm3QwunhR9VRI0tdHefatOHUqlm9nZ+fZqyoxniTk\n024LN1kJWaOAekorZgHg0KE4HnjAXvrv9HxMTMTMBURRCPPpwQevOH6vmLEtFez7Q/MKY2MJRwNf\nKUfKjVTQCA1zSkXZhl3TNBXA3wDYBOAXAP5J07Rv6rp+vtxjBwm/4ZFaswOCitU79blkY7r88dlz\nX7gQwujoCtgrOol3+41vqNi6tZBKNzsbLgjPiMBW1BJYVaB0V8CWu3u9h8lk3AxFhEIGentTuOmm\nDGZnw9i7t53R6yG7oTff5OWInauAefT1pfH1r88XCKaxTsHatTlzQU0mE7h4MYRTp2LmvCMR0v91\nZqZdmMTNZoF77unAzEzU9Cydno/OzqwpUEZoqYsF461GcpS+P2z3q1TKWeK4Uo6U03H5MFq9Nswp\nFUF47L8J4Ee6rv8LAGiadgTAHwCoK8PuF/XADvCzGIm2m4Weq9UgGXDX7WCN/9hYgvM0AUoVpNQ/\n9rui8IzTWLdtW8Bjj9GFgywaVKY2nSZG2m8i9vDhFWYoQlWB8+cjOHcuCkWJ2xpq09jzu96VwSuv\nWK/C6tU5344Ae73YEEwhu4jE/okqJIml33//Jaxbl0EoxOZS2B0MyYfwbez4MbpVporGWi7cQif0\n/SG7mZaiNNhKOVJOx+XDaI1G7SyGIAz7WgA/Z37+BYAPBnDcmqOa7AC/srxe6HF8qIPlpwPw5CGR\ncMMbSCYTmJyM5g2g5VnThBw7HpGeCTt2dqw7dlxDOEyKh2h7OgLywrnR9UR45JFWJpZt4K1vzeKX\nv1TNedKEoapaidfZ2XBekIycs6enYBXzdC8AFIRgqMd84ECrSbW1s1XIwjcxoZpFUnSXce5c1KRm\nAsVrA5wqU8t5ttx+5yV0QjtAUYnjXE6cEK6UI+V0XBpGkzH2MqFp2k4AOwFA13V0dXX5+n44HPb9\nHYrJSQXj4wo2bjTQ389zk6sL0TwmJxXcdlsYqRQRvTpxIuM4TtFnp6ftqnHT050YGMhh82YFDz0E\nLC1Z4lbRKLB5MymIeegh0riB/q6rq0V4zoEBoKNDwdgYfVyIYfzrvzbQ0dGBgQFrPF/6Uhb33aea\nO4QvfzmHgQGrQnV62qLyGQZRa6R9Ot/97hxefjkEavDe9jYDr79eOC8nTE4qOHXK/ki/9pqVHAXI\n4vGpT+WwfXsO/f0RAO2Yng7ZdhipVBu6ula4nmd8XMFb3gJ8/vOqOfft27O2+/Dv/l0LOjpi5vWh\nGjYsWyUcBt54I4H160mDEHo/PvIRFefOkfNRJhfRtXG+V/R+s/f0Rz+Kl/VsARB+n72PTveGfiaX\nIwycP/7jLG68Efn3sL3g/AMD5B/QYl7jm28O4QMfKO29Fx1X/HuAraKuFMqxYb7PFcAxLgC4gfn5\n7fnf2aDr+kEAB/M/GnNUZMQjurq64Pc7QCEtrJLsFjfPiP5t8+Y4urvt8zh+vBWpVJvZYf5rX0vh\n+PGs8Dj8Z2npeCSyCgDZUvb2zmNuLo3ubuDIEXuMvbMzi+PHSaz9yBGrwra7Ow328vJzOX68Fdls\nG2hS7o47FvCpT0Wwd+9123h0PYNUSjUpfj//+QLm5ixGSTQah6K0m8aKlP+TzypKFkAI1HP+4AcX\n8dRTpDEGaW9H5uV0nY8fb4VhkDGyXPdf//WMudMwDAOrVv0K3d3XzPn+8petANpMTnxv7zxOnBBX\nH9trIqzxp1IGfv7zNBRFNZO1vb3zOH48Zl4fWh2rKGTXcMstpO/oo4+qebbWJfMeDQ+3mx48QJKg\nlL3C3yuK7m7gvvviOHVqJTZtuoLu7sW8KJj9eenuFnfSEj1bAITfZ+8j+8yx6O2N2J5L2vgcgHD8\n9PqyhVUPPAAcOeIsJtdIKNWGsVizZo2nzwVh2P8JwLs1Tfu3IAb9NgB3BHDcQFAtdovb1pT920MP\nEWPrFF9UVYNp2Fy4xRXFDN22sTw/nUrJRiKtwiYY/HhVtS1fFp+CqhLPn6o/Tk52FMSTt2xZzDNM\nxHomJAZM6gl+//cX8NRTCSgKMeRsuf/69Sl861sJM8FI+eFuLIcLF0IIhw3QVnnEIzbw05+yOw37\nmEZH4zbRrh07yPVwupf2mghiqCmefjomjG87UW0nJoj4F09ZPHCg1ZYLCIXgib1Cr286reB732u3\ntfcT3Q8eTp8VddZi76NbLJ+XMy42fr6wKpVyp/pKrrwYZRt2Xdczmqb9NwAnQeiOj+q6/lLZIwsI\n1WK3uC0g7N9EDyrPQjl0aIXjQuQWMyz2YCeTCZuC4t69KzEycqXge3aqGknaRSJxU/ESUDA7G8Z9\n94WRSoVt8eS+vrQjnfKRR1ptkgBPPRVnDDfMYwMGzp6NMj8Tka5kMoGf/Uw1qZR0rABsRTfbt5OF\naH5eNa8n3Wm85z32ufJt+l56KYqVK53zDzzrZMeOazh4sBWZDJ0XMUrPPNNiGnCRZADdRVF9HVWF\nLbEXjbbmwzcGPvpRTiPBAaJnkNW0Ee0+2N87PVtOTcrpTkukMkmPzzZvKdbQg46fDVVFo3B8Z2td\na1LPCCTGruv6MQDHgjhW0Kg2vQsoXECIMTDyrBTxg8qyKpx6VfKf9Q97bPXFF6MYGuoqqN4UUdXS\n+dPRgikiT2Dpfq9dm3NdZEZH4/kEpTUOq5LUUmos1Gmx2uCNjSXyBUd2brrdoBlYuzZrcr7p9aTq\nlNPTUWzbZvVp5dv00SbTonspYp3MzEQLKmKJkFgLvvOdFoTDbbbry1d+Wp2frHtDn1laOXvqVBzP\nPttS1HA5PYOi+yEyirOzYaF3zX/fq7Pkd7ds37mS5Padd0Ztmv/lHH85YVlUnlaD3eK0gPDb1i99\nibiod9+9EqJsfDkLUbFtKa+gSLjFhTQ6ABgaWsTFiyGcPh0zS+tZOeMtWxbxj/8YK9D9dhoL7xmz\nTTsAsuB1d6dw/nyUOQr13ICPfvQ6Tp2KmwlOKvol0kphx0Kv5969K/Hii9GCvqR0AaBxafqz6B7w\nrJNnnmnBqVMtJrWS5gzYlnv89WWNETXqZLG0GybCasqalbNuhV78XPkuXSKwRWS5HPDAAyvNEBpZ\n6ODaC9XLM3rlCszGJ152y6Ljkri0+PO1rjWpZywLw14tiBYQXi/k7FkFn/2se8VbKQuRl20pS/Ea\nG0uYsWiWRgfAlmy+/34rJkznQ1+6/v7WAt1vp7HwnjER3SLXpLs7jf7+FHp60vizP4syUrpWY4/V\nq3M2402VHEVaKaJrd/58lOG2243A9u2L+MxnVmBuzjJkIo44279UVY18fByghvx3f/c6nn02Zqpk\nUn0Y9vryXilg5PMphYZJpMNTDH194i5dIkoqPbZhwDTqdC7HjsUdDbvo+vAQ5S68PNN+nv1K7Mab\nJWYvDXuFwXsVgFGRije7J0gKe5wSWn19aQwOLjLsA2dFSJrQY79PK1Y3bxZrqIi2yBs2LGFg4Dpe\nfz2E3/qtJTz6aGte8MrAq69G8C//EjGbZyiKkk9KKmbrOr75d7Fx8pWgrAFetSqH2dmwbVc1PR1C\nNBoXLg58+OSOOxYAGHj8cauwSlVh60xEuy7x19cKsxD+NM0FiAzJzEzUXABFhV5eIVporWPxOj1W\nSKociHIXbuMr1ZgGuRtvppi9NOwVBu9V/OIXnQiFLF61ny2km5jRhQshs0mx1fDamYnAGnj+mG7b\nWzeGj0hGVlWBs2fD2L+/NV9oZGBk5ApuvXWpIFnMhiYA5AWqCmmftCzfSZmQZ//cf/9lRCKGmTP4\n5S9V/OmfdgAA1q3LMNW5HbbqXFHym8bwSVLUCmtRZg/7HXYxunKF6LLTGL6lMBnHyMhlc7fEXsvD\nhxOMmBfRoBFJQBSD00IbDreZ7QMJyPwGBhYLvHW/xleUuxChnoxpM8XspWGvAtjE6Oc/rzJ9Qa9j\n165feXp43Gh+9PcWCmO27HF4JoRTjJ/XZAecGT4iGVnqsZ48GbfpgieTcZOTDcBMFvOhCT7/QA02\nVYOMRJBn4ywUGH6W/TMzQ/qYfuYzHfjJT6zK2WPH4pifTzlW5/LJZHJOy/MmDcYTpgpkYSiL3KfO\nziwefJAsJM89F8PAwHXb7uqee8jf2AUlmUzYKmj/zb/JYs+eDt9N1t3Gf/vtC3jssQSsXIaBWMzA\nrl2/Knhm+DnRZ8HJ0NOF4dixON773pSp+unGwKI/18qY+o3Z13PYRhr2KoIkrGBW4q1f707/4r/r\nLGZk8arDYeKxF/O23YwD/Z3oZWZ56yzDRxQaWbs2Z/YjpYZDVZFntygIhdqwb98lz20Jk8m4abAB\n0md07dpsgfE/d45/rA309aWxefNiPu5LvMj3vjdlvsxsT1dVNXD2bAR3391uhkpEMfzBwQUcPRov\nULbkQ2I/+xkdD7kOP/4xKUii57Q426xhszOYfvEL9hjeDCBreESxaHb8pGDqulAmmL+3tEVhseeI\nCp+5PXNejKkXAxqEkfUTs6+nnYYI0rBXEYSfXNhB3ut3ncWMvGnN+/GO3F5mylu/886YSUUrVtxC\n6WsATC83lzMwPNyOJ554oyCOz4OKkRHQEIydOirSdw+HYeq1XL1qxZUVxcDVqyomJmIYGbmMVKoN\n0ehVzMxEceRIgqFmJhAKwexfysLJEKhqm6nvPjaWwJ13XrOFJX7ykwj27buEY8fiGB+PmQsf23av\npydtk0Lghcu8eJO84RH1QWV3ZzQZzasvivNE4ueIN7As+0bE7ClmTCcnlaIGNEgj6zVmX087DRGk\nYa8i+vrSwg7yXr/rVJjk9mKwL1o5VYj8y7x2bQ79/YaNijY0tACewsmPbXQ0DsMgMgF+QkYTEzGm\nCMjA+vXpgopHloFEjWgoZB2PXRjsFb4GTp7M5kvw1YKGGIS2KJacFYWy2BBNNksadQwMLOabZJOE\n8Py8aus1GwoB+/ZdNsNae/e250N2FrvGa4MR9lrwhoc3giMjlwGQcJWToeKfMQDCWguRgfXC7HEz\npuPjSlEDWgsjW+9US2nYqwDWSA0MGI5aHcXg9AI4/V4kDeClexQ9ZvGXucU8D23rFomQLb7T2Obn\nVZPpQbnfFy7Y46/FDAQAvPOdaTMZSeO5fGEV5d3T2DdlxiiKgZ6edF49kRiD8XEF3d2irkjWOYup\nK1KIQjQbNizh2WdbbL/r67OX3NN5sAuUqhq4/XbS5Yjq/XiBk+FhjaBhkG5adAFxa5PH30c3nj/f\nUJ0KrCkKyWsUq0BlsXGj4VijUGyulUQlqJZBQhr2CoM3UsQzrM652ReNlQbgQwpO8PIyAzT2DVBt\nDyeqJUBewliMlssTb/TQIauAB0C+B2qhbAA1EICBJ58ki8xzz8Xw6qsqhoevmS8b1QA3DHvYgn35\nb799AbOzEfPnjRstVgvbFYkWRIVCpGWdYZDCGxZ+SvMpoyeZTGB2NiUsuecNldUT1a7z42dhFoVV\n7I3d7W3yABQwcETz5O+tyMBSeYRcDnj++Vi+HaB9/E4x8v5+o6gBrZWR9Rq2qQWkYa8weC+GeobV\nAO/BFutiUwzOD7JS5Gf7MSxdHBWHDiUK4viilnaAZSDIXOh5DHz1q6249VbrhbY0wO0CVfzLTzoa\nkfDIzEwMx49bhmz9+nR+cSBj+w//gbTPMwyYhTfDw9cc47tO14ptWqKqVOrAHkIQGaq77263MX2S\nyQT6+kgYxckoisbAHtuKq9vb5DmxYLwUwIkM7MjIZXz1q6346U/DQtZRsRi5FwNaz0a2FpCGvcLg\nvRjqGVYD9EVzqzQNgmUwOLiAsTEr9NDTk3KUTKDjogbk6FFSyMLG8VnZgLvuumozEMPD7flYO0Dj\n9IZBDN3ERBYXLlga4LxAFf/yz86G8xx64LHHgFCozaQc8vdtydzd08WkzeTi25PMzh2fyGfpMaj4\nl7jkvtBQ8c9NodolDbfdeae788AeWyTY5hRS8dqYhffE9+4lixJtuKGqBi5cCJnht3pPRDYipGGv\nMHgvpr+/3VH7olLn7+ujlaaJfMLQnVnhl2VAwheWF7hnT4fplR4+HMcTTzjTKt3i+KxRB0h8nnjQ\nFkOEfvbIEcL7JrFigMoId3ZmhYvM1FQE997bYatIZb1JXhVxdjacV5y0KmLp31jmj1vHJz5+H4kY\nuPPOa3jppWiB8Ba/sFKdn3TayOcxSHiG7e9Kw23JZKE0tNu9o4ssDb0UYzgVi2OL+r/Sxbq3l+gB\nHTpk7RrrPRHZiJCGvQpw2yZWq8iBjOEyBgcXip6vFA+KzpE0dgAsrjnwyCMrsH59RnhO9tqQJOwi\nAEPI/HCidp49G8nTE0kcfGBgEevXZwoWGarLA5A4vmXUKQjPnk3mssyQV19V8dWvtsEwSCEPnY9T\naElE7WPbsfX02GPsAMxGG5YOjrVA3HnnVRw/HsfmzVbIZGzMqk4FLGE3P16vaCH3It/rpWXeyMhl\nU8c/HDZw0032pLVoEZXeevmQhr0MlGuU/XjGQS0AXmKR5XhQGzYsmTxuajRPnWrBqVPuc+QrV6lH\nyo9dxCK5+257W7PVqw2zYQWvy8PG8Qks6YNNm67j9OmYLZnLjnV4+JoZfuEpp6LQkqhAbGIiZi5a\nZBG0FBYpQ4XtzAQQ4zc7GzZj+w8/3IZ3vIMwZKhkMJWF5gvHvEC0kFPOO1t5zC/Cbn126bFmZqKw\nFk8FPT1pIctFxsiDhTTsJSKIogivnrHfc5W7CJTDMujrS+OBBy7h3ns7kMsZ+V6dSkGCkIeXa8E3\nbgCIh9vTk0I0asX4Kd1SFPrg4/i9vWncdFMad94ZxfHjabOjkWEQr54PB7kZIH7h4UMrbhROwyB0\nTCr4xXZmOns2gtdfj+V/suQQ7rrrqnAHQ9over9nooW82DPndL9E9Q90XtksyXkE5Z3Xc0l/rSEN\ne4kIIuHj1TP2c66gqvDK8aBoKbmIeeE0Ry/XopCD3Q7DKJQXZj1pvhM9YI/jU9ZMV1cXLl2yyws4\nUQd2teMAABxeSURBVPN4sOJnTh2DvHC8qbqlqgLvf38a//iPUeRypGkH5ZizolpschxQ8udbRFdX\ni2sexws9k3ZJcnrmnO5XsbyJE1XSL+q9pL/WkIa9RASR8PHqGfs5V70wDNjwxNDQAi5eVLF6tbOe\nuJdrYedgw+Rg53Jky//gg5eFx6bcbKdYMT+G/fvbMD4eMytOvS6kgFUExZfPi+7h7GzY9MyjUbtw\nml0fnSw0AwPXsbio2MJQAEylSBo+GhhwvMye6ZlenjlRpTG9juzPlYif18tzXq+Qhr1ElBOu4I/j\nJTHp9VyVZhjYq2gLfwdYIl6zs2EMD7ebHnYoBCF/nv2+SN+dgr0OJDHabvLaiUxxoRokn8ijXr3o\nPKOjcRw7FseqVVkzIVmswYXdwFheNf89kSfLN4Tevp1IGpBFwn68UAi4+ebrmJmJYGYmiqmpjBnT\n5rVY3Ay7V4Po9swV5kPcC94qET9vBCZNLUNF0rCXgWolfPw8IEEtOE7j4KtoL11iedStyOWUfCu9\nNjNuLKITFkvC8XOn5fSsUZ6ZiWB0dIUZv+WNlHPoprVAWuHee0P48pc7uBkXb3AhkjEgMHD48Apb\nOIZ9XpwaQnd2ZhmWi0Xr/PSnrwkZPl67LIm08tl4uojd4vQMsRRLep2rbbjc8hn1ANFz7bbgBg1p\n2OscpcQSK7XgiKpof/UrVraAflJhGjhYnqdImdAp9szGrK1KVLtmOcvtVtVCJohT6IbVSKFG/itf\nYTsKUQEx0r3JzRu04twJHDmSgNXWjyQ9P/GJLjzxxFzB/eA9TtpEgzZMYbV0/vIvySLE0kjZVoY0\nTs8vQqLYP68ACojlmZ2eOZ5iKbru1QCfSPejP1MNiJ5radgrjEbKpvtNnFZyXqIqWj7hyILyl428\nreNL/EXH7OzMmkZFUSymiJPHz3q2PPjQDU3iAgajFEmaQbASBfS/vb2FCpIikIWU1Ajs3bsyX8hk\nacaz5f/uYyOiX5EI+R5RfLyEdesyeOQRKiNM+erEO1+3LoNotJVLTrfYHAKePsm2ERQlSQHnKtOJ\niZiNYrltW2FlcTVQ7zF2caioxf1LAWLZGfZGy6Z7jSVWY16sd0oMTKwg4UiNsKoCDzxwGYcPJ0xD\nl80amJmJAFgsOCZfqZjNKqZcLRtr5pUKaSMPJ/lfdvdCtGESOHSIle8lDJPJyRiWluyLw9veZvcC\nnXIJbKhlZOQKPv7xVVzxk1hGgo6NN65sS0CAeM9LSxYXHIAZvunrWyyqtEjpk7x0Ad+g20uVKf88\nFouvVwp+Y+zVduYqGRL1gmVn2Ot9pefh9QFxm1cxg+QXtOEGW7pu1xY3sG8fSQbOzETzhp2iUCCM\nDx2x4RO2PRzv8ft5uek1uHhRscX9b7mFUDMNge1luwmxfVRVtQ2hkCGUDujrS+OBBy6bPH62/N8J\nImPJx+LpgilqMiIKvTlV6bJVo3yDbpGOPt8esdYGi8LPOGrlzFUrBydCWYZd07QhAPcB+PcAflPX\n9akgBlVJNEI2nYeXB8RpXvYXuBW0uUUQRVVs6brTi9bTkwJAPXygrc2ZYULnyhqV4eGOfLyeGDZe\n1MtLkxE21MEb8NWrjbznD1ihmEKDzPZRtcYjdg5YHn+5CW/2vqoq8u3rskWbbRS7Njybh28xSP/f\nq3JlLcKbXg1nozlzQaBcj30GwMcB/G0AY6kK6sXjCBpO82IfahoD59kMfl5K1tDwpeuiF41vrHHw\nYJtNYpeFE+1xeLgduRyEiUynl9seY7brjuevAsJhK5QQjbZhaYnkBKhOvB32n9nwBU18imQGvMLp\n8+U8r+wx+XvstyCM/lzsWvt1GKqxIDSiM1cuyjLsuq6/DACapgUzmiqhllukSqLYlpwYI8Wm7liK\nkiM1NMVK12kM14qVkz6nTnIBonF49X75cNP+/W0mJU9RYFZ10nEoCmm2QY934kQGf/7nWTz/fMyk\nbLLjZBk4oRDw6U9fw8qVcBTs4sdUzvNW7vPqxOcv1k2rEpXRbuOqVIikWZ05Nyy7GHszQ2RI+Ica\nsMfYi5WOi0ANjVvpOttY2mLLkATeE0/EcfZsBLt2XRPuLPhxFDNsrIEIhdqQyxnmcagOy86dV3H1\nqmqTLWZDLf39hpknoAwT1hMHSBjk1CmSIH700VbzunrpLVqu0SpnkSjk81Oqp+EqyjYxEStq/N0S\nsH7GRX+ulNFtVmfOCUUNu6ZpTwN4m+BPw7quP+X1RJqm7QSwEwB0XUdXV5fnQQJAOBz2/Z16w+Sk\ngr/7OxW//dur0d8fTMONyUkF4+MK3vIW4POfJ1znaLQNJ05kzHMMDCDPoW0xf6b/v3mzgoceAlIp\nogp4ww0JPPpoAhs3GkXH6HZPpqethhcshTCbBV55JYxXXgnju99twdNPk3Hy49i8OY6uLjE9jM6Z\njpGei7YAtOLf5P9DIQO/9msJfOUrOdx5Z4b5rqUKGQ6HMTDQjpMns+b1/OxnO5BOkwYcAGxFSOk0\nMD3diRtuIKEbwnm3xs2OiVyPTgwMcHxQj5icVHDbbWHhvRVdD/6+sNeWpz6KxmU/H/Lnayk4FwDz\nc+EwsGNHFtu3268rPzYWXu55M7z3FNWcS1HDruv6R4M4ka7rBwEczP9ozPnsNtHV1QW/36kn2D04\nNZBtZ2EcGXl9EwPHjy96aprd3U2YLTTJ+JnPdIA2pU4m7YU1vNfodk96eyOIRFaZ/HaqiUK8d1pk\nY42THceGDUvo7k4LdwN8OfvY2Bvo7QUikVVc9ae9vD8avYq5uUV0d8PsLsQev6urCydOXDbPT5Kl\nCdDQFYFVCRqJGIhGr+Jzn2s353fffZfR3b2IuTlr/gDxYnt75zE3V9r9Pn68FalUm5mwZu+t6HoM\nDLTb7gt/j1lRtmj0KvbutXvkTufjzzU0tIBUKmwmYFetWkB39zXzutoT94TzziZ9vdzzRn/vWQQx\nlzVr1nj6nAzFVAmV2HbaucqkAEhU3VkMdJv6n/9zp6lfnk4beOSRVnz96/MA/JdI8+yW+XkVV67Q\nfqHEUIbDhU0til0T0XXcvfsaRkYuMx2RjHzClszFSRaAXag6OhTb/D78Yf76WZTL3t4Ubr99AfPz\nKiMLAF+MHTf4SXTyyfFkMi68L+y1LVTetIeLnM7HX3tAKZAnYMF+PpsV99pdbiGSaqFcuuPHABwA\nsBrAtzVNO6vr+q2BjKzJUInMfDGusl+8/nrI8edSSqRFL+073pHF4cMJxGIGfvCDqGNTCyds2LCU\n16QhyWB6HS2jSnYvt966iGefbSmQCxaX2bfik5/M2ea3enUO0ShMLXfayEJRDJw7F8XsbAQjI5dd\nDZsfo+U0Lnpd3OiQtLGJYQCHDyfQ0mJg69bC1ng868gpv+J0Pvq8kWYgpLdtT0/KUa+F19Hx0mtX\nIhiUy4r5BwD/ENBYmhr0ZZme7kRv73wgD3bQ2f7bb19g+nqSnyn8lEi7JfrWrctgYGAJZ89GmMIb\n7y/77GzYTAKyxU78+G6+eQmrVxNOOt3+O0nsEti9z8HBBbONIN1xXLig4vHHE6beTFBNI9zK/1lj\n63T897wnhRdfjMIwFGQywNe+puCxx1YVMHT4HRddFEhT7eLU1b6+dL6heAdyOQV79nSA5E3Eei30\n+fTaa1ciOCyLUEy9aMP09aUxMJArOdbqdMyg5kQ1vvnWc/Q8XoyYGxvEiSlDPe9i92lqKoLhYasB\ndSYjLpDiRa8o+4UvyrHOD2zfnsPWrZeErCKK0dE4cjlSbEWVFIO4/l7K/9lrwDKc6PWkXrSTZyza\ncZFjOGvtiEAaiiOv20MbezsvzuT6eOu1KxEcmt6wN5o2TK2xfbvdoLMoNQbOGxeWKUOFpABnRUH2\n2FbylRhAfkFwCzHwoQH2/P39EczNuc9vfl61KSnOzERw4EDpoS8KfrexY8c1vPRStGh7vaGhBfN6\nkjZ/KZw/HxV6xqIdlxetHbexqipAmU7FPHEZS68umt6wL4dy4nrZkQDuuYTOzqxZ1UkabxBZ3MHB\nRU/3acOGJUSjrXk9GmDfPqKYKAoxuLVtSybj+dAAK2Rlb4jNg/C1VYTDQDZLvHxyjPIdBqfdRrH2\nenz4aGTkCgAUhPvcOOmiXqduz1KxugiJ+kDTG/ZmLycud0fiJfzB/l3UQYmFU8iG6mfTpOfOnaRy\nk/2MKN7Ln99Lb87du69xKpT28fX1pc3FhJ7nf/2vEHp7CxOO/DVWVQN33EFawh06lBDqyPPX0svC\nS8flVjAmEgsThTjYcJ+IDsmGmXgjTUM7oVCrKeTmNFb2Z4n6QtMb9qATjPWGcnYkXroX8aXoLGPj\n5MmsyQlnIdp2s2EYRYFZjr9/fxu2bCGyAXy8160/J4Vo4Z6aijAJO3E7Pnoc+zlWmY0m2OeFv8a0\nh+rRo3HzvKyOPDtWogrZlWfntOHo0cKmGyycWD90zKJn2e14xZ4P9noeONBqttnL5UiFar01sJDw\nhqY37IC3+F49hTP8wMuOxGluxV56/u/HjsVtP4+PK0LD7mWcV64ADz5IWtE991wMAwOLZrw3nSZq\nimvXZosuWk5eJ9GJAWhj6f3723DXXVcdFxx6jmQyYcoSu4V2+PM6XctkMm52PkqlDCSTcQ/Pl8L9\n1z5fP8+nnx0raatnFWM56fpI1D+WhWEvhkZOsBbbkbjNrdhLz/99y5ZFnDkTNX+mZeUi8IsJP879\n+9vynyQe+uuvh6GqRr5jEnDkSAIf+chiUQ0SN/EvKsGbywHPPx/DmTPRgnvLzxEwHEM7bgu/87Xk\njXOhsWaRTCaQTsOxj6tf+GEz7d3bbjJcFKV4W0CJ+oU07Gj8BCsbVuDlY4uJa7m99KK/s0qL/f3t\nHsr+xTreW7Ys4rnnYrA487+yNadOpw2cPBlHOAzcdFPKpsQoOo+qkorWTIZ66vawjritXmF9AUBC\nN0Bh4tUtTDU29obwWg4OLmBsLG4WSrl1HCrsJxqMYfXDZjIMwrD5nd9ZEu5wJBoD0rCjORKsTsa0\n2NzcFgX2704/i+BloeQ58+vWZTAzE0UkQjRkLD62gRdfJJWebLx3aiqC/fvbmJgwy6m2OOoUoZBz\ncUxfn72+oJiHy5+bznH37mvCxfHoUW85HkI/BILoJ+o3tMg/J7Uw6o0aDvWCqakIpqedE/RBQxp2\nNEeC1cmYeplb0KEorwsl1VpPJuPYs6cd2Sxhndx66xJOn47lQxKFBTd8oVMoZCAcBojHzjfVtjzQ\nLVsWTfaK2/zcFi/RuSslEVGspR4/LifdGy/3s5x3IAiD3Mjh0GIQJegrPTdp2PPwm5SqN7gZ02Jz\nCzoU5Seuyyc6AWD9+jR27bpWwDdnedNsYQ4NGwAkxk6bZVAlxmiU5AdYRk+pujpO53ZaMK05ODOP\n3OicXsAbxU9+sjBP4OVYpbwDQRnkRg+HuqEWc5OGvUlQjsflJxRVjMfOjsdPXJeVw2UTrizfnB6P\nFDoRUa5o1B42YJtlqCryUrELtpeLNJsgiUIvSpVu18rNqPOLFlFfTKCv77LtM250Ti8oLFzKuYqT\nBYmgjFYzhEOdUIu5ScPeRCh11+HXw3bjsXvZlrNKhtQAsUbYLaZvFToRqeKRkcvCZKhoDPTlIkJb\n9vg4Nex+Ky+d5sgvWrST09hYwpxjpYzi9u0Gtm6tTmgxKKPVDOFQJ/AJehljl6gaSkmK8jx2LwVP\n9tCEf6lhe6GTWGddNBfWcPDNJogxavEcVvByrViDB1hKkiyFsZwaBKe5WWyl6oQWgzTIjR4OdQOf\noK80pGGX8AzeEPE8dpEHSv9LjSkfT5+fV7F7d/FOT05j8OMhsoZD1CA7yFho8YWkvBoEt7lVG81s\nkBsV0rBLeIbYM7T+zhtdtsye6oyL4unljKEcw8t/N8hYKO9pixYSp3FQlCsXUemwRj3TE+t5bNWA\nNOwSvuBmiHijyxomVmfcKZ4exBhYOL3cTr8PatEIKila6kIzOemf7ugX9UxPrOexVQvSsEsECt6A\nBdm6j4UXVUonUS63lz6IsIIfT9ttHqUuNOPjSsXpdfVMT6znsVULDWXYl/v2qtFQKaaDF4/M6eWu\nxkvv1dP2Mg82/s/+7IaNG42K0x3rmZ5Yz2OrFhrGsFdjeykRPCqRWJuYiJnl/IZhr0ilycoLF0JC\nAbFKvPTFBM/KiaGXElbo7zcqTh2sZ3piPY+tWmgYw16N7aVEY6CzM5uXDbB6jxaW+gPhMHDHHfZY\nvttLPzoaF/Z7dYMXwTMneFlkSt1hVIOpUs9smHoeWzXQMIa9GttLidrAa4iNNtA4dy4MRYGpRDg/\nr2JiQrX1U83lCGd87dqsMLzB/+7ee0P48pctfXgAnox7OaEdL56lDCtIlIKGMezV2F5KVB9eQw2k\nExHxyCloz1Rq7CKRVhgGhOJcbovH1FQEX/kKLXQiC8OxY3FPhr1cw+vkWbLjlc+9hF+UZdg1Tfsi\ngN8DkALwYwCf0nX9UhADE2G5b6+aEV49Xvo5WtikKIUCXGxBEMu+KbZ4TEzEmKIpsivcssVbKKYS\n8dzR0TiGh4lsQjjcVhY1VGJ5IlTm908B6NF1vRfADwHcU/6QJJYTiMdLmkq4ebz0c1R3JRJBgQBX\nX18au3dfw/btizZtdHbxSKcVk2HCHrulBaaw2Mc/voD5eRVTUxFPc6DnLcXwUh18eq6pqQiGhzuQ\nyZCwUioFjI4msG3bKs/jkZAoy2PXdf07zI+TAAbLG47EcoNXj7evjzSsSCYTAIhWuVdD6qXZyIkT\nGRw/vmiW/z/1VOXZV6KdxMRELJ8YtnYPvB69hEQxBBlj3wFgLMDjSVQY9VIX4DXERj53uaTjF1s8\n+vsNdHdfw4EDrVVjX4nCUBs2LCEabUUqRVQoFYWoQsrEqYQfKIbh3JAYADRNexrA2wR/GtZ1/an8\nZ4YB9AH4uK7rwgNqmrYTwE4A0HX9N1KkdbtnhMNhZDIZX9+pR9TLPCYnFQwMhJFKAdEocOJEBv39\n7s8Cj1LnMjmpYHxcwcaNhu9zVgp0LkFcF69wOhd7fQD4vlb18owFATkXO6LRKFCsIzo8GPZi0DTt\njwF8GsBHdF137tRrh/Haa6/5Ok9XVxfmRJ2TGwz1Mo8DB1rxxS+2me3ovvCFq75UFgHnuRRjoFjh\nB6PioQ6vOxJ2Luz3AFR0V1OJXVO9PGNBQM7FjjVr1gAeDHu5rJgBAP8TwH/0YdQl6gCV4kd7YaBU\nKtTBG+RSK5Xp55LJBNOarzLxdsn0kqgEyo2x/zWAGIBTmqYBwKSu6/+l7FFJVByVKrsuZrirtaAM\nDS2WJXkr6sUqk5cSjYJyWTHdxT8lUa+ohLfohYEyMnLZLN2v1IJCKJGlVSq79WKVkGgENEzlqURj\noNhOgPYsTacVnDkTxbp1mUCMO7+gDA4uChth+z2Wqhr5AqHgFiEJiUpDGnaJwOG2E6hUjN1pQSnl\n2PWkDlgvlFSJxoI07BJVRSVFrYIMLdVDUlN2ApIoFdKwS1QV5XrDQXmwftvm1QLN3Amonq5zM0Ia\ndomqo1RvOCgPlj2OqrZi27YF3HmngkuX6stDblbJXrkTqTzKFQGTkKgaiol5lXKcVErB6OgKDAyE\nkUwmAjl+UKC7my984WpTGb+g7qOEM6THLtEwCMqDpcfJ5QDDICJbqRRVjayvZi71EOsPGs26E6kn\nSMMu0TAIiq1Cj2NVlhqIRlEWRVLCO+qJddSskIZdoqEQlAdLlSIHBxcwMRHD5s1xdHeXTpGU8Idm\n3InUE6Rhl1jWoAamq6sFTaI1JSEhk6cSEhISzQZp2CUkJCSaDNKwS0gsI/A9ViWaEzLGLrHssFyr\nHmVh0PKBNOx1gOVqaGqB5WzcmlmiQMIOadhrjOVsaGqB5WzcZGHQ8oE07DXGcjY0tUCjG7dydney\nMGj5QBr2GqPRDU2joZGNWxC7O1kYtDwgDXuN0ciGplFRrnGrVU5E7u4kvEIa9jqA9KIaB7XMicjd\nnYRXSMMuIZGHF0+8ll6z3N1JeIU07BKe0OyUzMlJxZMnXmuvWe7uJLxAGnaJolgOlMzxccWTJy69\nZolGgDTsEkWxHJJ2Gzd6b7IhvWaJekdZhl3TtPsB/AGAHIB/BfDHuq6/FsTAJOoHtQ4/VAP9/Yb0\nxCWaBuV67F/UdX0PAGia9t8B/DmA/1L2qCTqCssl/CA9cYlmQVmGXdf1K8yPKwAY5Q1Hol4hjZ6E\nROOg7Bi7pmn7APwnAJcB3Fz2iCQkJCQkyoJiGO5OtqZpTwN4m+BPw7quP8V87h4ALbqu73U4zk4A\nOwFA1/XfSKVSvgYaDoeRyWR8face0SzzAORc6hVyLvWJIOYSjUYBQCn2uaKG3Ss0TbsRwDFd13s8\nfNx47TV/Odauri7MNUFTymaZByDnUq+Qc6lPBDGXNWvWAB4Me1kdlDRNezfz4x8AmC3neBISEhIS\n5aPcGPuDmqb9PyB0x1chGTESEhISNUe5rJhPBDUQCQkJCYlgEFiM3SckLVJCQkKiNFQ2xl4GFL//\nNE37finfq7d/zTIPOZf6/SfnUp//ApxLUdTKsEtISEhIVAjSsEtISEg0GRrJsB+s9QACQrPMA5Bz\nqVfIudQnqjaXWiVPJSQkJCQqhEby2CUkJCQkPKBhGm00k/a7pmlfBPB7AFIAfgzgU7quX6rtqEqD\npmlDAO4D8O8B/Kau61O1HZF/aJo2AOAhACqAr+m6/mCNh1QSNE17FMBWAP/qUdqjLqFp2g0AvgHg\nrSDU6IO6rj9U21GVBk3TWgCMA4iB2Nukk55WkGgkj/2Luq736rq+HsC3QLTfGxWnAPTout4L4IcA\n7qnxeMrBDICPgzy8DQdN01QAfwNgM4D3ALhd07T31HZUJePvAAzUehABIAPgc7quvwdAP4A/aeB7\nsgTgFl3X3wdgPYABTdP6K33ShvHYm0n7Xdf17zA/TgIYrNVYyoWu6y8DgKZptR5KqfhNAD/Sdf1f\nAEDTtCMgO8PzNR1VCdB1fVzTtF+v9TjKha7rvwTwy/z/X9U07WUAa9GY98QAcC3/YyT/r+K2q2EM\nO9C02u87AIzVehDLGGsB/Jz5+RcAPlijsUhwyC9U7wdwpsZDKRn5XeH3AXQD+Btd1ys+l7oy7MW0\n33VdHwYwnNd+/28AKh6rKhVedOw1TRsG2XY+Xs2x+YVXTX4JiSChaVorgCcAfIbbsTcUdF3PAliv\naVoHgH/QNK1H1/WZSp6zrgy7rusf9fjRxwEcQx0b9mJz0TTtj0ESXR/Jb9fqFj7uSyPiAoAbmJ/f\nnv+dRA2haVoExKg/ruv6k7UeTxDQdf2SpmnPgORBKmrYGyZ52kza73kWxv8E8Pu6ri/UejzLHP8E\n4N2apv1bTdOiAG4D8M0aj2lZQ9M0BcDXAbys6/r+Wo+nHGiatjrvqUPTtDiATaiC7WqYAiVN054A\nYNN+13W9IT0rTdN+BEJ/eiP/q0ld1xtSy17TtI8BOABgNYBLAM7qun5rbUflD5qmbQHw/4LQHR/V\ndX1fjYdUEjRNOwzgwwC6APx/APbquv71mg6qBGia9tsAngdwDuR9B4B7dV0/VrtRlQZN03oB/D3I\nsxUCoOu6/heVPm/DGHYJCQkJCW9omFCMhISEhIQ3SMMuISEh0WSQhl1CQkKiySANu4SEhESTQRp2\nCQkJiSaDNOwSEhISTQZp2CUkJCSaDNKwS0hISDQZ/n8uGFEQEdShcgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x119a73048>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(sn[:, 0], sn[:, 1], 'b.');"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x119974d68>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(rn.flatten(), bins=35)\n",
"plt.ylabel('frequency')\n",
"plt.xlabel('values');"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x119c6a390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(sn.flatten(), bins=35)\n",
"plt.ylabel('frequency')\n",
"plt.xlabel('values');"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nveuz7ob6+g1rkiRJNWZYkyRJqjHDmiRJGvXmzZvHbrvtxvHHH8+uu+7Kcccdx4033siUKVPYZZdd\nuOuuu1i4cCGf+tSn2H///dl777259tprVyz73ve+l3322Yd99tmH22+/HYCbb76Zgw46iKlTp7Lb\nbrtx3HHHURTNv/vl2DzaT5IktcXnPrcB993X1dR1TpiwmFNPfW618z388MN8+9vf5owzzuDd7343\nV155JVdeeSXXXXcdZ511FltvvTW77LILZ5xxBn/605/Yf//9ede73kV3dzeXXnop66yzDg8++CDH\nHnssP/7xjwG45557uP7669l0002ZMmUKt99+OzvttFNTX59hTZIkjQlbbrklb37zmwHYZptt2HXX\nXUkpse222zJv3jzmz5/P7Nmz+Y//+A8AFi1axOOPP8748eM55ZRTuO+++xg3bhwPPvjginXusMMO\nK+7zud122zFv3jzDmiRJGrkaGQFrlbXXXnvF9+PGjWOttdZa8f3SpUvp6OhgxowZvPGNb3zZcl/7\n2tfYZJNNmD17NsuWLeP1r3/9iueWrwOgo6ODJUuWNL1uw5qkWlk6dfKgl+04e1YTK5E01uy+++6c\nf/75nHbaaaSUuOeee9h+++157rnn2GyzzRg3bhyXX345S5cuHda6PMFAkiQJOP7441m8eDGTJk1i\njz324Mtf/jIARxxxBFdccQWTJk1i7ty5rLfeesNaV2rFWQttUjzxxBNNX2l3dze9vb1NX+9YYz8O\n3UFXH0RXVxeX7nNpu0tpqeEYWTvooI3Lvrz0yUFvS2PnPTkcRvtn5MKFC4ct4HR2drZkV+RQDPT6\nq+PcGrpariNrkiRJNeYxa5JGjUZH5YrffpsXgaVTjwE81k1SvTmyJkmSVGOGNUmSpBozrEmSJNWY\nYU2SJKnGDGuSJGlMOvvss/nrX/864HMzZ87klFNOGeaKBmZYkyRJY9I555yz0rBWJ166Q5IkjXoL\nFy7kmGOOYf78+SxbtowDDjiABQsW8IEPfIBXv/rVXHHFFcycOZOzzjqLDTfckAkTJrzsvp/tZFiT\nJEnD5nO3fI77/nBfU9c5YeMJnPrOU1c5z09/+lM23XRTvvOd7wDw3HPPMXPmTC6//HI22mgjFixY\nwFe/+lWuueYa1l9/fT7wgQ+w/fbbN7XOwXI3qCRJGvW23XZbbrzxRqZPn85tt93GBhts8LLn77rr\nLt75zney8cYbs9ZaazF58uBvfddswzKylnM+DzgAeCoitu/33AnAV4FNIqK3ajsZOBpYCnw8Iq4d\njjolSVJrrW4ErFXe8IY3cM0113D99dfz5S9/mV133bUtdQzGcI2sXQDs278x57wlsDfwaJ+2CcAh\nwHbVMt/KOXcMT5mSJGk0evLJJ1l33XV5//vfz0c/+lHuvvtuXvWqV/H8888DsOOOO3Lrrbfyxz/+\nkcWLF3P11Ve3ueKXDMvIWkTcmHPeaoCnvg6cCFzVp20KcFlELAIeyjnPBXYCbml5oZIkaVT6zW9+\nw2mnnUZKia6uLv7t3/6NO+64g8MOO4zx48dzxRVXcMIJJzB58mQ23HBDtttuu3aXvELbTjDIOU8B\nHo+IX+Wc+z61OXBrn+nHqraB1jENmAYQEXR3dze9zs7Ozpasd6yxH4euq6uLlNKo78cFbdjmaO/T\nVhkr78nhMNo/IxcsWEBn5/BFjoG2NWnSJCZNmvSytre97W1MmzZtxfRhhx3GYYcd1vR61l577SH9\nfNsS1nLO6wGfodwFOmgRMQOYUU0Wvb29Qy3tFbq7u2nFesca+3HoFi9eTFdXl/3YAvbp4PiebJ7R\n/hm5aNEiOjqG54imzs5OlixZMizbatSiRYte8fPt6elpePl2jay9AXgdsHxUbQvgzpzzTsDjwJZ9\n5t2iapMkSRpz2hLWIuJu4DXLp3PODwNvj4jenPMs4JKc8xlAD7A18PN21ClJktRuw3I2aM75UsoT\nBN6Uc34s53z0yuaNiHuBAO4DrgGOjYilw1GnJElS3QzX2aAfXM3zW/Wbng5Mb2VNkiRJI4F3MJAk\nSaoxw5okSRr1zj33XHbffXeOO+64dpeyxryRuyRJGlZLpzb3vpsdZ89a7TwXXnghl1122csumbFk\nyZJhvf7bYNW/QkmSpCH49Kc/zaOPPsrhhx/O448/zl577cWjjz7K5ptvzllnncW//uu/csstt/Di\niy9yxBFHcPjhh1MUBZ/97Ge58cYb6enpYa211uLggw/mgAMOGPb6DWuSJGlU+9KXvsQNN9zA5Zdf\nzvnnn8/s2bP5wQ9+wLrrrst3v/td1l9/fX70ox+xaNEiDjzwQHbffXfuueceHnjgAW644Qaefvpp\n9thjDw4++OC21G9YkyRJY8ree+/NuuuuC8DPfvYz7r//fn74wx8C8Oc//5mHHnqIW2+9lQMPPJCO\njg423XRTdtlll7bVa1iTJEljynrrrfey6dNOO42JEye+rG3OnDnDWNGqeTaoJEkas3bffXcuuugi\nFi9eDMADDzzAwoUL2XnnnZk1axZLly5lwYIF3HzzzW2r0ZE1SZI0Zh166KHMmzePfffdl6Io2Gij\njTjvvPPYb7/9uOmmm5g4cSKbb745b3vb29pWo2FNkiQNq0YutdFst912GwAnnHDCy9rHjRvHySef\nzMknn/yKZaZPf+lmSscff3xrC1wFd4NKkiTVmCNrkiRJq/GNb3yjbdt2ZE2SJKnGDGuSJKmliqJo\ndwltNdTXb1iTJEktNW7cOJYsWdLuMtpiyZIljBs3tLjlMWuS1AZDuZF1O86kk4ZinXXW4YUXXmDR\nokWklFq6rbXXXptFixa1dBuNKoqCcePGsc466wxpPYY1SZLUUimlFbd3arXu7m56e3uHZVvDxbAm\nacxzlEtSnXnMmiRJUo0Z1iRJkmrMsCZJklRjhjVJkqQaM6xJkiTVmGeDStIQDOVMUklqhCNrkiRJ\nNWZYkyRJqjHDmiRJUo0Z1iRJkmrMsCZJklRjhjVJkqQaM6xJkiTVmGFNkiSpxoblorg55/OAA4Cn\nImL7qu0rwHuAF4EHgKMi4tnquZOBo4GlwMcj4trhqFPSyw3lgq8dZ89qYiWSNHYN18jaBcC+/dpm\nA9tHxFuA3wEnA+ScJwCHANtVy3wr59wxTHVKkiTVyrCEtYi4Efhjv7brImJJNXkrsEX1/RTgsohY\nFBEPAXOBnYajTkmSpLqpyzFrHwZ+XH2/OTCvz3OPVW2SJEljTttv5J5zPgVYAlw8iGWnAdMAIoLu\n7u4mVwednZ0tWe9YYz8OXVdXFymlYe3HBUNYdrB1DmWbY0Vdfpfa8Z4crfyMbJ7R2JdtDWs55yMp\nTzzYMyKKqvlxYMs+s21Rtb1CRMwAZlSTRW9vb9Nr7O7uphXrHWvsx6FbvHgxXV1dI6YfR0qdI1Fd\n+nakvSfrzM/I5hkpfdnT09PwvG0LaznnfYETgd0jYmGfp2YBl+SczwB6gK2Bn7ehREmSpLYbrkt3\nXApMBLpzzo8Bn6c8+3NtYHbOGeDWiPhoRNybcw7gPsrdo8dGxNLhqFOSJKluhiWsRcQHB2g+dxXz\nTwemt64iSRq5Bnv9O699J41MdTkbVJIkSQMwrEmSJNWYYU2SJKnGDGuSJEk1ZliTJEmqMcOaJElS\njRnWJEmSasywJkmSVGOGNUmSpBozrEmSJNWYYU2SJKnGDGuSJEk1ZliTJEmqMcOaJElSjXW2uwBJ\no9PSqZPbXYIkjQqOrEmSJNWYI2vSGOAolySNXI6sSZIk1ZhhTZIkqcYMa5IkSTVmWJMkSaoxw5ok\nSVKNGdYkSZJqzLAmSZJUY15nTZLGiKFcb6/j7FlNrETSmnBkTZIkqcYMa5IkSTVmWJMkSaoxw5ok\nSVKNGdYkSZJqzLAmSZJUY4Y1SZKkGjOsSZIk1diwXBQ353wecADwVERsX7VtBMwEtgIeBnJEPFM9\ndzJwNLAU+HhEXDscdUqSJNXNcI2sXQDs26/tJGBORGwNzKmmyTlPAA4BtquW+VbOuWOY6pQkSaqV\nYQlrEXEj8Md+zVOAC6vvLwQO7NN+WUQsioiHgLnATsNRpyRJUt2085i18RExv/r+SWB89f3mwLw+\n8z1WtUmSJI05tbiRe0QUOediTZfLOU8DplXroLu7u+m1dXZ2tmS9Y439OHRdXV2klAbVjwtaUI/G\nloHed0N5T+rl/IxsntHYl+0MawtyzptFxPyc82bAU1X748CWfebbomp7hYiYAcyoJove3t6mF9nd\n3U0r1jvW2I9Dt3jxYrq6uuxHtcVA7zvfk83jZ2TzjJS+7OnpaXjedoa1WcARwOnV16v6tF+Scz4D\n6AG2Bn7elgolSZLabLgu3XEpMBHozjk/BnyeMqRFzvlo4BEgA0TEvTnnAO4DlgDHRsTS4ahTkiSp\nboYlrEXEB1fy1J4rmX86ML11FUmSJI0M3sFAkiSpxgxrkiRJNWZYkyRJqjHDmiRJUo0Z1iRJkmrM\nsCZJklRjhjVJkqQaM6xJkiTVmGFNkiSpxgxrkiRJNWZYkyRJqjHDmiRJUo0Z1iRJkmrMsCZJklRj\nDYW1nHNHqwuRJEnSKzU6sjY/53xmzvntLa1GkiRJL9PZ4Hz7Ah8C/jPn/CzwHeA7ETGvZZVJkiSp\nsbAWEXcCd+ac/xewN2VwuyfnfCdlcJsZEX9pXZmSJElj0xqdYBARy4D7gd8ATwObA4cB83LOhze/\nPEmSpLGtoZG1nPOrgQwcDrwZCOAfI+Lm6vl3ANdRjrJJkiSpSRo9Zu0x4KfA/wGuiohFfZ+MiNtz\nzlc1uzhJkqSxrtGw9vqIWLCqGSLiyKGXI0mSpL4aPWbtqGpX5wo5551yzie2oCZJkiRVGg1rnwDu\n69d2H3B8c8uRJElSX43uBl0LWNyv7UVgneaWI41+S6dOHtyCU9ZqbiGSpBGh0ZG1O4B/6tf2UeDO\n5pYjSZKkvhodWfskMLu6ltoDwBuATYG9WlWYJEmSGhxZi4h7gW2ArwK3A18B3hQR/Y9jkyRJUhM1\nOrJGRDwPXNrCWiRJktRPo3cweB0wHdgBeFXf5yLiv7WgLkmSJNH4yNollMeqnQAsbF05kiRJ6qvR\nsLYdsEt1I3dJkiQNk0Yv3XEjsGMrC5EkSdIrNTqy9jBwTc75B8CTfZ+IiM8NpYCc8yeBjwAFcDdw\nFLAeMBPYqtp2johnhrIdaaQrfns3LwJLrxjkRXUlSSNSoyNrfwNcDXQBW/Z7DFrOeXPg48DbI2J7\noAM4BDgJmBMRWwNzqmlJkqQxp6GRtYg4qsU1rJtzXkw5ovYEcDIwsXr+QuAG4NMtrEGSJKmWGh1Z\nI+e8bc75n3PO/15Nvynn/JahbDwiHqe80O6jwHzgTxFxHTA+IuZXsz0JjB/KdiRJkkaqRq+z9gHg\nW8D3gEOB44D1gdOBSYPdeM751cAU4HXAs8DlOecP9Z0nIoqcc7GS5acB06r56O7uHmwpK9XZ2dmS\n9Y419uNLFrS7AGkQBvr97erqIqXk73YT+BnZPKOxLxs9weBUYFJE/CrnfHDV9ivgrUPc/iTgoYh4\nGiDn/H3g74EFOefNImJ+znkz4KmBFo6IGcCMarLo7e0dYjmv1N3dTSvWO9bYj9LINtDv7+LFi+nq\n6vJ3uwn8jGyekdKXPT09Dc/baFh7DfDr6vuiz9cBR7zWwKPAzjnn9YC/AnsCvwD+AhxBOXJ3BHDV\nELcjSRqCpVNfeRZyse1vV3uGcsfZs1pYlTQ2NHrM2h3A4f3aDgF+PpSNR8RtwBXAnZSX7RhHOVJ2\nOrBXzvn3lKNvpw9lO5IkSSNVoyNrHweuyzkfDfxNzvlaYBtg76EWEBGfBz7fr3kR5SibJEnSmNbQ\nyFpE/AbYFvgm8FngfOC/R8TvW1ibJEnSmNfoyBoRsRCIFtYiSZKkfhq9dMf/YyUnE0TEbk2tSJIk\nSSs0OrJ2Tr/pTYGjge82txxJkiT11ejtpi7s35Zz/h7lsWunNrsoSZIklRq+3dQAHgeGdLspSZIk\nrVqjx6x9uF/TesD7gFubXpEkSZJWaPSYtf4XxP0LcDPw9eaWI0mSpL4aPWZtj1YXIkmSpFdqdDfo\n6xuZLyIeHFo5kiRJ6qvR3aBzeek6a4mXX3MtVV8LoKNJdUmSJInGw9rRlDdU/wLwCPBa4HPAnIi4\noCWVSZIkqeGw9kVg64j4azX9+5zzMcDvgAtaUZgkSZIav87aOGCrfm2vxd2ekiRJLdXoyNrXgetz\nzucD84AtgSPx0h2SJEkt1dDIWkR8BTgKGA9Mprw36Icj4sstrE2SJGnMa3RkjYi4BrimhbVIkiSp\nn0avs7Y25dmfHwQ2jogNc857A9tExL+3skBJkqSxbE2OWdscOAz4cdV2b9VuWJMkDWjp1MmDXrbj\n7FlNrEQauRo9G/S9wKERcQuwDCAiHqcMcJIkSWqRRsPai/Qbhcs5bwL8oekVSZIkaYVGw9rlwIU5\n59cB5Jw3o9z9eVmrCpMkSVLjYe0zwEPA3cDfAr8HngD+pUV1SZIkiQZOMMg5jwN2BU6KiE9Wuz97\nI6JYzaKSJEkaotWOrEXEMuCqiFhUTT9tUJMkSRoeje4GvTHnvHNLK5EkSdIrNHqdtUeAH+ecr6K8\nN+iKkbWI+FwrCpMkSdIqRtZyzsf1mdwQuJIypG1BeSP35Q9JkiS1yKpG1qbz0t0J3hMRGwxDPZIk\nSepjVWHtwZzz1yhvK9WVcz4KSP1niojzWlWcJEnSWLeqsHYwcCLlzdu7gH8cYJ4CMKxJkiS1yErD\nWkT8DvgIQM55TkTsOWxVSZIkCWjw0h0GNUmSpPZo9NIdLZNz/lvgHGB7yt2qHwZ+C8wEtgIeBnJE\nPNOmEjWKLZ06ud0lSJK0So1eFLeVzgSuiYhtgbcC9wMnAXMiYmtgTjUtSZI05rQ1rOWcNwR2A84F\niIgXI+JZYApwYTXbhcCB7alQkiSpvdq9G/R1wNPA+TnntwJ3AJ8AxkfE/GqeJ4HxbapPkiSprdod\n1jqBvwM+FhG35ZzPpN8uz4gocs4D3jg+5zwNmFbNR3d3d/ML7OxsyXrHmrr244J2FyBpper4mdEq\ndf2MHIlGY1+2O6w9BjwWEbdV01dQhrUFOefNImJ+znkz4KmBFo6IGcCMarLo7e1teoHd3d20Yr1j\njf0oaU2Npc8MPyObZ6T0ZU9PT8PztvWYtYh4EpiXc35T1bQncB8wCziiajsCuKoN5UmSJLVdu0fW\nAD4GXJxzXgt4EDiKMkRGzvlo4BEgt7E+SZKktml7WIuIXwJvH+ApL8QrSZLGvDpcZ02SJEkrYViT\nJEmqMcOaJElSjRnWJEmSasywJkmSVGOGNUmSpBozrEmSJNWYYU2SJKnGDGuSJEk1ZliTJEmqMcOa\nJElSjRngdckCAAALv0lEQVTWJEmSasywJkmSVGOGNUmSpBozrEmSJNWYYU2SJKnGDGuSJEk1ZliT\nJEmqsc52FyBJ0kCWTp08qOU6zp7V5Eqk9nJkTZIkqcYMa5IkSTVmWJMkSaoxw5okSVKNGdYkSZJq\nzLAmSZJUY4Y1SZKkGjOsSZIk1ZhhTZIkqcYMa5IkSTVmWJMkSaoxw5okSVKNGdYkSZJqzLAmSZJU\nY53tLgAg59wB/AJ4PCIOyDlvBMwEtgIeBnJEPNO+CiVJI8XSqZMHvWzH2bOaWInUHHUZWfsEcH+f\n6ZOAORGxNTCnmpYkSRpz2h7Wcs5bAPsD5/RpngJcWH1/IXDgcNclSZJUB20Pa8A3gBOBZX3axkfE\n/Or7J4Hxw16VJElSDbT1mLWc8wHAUxFxR8554kDzRESRcy5Wsvw0YFo1H93d3U2vsbOzsyXrHWvq\n2o8L2l2ApFpp1+dUXT8jR6LR2JftPsFgF2ByzvndwDrABjnn7wILcs6bRcT8nPNmwFMDLRwRM4AZ\n1WTR29vb9AK7u7tpxXrHGvtR0kjQrs8pPyObZ6T0ZU9PT8PztnU3aEScHBFbRMRWwCHA9RHxIWAW\ncEQ12xHAVW0qUZIkqa3qcMzaQE4H9so5/x6YVE1LkiSNOe3eDbpCRNwA3FB9/wdgz3bWI0kaewZ7\njTavz6ZWquvImiRJkjCsSZIk1ZphTZIkqcYMa5IkSTVmWJMkSaoxw5okSVKNGdYkSZJqzLAmSZJU\nY4Y1SZKkGjOsSZIk1ZhhTZIkqcYMa5IkSTVmWJMkSaoxw5okSVKNGdYkSZJqzLAmSZJUY4Y1SZKk\nGjOsSZIk1ZhhTZIkqcYMa5IkSTXW2e4CJEka6ZZOnTzoZTvOntXESjQaObImSZJUY46sacQbyn+0\nkiTVnSNrkiRJNWZYkyRJqjHDmiRJUo0Z1iRJkmrMsCZJklRjhjVJkqQaM6xJkiTVmGFNkiSpxrwo\nrmrDi9tKkvRKjqxJkiTVWFtH1nLOWwIXAeOBApgREWfmnDcCZgJbAQ8DOSKeaVedkiRJ7dLukbUl\nwAkRMQHYGTg25zwBOAmYExFbA3OqaUmSpDGnrSNrETEfmF99/+ec8/3A5sAUYGI124XADcCn21Ci\n1tDKjjtbMMx1SJI0WrR7ZG2FnPNWwI7AbcD4KsgBPEm5m1SSJGnMqcXZoDnnVwHfA46PiOdyziue\ni4gi51ysZLlpwLRqPrq7u5teW2dnZ0vWO1o5giZJa6a7u9u/NU00Gvuy7WEt59xFGdQujojvV80L\ncs6bRcT8nPNmwFMDLRsRM4AZ1WTR29vb9Pq6u7tpxXolSQLo7e31b00TjZS+7OnpaXjetu4GzTkn\n4Fzg/og4o89Ts4Ajqu+PAK4a7tokSZLqoN0ja7sAhwN355x/WbV9BjgdiJzz0cAjQF7J8pIkSaNa\nu88G/S8greTpPYezFkmSpDqqzdmgkiRJeiXDmiRJUo0Z1iRJkmqs3ScYSJI0pi2dOnlQ16jsOHtW\n02tRPTmyJkmSVGOGNUmSpBozrEmSJNWYYU2SJKnGDGuSJEk1ZliTJEmqMcOaJElSjRnWJEmSasyL\n4kqSNAItnTp5UMt5Md2Rx5E1SZKkGnNkbRQb7H9dkiSpPhxZkyRJqjHDmiRJUo0Z1iRJkmrMY9Yk\nSRpDhnI8s2eStocja5IkSTXmyNow8T8ZSZI0GI6sSZIk1ZhhTZIkqcYMa5IkSTXmMWsjgHcikCRp\n7HJkTZIkqcYMa5IkSTVmWJMkSaoxj1lbQx4/JkmShpMja5IkSTVmWJMkSaoxd4NKkqSW8paLQ+PI\nmiRJUo3VemQt57wvcCbQAZwTEae3uSRJksasdpxkt6bbXNCEbdZtNK+2I2s55w7gm8B+wATggznn\nCe2tSpIkaXjVNqwBOwFzI+LBiHgRuAyY0uaaJEmShlWdw9rmwLw+049VbZIkSWNGrY9ZW52c8zRg\nGkBE0NPT05LtvGy9P/xFS7Yhrc4t7S5gFHmpL/19Hgrfk9LwqPPI2uPAln2mt6jaVoiIGRHx9oh4\nO5Ba8cg539GqdY+lh/1oP9btYV/aj3V62I9jti8bUueRtduBrXPOr6MMaYcAh7a3JEmSpOFV25G1\niFgCHAdcC9xfNsW97a1KkiRpeNV5ZI2I+BHwozaXMaPN2x8t7MfmsB+bx75sDvuxOezH5hl1fZmK\nomh3DZIkSVqJ2u4GlSRJUs13g9ZBzvmLlBfjXQY8BRwZEU+0t6qRKef8FeA9wIvAA8BREfFse6sa\neXLOHwC+ALwZ2CkivP7EGvA2ds2Rcz4POAB4KiK2b3c9I1XOeUvgImA8UAAzIuLM9lY18uSc1wFu\nBNamzDZXRMTn21tV8ziytnpfiYi3RMQOwNXA59pd0Ag2G9g+It4C/A44uc31jFT3AO+j/GDSGvA2\ndk11AbBvu4sYBZYAJ0TEBGBn4Fjfk4OyCPiHiHgrsAOwb8555zbX1DSOrK1GRDzXZ/JvKP/z0SBE\nxHV9Jm8FDmpXLSNZRNwPkHNudykj0Yrb2AHknJffxu6+tlY1AkXEjTnnrdpdx0gXEfOB+dX3f845\n3095tx7fk2sgIgrg+Wqyq3qMmr/XhrUG5JynA/8I/AnYo83ljBYfBma2uwiNOQPdxu5/tKkW6WWq\n8LsjcFubSxmRqpHzO4A3At+MiFHTj4Y1IOf8E2DTAZ46JSKuiohTgFNyzidTXvtt1OwHb7bV9WU1\nzymUQ/8XD2dtI0kj/Shp9Mg5vwr4HnB8vz06alBELAV2yDn/LfCDnPP2EXFPu+tqBsMaEBGTGpz1\nYsrrvhnWVmJ1fZlzPpLyoOQ9q2FrDWAN3pNaM6u9jZ003HLOXZRB7eKI+H676xnpIuLZnPNPKY+p\nHBVhzRMMViPnvHWfySnAb9pVy0hXnYV3IjA5Iha2ux6NSStuY5dzXovyNnaz2lyTxrCccwLOBe6P\niDPaXc9IlXPepBpRI+e8LrAXo+jvtRfFXY2c8/eAN1FeuuMR4KMR4X/ig5Bznkt5WvUfqqZbI+Kj\nbSxpRMo5vxc4C9gEeBb4ZUTs096qRo6c87uBb1BeuuO8iJje5pJGpJzzpcBEoBtYAHw+Is5ta1Ej\nUM55V+D/AXdT/p0B+Ex1Bx81KOf8FuBCyt/rcZS3qDy1vVU1j2FNkiSpxtwNKkmSVGOGNUmSpBoz\nrEmSJNWYYU2SJKnGDGuSJEk1ZliTpErOeWLO+bF21yFJfRnWJEmSasywJkmSVGPeG1TSqJNz/jTw\njog4qE/bmUAC7qK87dkWwNPAlyLi2ytZTwFsHRFzq+kLgMci4rPV9AHAacBWwH2Udzj5dZ8aPg5s\nADwB/FNEzGn6i5U06jmyJmk0ugx4d855fYCccweQgUuAp4ADKEPUUcDXc85/t6YbyDnvCJwHHANs\nDHwbmJVzXjvn/CbgOMrAuD6wD/DwUF+UpLHJkTVJo05EPJJzvhN4L3AR8A/Awoi4td+sP8s5Xwe8\nC7hzDTczDfh2RNxWTV+Yc/4MsDPwOOV9cCfknJ+OiIcH+VIkybAmadS6BPggZVg7tJom57wf8Hlg\nG8q9C+tR3kR7Tb0WOCLn/LE+bWsBPRHxs5zz8cAXgO1yztcCn4qIJwb5WiSNYYY1SaPV5cDXcs5b\nUI6wvTPnvDbwPeAfgasiYnHO+UrKY9kGspAyzC23KbD80h7zgOkRMX2gBSPiEuCSnPMGlLtIvwQc\nPsTXJGkMMqxJGpUi4umc8w3A+cBDEXF/dQzb2pQnFiypRtn2Bu5ZyWp+CRyac74X2AvYHfhF9dzZ\nwA9yzj8Bfk4Z6iYCNwI9wObATcALwF+Bjma/RkljgycYSBrNLgEmVV+JiD9TnqEZwDOUu0dnrWL5\nTwDvAZ4FDgOuXP5ERPwCmAr8e7WuucCR1dNrA6cDvcCTwGuAk5vzkiSNNakoinbXIEmSpJVwZE2S\nJKnGDGuSJEk1ZliTJEmqMcOaJElSjRnWJEmSasywJkmSVGOGNUmSpBozrEmSJNWYYU2SJKnG/j+B\nKYGUNwsxagAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x119c6a470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10, 6))\n",
"plt.hist(sn.flatten(), bins=35, label='freq')\n",
"plt.axvline(sn.mean(), color='b', label='mean')\n",
"plt.axvline(-sn.std(), color='g', label='std')\n",
"plt.axvline(sn.std(), color='g')\n",
"plt.ylabel('frequency')\n",
"plt.legend(loc=0)\n",
"plt.xlabel('values')\n",
"plt.title('standard normally dist numbers')\n",
"plt.savefig('plot.pdf');"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"np.random.seed(100)"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"rw = np.random.standard_normal((100, 5))\n",
"rw[0] = 0.0\n",
"rw = rw.cumsum(axis=0) + 100"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 100. , 100. , 100. , 100. , 100. ],\n",
" [ 100.51, 100.22, 98.93, 99.81, 100.26],\n",
" [ 100.06, 100.66, 98.35, 100.63, 100.93],\n",
" [ 99.95, 100.13, 99.38, 100.19, 99.81],\n",
" [ 101.57, 101.67, 99.12, 99.35, 99.99]])"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rw.round(2)[:5]"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nLQQEBMyofqetrY3PPvuMxsZG4uLiWLZs2aRjtVotmZmZnD17ltbWVrdP+7or/f393L17dzSt0tfX\nR3NzM01NTXR1dREfH8+yZcuEI+tEJEnCZDItigjLYqO7u5vjx49jMBjYvXs3ycnJSJI0Klbb0NAw\n2inEHXHf7SSCRxZp404ICEI5d3LG565cuZL4+Hh27drlMumC2SBJEvv27WNwcJCTJ0+O2T3pDJqa\nmrDb7RM20/bz8+OZZ54hLCyMEydOcOXKlXG7EVtbW3nvvfc4evQoFy5ccGhNm83GpUuXOHr0KJ2d\nnezevZv9+/dP++M+csOcbcNgwbCMh6Iooylab29vli5dyoYNG9i7dy9xcXHCyZoHTCYTbW1tDAwM\nuNqUh4qRzhFms5nly5ePfnbDwsKQJImGhgZXmjctwtESuB2SRoO0ZTfcuIba1jyjc7VaLfv375+3\nFNh8EhISwrZt26ipqRknwjhXRlr8TORoARgMBp588klWrFhBbm4un376KVarle7ubk6fPs3Ro0dp\nbGwkODiYW7duYbPZplyvoaGBN954g7y8PJKSknjhhRfG3CCnwtfXF29vb7e/eborqqpSUlKCyWQi\nODjY1eY8UozcdxobG11sycNDX18fpaWlLF++HF9f3zHHPDw8MBqNbn+vEKlDgVsibdmD+tEx1PMn\nkZ583tXmLBgrV66krq6OnJwcTCaT02o9amtrx9RnTYRWq2XXrl0EBgZy8eJFWltb6e3txW63k5aW\nxrp162hsbOT999+nqqqK+Pj4CedRFIUTJ04A8NRTT824yH4kBePuN093paGhgY6ODh5//HFXm/LI\nERYWhizLNDQ0sHTpUleb81BQUFCAoiiTdvYwmUyUlpaiKIrbar65p1WCRx4pOARS1qBeOI06TfTk\nYWJkN2BQUBAnTpygt7d3znOO6Gc5sotvZPfml770Jfr7+0lMTOT555/nsccew9PTk5iYGLy8vCgr\nK5t0jqqqKrq7u9myZcusdzJGRETQ09MjRCFnQUlJCTqdblJHWDB/aLVa8ZDgRAYHBykqKiIhIWHS\njhERERHYbDZaW1sX2DrHEY6WwG2Rt+2DrnYocm4azd3R6XTs378fm83Gp59+it1un9N8U9VnTcay\nZct4+eWXeeaZZ8bc4GRZJikpiaqqqknrUIqKivD29p6y6H06RlIw4gdrZgwNDXH79m2SkpKEVIOL\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x119dbd390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10, 6))\n",
"plt.plot(rw);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Black-Scholes difference equation for static economy:\n",
"\n",
"$$\n",
"S_T = S_0 \\exp \\left(\\left(r - \\frac{1}{2} \\sigma^2\\right) T + \\sigma \\sqrt{T} z \\right)\n",
"$$\n",
"\n",
"$z$ here a standard normally distribute variable."
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"S0 = 100\n",
"r = 0.05\n",
"sigma = 0.2\n",
"T = 1.0"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"z = np.random.standard_normal(10000)"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ST = S0 * np.exp((r - 0.5 * sigma ** 2) * T +\n",
" sigma * math.sqrt(T) * z)"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"m = ST.mean()"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nRK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a488320>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(ST, bins=35)\n",
"plt.axvline(m, color='b');"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"105.19059579029771"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"105.12710963760242"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"S0 * math.exp(r * T)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"h = np.maximum(ST - 105, 0)"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nBCSpYv8P/dfpeLDmkhsAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a68bac8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(h, bins=35);"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"C0 = math.exp(-r * T) * h.mean()"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8.1187328625028368"
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"C0"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Structured Array"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('', 'Class', 'Sex', 'Age', 'Survived', 'Freq'),\n",
" ('1', '1st', 'Male', 'Child', 'No', '0'),\n",
" ('2', '2nd', 'Male', 'Child', 'No', '0'),\n",
" ('3', '3rd', 'Male', 'Child', 'No', '35'),\n",
" ('4', 'Crew', 'Male', 'Child', 'No', '0'),\n",
" ('5', '1st', 'Female', 'Child', 'No', '0'),\n",
" ('6', '2nd', 'Female', 'Child', 'No', '0'),\n",
" ('7', '3rd', 'Female', 'Child', 'No', '17'),\n",
" ('8', 'Crew', 'Female', 'Child', 'No', '0'),\n",
" ('9', '1st', 'Male', 'Adult', 'No', '118'),\n",
" ('10', '2nd', 'Male', 'Adult', 'No', '154'),\n",
" ('11', '3rd', 'Male', 'Adult', 'No', '387'),\n",
" ('12', 'Crew', 'Male', 'Adult', 'No', '670'),\n",
" ('13', '1st', 'Female', 'Adult', 'No', '4'),\n",
" ('14', '2nd', 'Female', 'Adult', 'No', '13'),\n",
" ('15', '3rd', 'Female', 'Adult', 'No', '89'),\n",
" ('16', 'Crew', 'Female', 'Adult', 'No', '3'),\n",
" ('17', '1st', 'Male', 'Child', 'Yes', '5'),\n",
" ('18', '2nd', 'Male', 'Child', 'Yes', '11'),\n",
" ('19', '3rd', 'Male', 'Child', 'Yes', '13'),\n",
" ('20', 'Crew', 'Male', 'Child', 'Yes', '0'),\n",
" ('21', '1st', 'Female', 'Child', 'Yes', '1'),\n",
" ('22', '2nd', 'Female', 'Child', 'Yes', '13'),\n",
" ('23', '3rd', 'Female', 'Child', 'Yes', '14'),\n",
" ('24', 'Crew', 'Female', 'Child', 'Yes', '0'),\n",
" ('25', '1st', 'Male', 'Adult', 'Yes', '57'),\n",
" ('26', '2nd', 'Male', 'Adult', 'Yes', '14'),\n",
" ('27', '3rd', 'Male', 'Adult', 'Yes', '75'),\n",
" ('28', 'Crew', 'Male', 'Adult', 'Yes', '192'),\n",
" ('29', '1st', 'Female', 'Adult', 'Yes', '140'),\n",
" ('30', '2nd', 'Female', 'Adult', 'Yes', '80'),\n",
" ('31', '3rd', 'Female', 'Adult', 'Yes', '76'),\n",
" ('32', 'Crew', 'Female', 'Adult', 'Yes', '20')]"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype('float64')"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"h.dtype"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype('<U8')"
]
},
"execution_count": 103,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.array(raw).dtype"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['int', 'O', 'O', 'O', 'O', 'int']"
]
},
"execution_count": 104,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'int O O O O int'.split()"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"dt = np.dtype({'names': raw[0],\n",
" 'formats': 'int O O O O int'.split()})"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype([('', '<i8'), ('Class', 'O'), ('Sex', 'O'), ('Age', 'O'), ('Survived', 'O'), ('Freq', '<i8')])"
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = np.array(raw[1:], dtype=dt)"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([( 1, '1st', 'Male', 'Child', 'No', 0),\n",
" ( 2, '2nd', 'Male', 'Child', 'No', 0),\n",
" ( 3, '3rd', 'Male', 'Child', 'No', 35),\n",
" ( 4, 'Crew', 'Male', 'Child', 'No', 0),\n",
" ( 5, '1st', 'Female', 'Child', 'No', 0),\n",
" ( 6, '2nd', 'Female', 'Child', 'No', 0),\n",
" ( 7, '3rd', 'Female', 'Child', 'No', 17),\n",
" ( 8, 'Crew', 'Female', 'Child', 'No', 0),\n",
" ( 9, '1st', 'Male', 'Adult', 'No', 118),\n",
" (10, '2nd', 'Male', 'Adult', 'No', 154),\n",
" (11, '3rd', 'Male', 'Adult', 'No', 387),\n",
" (12, 'Crew', 'Male', 'Adult', 'No', 670),\n",
" (13, '1st', 'Female', 'Adult', 'No', 4),\n",
" (14, '2nd', 'Female', 'Adult', 'No', 13),\n",
" (15, '3rd', 'Female', 'Adult', 'No', 89),\n",
" (16, 'Crew', 'Female', 'Adult', 'No', 3),\n",
" (17, '1st', 'Male', 'Child', 'Yes', 5),\n",
" (18, '2nd', 'Male', 'Child', 'Yes', 11),\n",
" (19, '3rd', 'Male', 'Child', 'Yes', 13),\n",
" (20, 'Crew', 'Male', 'Child', 'Yes', 0),\n",
" (21, '1st', 'Female', 'Child', 'Yes', 1),\n",
" (22, '2nd', 'Female', 'Child', 'Yes', 13),\n",
" (23, '3rd', 'Female', 'Child', 'Yes', 14),\n",
" (24, 'Crew', 'Female', 'Child', 'Yes', 0),\n",
" (25, '1st', 'Male', 'Adult', 'Yes', 57),\n",
" (26, '2nd', 'Male', 'Adult', 'Yes', 14),\n",
" (27, '3rd', 'Male', 'Adult', 'Yes', 75),\n",
" (28, 'Crew', 'Male', 'Adult', 'Yes', 192),\n",
" (29, '1st', 'Female', 'Adult', 'Yes', 140),\n",
" (30, '2nd', 'Female', 'Adult', 'Yes', 80),\n",
" (31, '3rd', 'Female', 'Adult', 'Yes', 76),\n",
" (32, 'Crew', 'Female', 'Adult', 'Yes', 20)], \n",
" dtype=[('', '<i8'), ('Class', 'O'), ('Sex', 'O'), ('Age', 'O'), ('Survived', 'O'), ('Freq', '<i8')])"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Child', 'Child', 'Child', 'Child', 'Child'], dtype=object)"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Age'][:5]"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2201"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Freq'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"68.78125"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Freq'].mean()"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"470"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[data['Sex'] == 'Female']['Freq'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"344"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[(data['Sex'] == 'Female') &\n",
" (data['Survived'] == 'Yes')]['Freq'].sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## pandas"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv(filename, index_col=0)"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"pandas.core.frame.DataFrame"
]
},
"execution_count": 116,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(df)"
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Int64Index: 32 entries, 1 to 32\n",
"Data columns (total 5 columns):\n",
"Class 32 non-null object\n",
"Sex 32 non-null object\n",
"Age 32 non-null object\n",
"Survived 32 non-null object\n",
"Freq 32 non-null int64\n",
"dtypes: int64(1), object(4)\n",
"memory usage: 1.5+ KB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Class</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>Survived</th>\n",
" <th>Freq</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1st</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2nd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3rd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Crew</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1st</td>\n",
" <td>Female</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Class Sex Age Survived Freq\n",
"1 1st Male Child No 0\n",
"2 2nd Male Child No 0\n",
"3 3rd Male Child No 35\n",
"4 Crew Male Child No 0\n",
"5 1st Female Child No 0"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2201"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Freq'].sum()"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Class object\n",
"Sex object\n",
"Age object\n",
"Survived object\n",
"Freq int64\n",
"dtype: object"
]
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Freq</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Sex</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Female</th>\n",
" <td>470</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Male</th>\n",
" <td>1731</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Freq\n",
"Sex \n",
"Female 470\n",
"Male 1731"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby('Sex').sum()"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>Freq</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Sex</th>\n",
" <th>Survived</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Female</th>\n",
" <th>No</th>\n",
" <td>126</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>344</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Male</th>\n",
" <th>No</th>\n",
" <td>1364</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>367</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Freq\n",
"Sex Survived \n",
"Female No 126\n",
" Yes 344\n",
"Male No 1364\n",
" Yes 367"
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby(['Sex', 'Survived']).sum()"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Class', 'Sex', 'Age', 'Survived', 'Freq'], dtype=object)"
]
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns.values"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>Freq</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Class</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>Survived</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"8\" valign=\"top\">1st</th>\n",
" <th rowspan=\"4\" valign=\"top\">Female</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>140</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Male</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>57</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"8\" valign=\"top\">2nd</th>\n",
" <th rowspan=\"4\" valign=\"top\">Female</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Male</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>154</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>11</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"8\" valign=\"top\">3rd</th>\n",
" <th rowspan=\"4\" valign=\"top\">Female</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>76</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Male</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>387</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"8\" valign=\"top\">Crew</th>\n",
" <th rowspan=\"4\" valign=\"top\">Female</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>20</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Male</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>670</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>192</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Freq\n",
"Class Sex Age Survived \n",
"1st Female Adult No 4\n",
" Yes 140\n",
" Child No 0\n",
" Yes 1\n",
" Male Adult No 118\n",
" Yes 57\n",
" Child No 0\n",
" Yes 5\n",
"2nd Female Adult No 13\n",
" Yes 80\n",
" Child No 0\n",
" Yes 13\n",
" Male Adult No 154\n",
" Yes 14\n",
" Child No 0\n",
" Yes 11\n",
"3rd Female Adult No 89\n",
" Yes 76\n",
" Child No 17\n",
" Yes 14\n",
" Male Adult No 387\n",
" Yes 75\n",
" Child No 35\n",
" Yes 13\n",
"Crew Female Adult No 3\n",
" Yes 20\n",
" Child No 0\n",
" Yes 0\n",
" Male Adult No 670\n",
" Yes 192\n",
" Child No 0\n",
" Yes 0"
]
},
"execution_count": 124,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby(list(df.columns.values[:-1])).sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Summary"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv(filename, index_col=0)"
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>Freq</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Class</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>Survived</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"8\" valign=\"top\">1st</th>\n",
" <th rowspan=\"4\" valign=\"top\">Female</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>140</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Male</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>57</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"8\" valign=\"top\">2nd</th>\n",
" <th rowspan=\"4\" valign=\"top\">Female</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Male</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>154</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>11</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"8\" valign=\"top\">3rd</th>\n",
" <th rowspan=\"4\" valign=\"top\">Female</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>76</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Male</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>387</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"8\" valign=\"top\">Crew</th>\n",
" <th rowspan=\"4\" valign=\"top\">Female</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>20</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Male</th>\n",
" <th rowspan=\"2\" valign=\"top\">Adult</th>\n",
" <th>No</th>\n",
" <td>670</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>192</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Child</th>\n",
" <th>No</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Freq\n",
"Class Sex Age Survived \n",
"1st Female Adult No 4\n",
" Yes 140\n",
" Child No 0\n",
" Yes 1\n",
" Male Adult No 118\n",
" Yes 57\n",
" Child No 0\n",
" Yes 5\n",
"2nd Female Adult No 13\n",
" Yes 80\n",
" Child No 0\n",
" Yes 13\n",
" Male Adult No 154\n",
" Yes 14\n",
" Child No 0\n",
" Yes 11\n",
"3rd Female Adult No 89\n",
" Yes 76\n",
" Child No 17\n",
" Yes 14\n",
" Male Adult No 387\n",
" Yes 75\n",
" Child No 35\n",
" Yes 13\n",
"Crew Female Adult No 3\n",
" Yes 20\n",
" Child No 0\n",
" Yes 0\n",
" Male Adult No 670\n",
" Yes 192\n",
" Child No 0\n",
" Yes 0"
]
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby(list(df.columns.values[:-1])).sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Other Formats"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df2 = pd.DataFrame(data)"
]
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>Class</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>Survived</th>\n",
" <th>Freq</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1st</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>2nd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>3rd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>Crew</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>1st</td>\n",
" <td>Female</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Class Sex Age Survived Freq\n",
"0 1 1st Male Child No 0\n",
"1 2 2nd Male Child No 0\n",
"2 3 3rd Male Child No 35\n",
"3 4 Crew Male Child No 0\n",
"4 5 1st Female Child No 0"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2.head()"
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df3 = pd.DataFrame(raw)"
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td></td>\n",
" <td>Class</td>\n",
" <td>Sex</td>\n",
" <td>Age</td>\n",
" <td>Survived</td>\n",
" <td>Freq</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1st</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>2nd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>3rd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>Crew</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 5\n",
"0 Class Sex Age Survived Freq\n",
"1 1 1st Male Child No 0\n",
"2 2 2nd Male Child No 0\n",
"3 3 3rd Male Child No 35\n",
"4 4 Crew Male Child No 0"
]
},
"execution_count": 130,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df3.head()"
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df4 = pd.DataFrame(raw_dict)"
]
},
{
"cell_type": "code",
"execution_count": 132,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>Class</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>Survived</th>\n",
" <th>Freq</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1st</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>2nd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>3rd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>Crew</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>1st</td>\n",
" <td>Female</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Class Sex Age Survived Freq\n",
"0 1 1st Male Child No 0\n",
"1 2 2nd Male Child No 0\n",
"2 3 3rd Male Child No 35\n",
"3 4 Crew Male Child No 0\n",
"4 5 1st Female Child No 0"
]
},
"execution_count": 132,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df4.head()"
]
},
{
"cell_type": "code",
"execution_count": 133,
"metadata": {},
"outputs": [],
"source": [
"df5 = pd.read_sql('SELECT * FROM titanic', con, index_col='id')"
]
},
{
"cell_type": "code",
"execution_count": 134,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# pd.read_sql?"
]
},
{
"cell_type": "code",
"execution_count": 135,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>class</th>\n",
" <th>sex</th>\n",
" <th>age</th>\n",
" <th>survived</th>\n",
" <th>freq</th>\n",
" </tr>\n",
" <tr>\n",
" <th>id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1st</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2nd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3rd</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Crew</td>\n",
" <td>Male</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1st</td>\n",
" <td>Female</td>\n",
" <td>Child</td>\n",
" <td>No</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" class sex age survived freq\n",
"id \n",
"1 1st Male Child No 0\n",
"2 2nd Male Child No 0\n",
"3 3rd Male Child No 35\n",
"4 Crew Male Child No 0\n",
"5 1st Female Child No 0"
]
},
"execution_count": 135,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df5.head()"
]
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {},
"outputs": [],
"source": [
"df5.to_excel('Titanic.xlsx')"
]
},
{
"cell_type": "code",
"execution_count": 137,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-rw-r--r--@ 1 501 20 5799 May 9 17:22 Titanic.xlsx\r\n"
]
}
],
"source": [
"ls -a -n *.xlsx"
]
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {},
"outputs": [],
"source": [
"df6 = pd.read_excel('Titanic.xlsx', index_col=0)"
]
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'id,class,sex,age,survived,freq\\n1,1st,Male,Child,No,0\\n2,2nd,Male,Child,No,0\\n3,3rd,Male,Child,No,35\\n4,Crew,Male,Child,No,0\\n5,1st,Female,Child,No,0\\n6,2nd,Female,Child,No,0\\n7,3rd,Female,Child,No,17\\n8,Crew,Female,Child,No,0\\n9,1st,Male,Adult,No,118\\n10,2nd,Male,Adult,No,154\\n11,3rd,Male,Adult,No,387\\n12,Crew,Male,Adult,No,670\\n13,1st,Female,Adult,No,4\\n14,2nd,Female,Adult,No,13\\n15,3rd,Female,Adult,No,89\\n16,Crew,Female,Adult,No,3\\n17,1st,Male,Child,Yes,5\\n18,2nd,Male,Child,Yes,11\\n19,3rd,Male,Child,Yes,13\\n20,Crew,Male,Child,Yes,0\\n21,1st,Female,Child,Yes,1\\n22,2nd,Female,Child,Yes,13\\n23,3rd,Female,Child,Yes,14\\n24,Crew,Female,Child,Yes,0\\n25,1st,Male,Adult,Yes,57\\n26,2nd,Male,Adult,Yes,14\\n27,3rd,Male,Adult,Yes,75\\n28,Crew,Male,Adult,Yes,192\\n29,1st,Female,Adult,Yes,140\\n30,2nd,Female,Adult,Yes,80\\n31,3rd,Female,Adult,Yes,76\\n32,Crew,Female,Adult,Yes,20\\n'"
]
},
"execution_count": 139,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df6.to_csv()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Financial Data"
]
},
{
"cell_type": "code",
"execution_count": 140,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'0.19.2'"
]
},
"execution_count": 141,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# should show 0.19.x\n",
"pd.__version__"
]
},
{
"cell_type": "code",
"execution_count": 142,
"metadata": {},
"outputs": [],
"source": [
"# old days: import pandas.io.data as web\n",
"from pandas_datareader import data as web"
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = web.DataReader('AMZN', data_source='yahoo')"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"DatetimeIndex: 1849 entries, 2010-01-04 to 2017-05-08\n",
"Data columns (total 6 columns):\n",
"Open 1849 non-null float64\n",
"High 1849 non-null float64\n",
"Low 1849 non-null float64\n",
"Close 1849 non-null float64\n",
"Volume 1849 non-null int64\n",
"Adj Close 1849 non-null float64\n",
"dtypes: float64(5), int64(1)\n",
"memory usage: 101.1 KB\n"
]
}
],
"source": [
"data.info()"
]
},
{
"cell_type": "code",
"execution_count": 145,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Adj Close</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2010-01-04</th>\n",
" <td>136.250000</td>\n",
" <td>136.610001</td>\n",
" <td>133.139999</td>\n",
" <td>133.899994</td>\n",
" <td>7599900</td>\n",
" <td>133.899994</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-05</th>\n",
" <td>133.429993</td>\n",
" <td>135.479996</td>\n",
" <td>131.809998</td>\n",
" <td>134.690002</td>\n",
" <td>8851900</td>\n",
" <td>134.690002</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-06</th>\n",
" <td>134.600006</td>\n",
" <td>134.729996</td>\n",
" <td>131.649994</td>\n",
" <td>132.250000</td>\n",
" <td>7178800</td>\n",
" <td>132.250000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-07</th>\n",
" <td>132.009995</td>\n",
" <td>132.320007</td>\n",
" <td>128.800003</td>\n",
" <td>130.000000</td>\n",
" <td>11030200</td>\n",
" <td>130.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-08</th>\n",
" <td>130.559998</td>\n",
" <td>133.679993</td>\n",
" <td>129.029999</td>\n",
" <td>133.520004</td>\n",
" <td>9830500</td>\n",
" <td>133.520004</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2010-01-04 136.250000 136.610001 133.139999 133.899994 7599900 \n",
"2010-01-05 133.429993 135.479996 131.809998 134.690002 8851900 \n",
"2010-01-06 134.600006 134.729996 131.649994 132.250000 7178800 \n",
"2010-01-07 132.009995 132.320007 128.800003 130.000000 11030200 \n",
"2010-01-08 130.559998 133.679993 129.029999 133.520004 9830500 \n",
"\n",
" Adj Close \n",
"Date \n",
"2010-01-04 133.899994 \n",
"2010-01-05 134.690002 \n",
"2010-01-06 132.250000 \n",
"2010-01-07 130.000000 \n",
"2010-01-08 133.520004 "
]
},
"execution_count": 145,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 146,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Adj Close</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2017-05-01</th>\n",
" <td>927.799988</td>\n",
" <td>954.400024</td>\n",
" <td>927.799988</td>\n",
" <td>948.229980</td>\n",
" <td>5457400</td>\n",
" <td>948.229980</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-02</th>\n",
" <td>946.650024</td>\n",
" <td>950.099976</td>\n",
" <td>941.409973</td>\n",
" <td>946.940002</td>\n",
" <td>3812400</td>\n",
" <td>946.940002</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-03</th>\n",
" <td>946.000000</td>\n",
" <td>946.000000</td>\n",
" <td>935.900024</td>\n",
" <td>941.030029</td>\n",
" <td>3560000</td>\n",
" <td>941.030029</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-04</th>\n",
" <td>944.750000</td>\n",
" <td>945.000000</td>\n",
" <td>934.219971</td>\n",
" <td>937.530029</td>\n",
" <td>2409000</td>\n",
" <td>937.530029</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-05</th>\n",
" <td>940.520020</td>\n",
" <td>940.789978</td>\n",
" <td>930.299988</td>\n",
" <td>934.150024</td>\n",
" <td>2856600</td>\n",
" <td>934.150024</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-08</th>\n",
" <td>940.950012</td>\n",
" <td>949.049988</td>\n",
" <td>939.210022</td>\n",
" <td>949.039978</td>\n",
" <td>3390700</td>\n",
" <td>949.039978</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2017-05-01 927.799988 954.400024 927.799988 948.229980 5457400 \n",
"2017-05-02 946.650024 950.099976 941.409973 946.940002 3812400 \n",
"2017-05-03 946.000000 946.000000 935.900024 941.030029 3560000 \n",
"2017-05-04 944.750000 945.000000 934.219971 937.530029 2409000 \n",
"2017-05-05 940.520020 940.789978 930.299988 934.150024 2856600 \n",
"2017-05-08 940.950012 949.049988 939.210022 949.039978 3390700 \n",
"\n",
" Adj Close \n",
"Date \n",
"2017-05-01 948.229980 \n",
"2017-05-02 946.940002 \n",
"2017-05-03 941.030029 \n",
"2017-05-04 937.530029 \n",
"2017-05-05 934.150024 \n",
"2017-05-08 949.039978 "
]
},
"execution_count": 146,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.tail(6)"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from pylab import plt\n",
"plt.style.use('seaborn')\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlQAAAFcCAYAAAAOIyDZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlgnGW59/HvrNn3pkmTNt073Vva0gJtadlBVgWUIy5H\nFEVRENEjKr4uR4+KO3oURZYjrogKyKKoFGhLS1e6pO206d60afZlksw+7x+zZCaZJJNlsjS/zz/O\nPMvMk6e1+XHd93PdhkAggIiIiIj0n3G4L0BERERktFOgEhERERkgBSoRERGRAVKgEhERERkgBSoR\nERGRAVKgEhERERkg83B+eU1Ni3o2JCgvL52GhrbhvoxRQ/er73TP+kb3K3G6V32j+9V3Q3XPCguz\nDN3tU4VqlDCbTcN9CaOK7lff6Z71je5X4nSv+kb3q+9Gwj1ToBIREREZIAUqERERkQFSoBIREREZ\nIAUqERERkQFSoBIREREZIAUqERERkQFSoBIREREZIAUqERERkQFSoBIREREZIAUqERERkQEa1rX8\nREREREa6ytpW2pweCguzuj1GgUpERESkG8erWvjak1sB+Nt5k7o9TkN+IiIiIt04VeNI6DgFKhER\nEZFuON2+hI5ToBIRERHpRnOrO6HjFKhEREREutHSpkAlIiIiMiAtbR4AMlJ7fo5PgUpERESkG81t\nbgwG+PE9q3s8ToFKREREpBvNbR4y0ywYjYYej1OgEhEREemGo81NVrq11+MUqERERETi8Pr8tDq9\nZKdbej1WgUpEREQkDkd7cEK6KlQiIiIi/RR+wi9LFSoRERGRxKzfdZof/WlXpDJ1tr4NUIVKRERE\nJGFPvHyA3YfruOfH66ltauf1XacBmFyc1eu5PXepEhERERmD/uvnmwDITLOweMa4Xo9XhUpERESk\nGx6fP6HjFKhERERkzPMHAnG337BySkLna8hPRERExjyPp2sl6vYrZnHpktKEzleFSkRERMa8plZX\nl21LZhViMPS85EyYApWIiIiMeZvKzwJwy9rpkW25mb23SwhToBIREZEx79CpRgAuXlQS2ZZodQo0\nh0pERESEVqcXq9lIZpqF26+YRVFeWp/OV6ASERGRMa/N6SE9NRiLLls6sc/na8hPRERExjSP10eT\nw53QEjPdUaASERGRMa2+2YXb66esKLPfn6FAJSIiImOa2xvsQZVq6f9MKAUqERERGdPcXh8AFkv/\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a4705c0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data['Adj Close'].plot(figsize=(10, 6));"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data['SMA1'] = data['Adj Close'].rolling(42).mean()"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data['SMA2'] = data['Adj Close'].rolling(252).mean()"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Adj Close</th>\n",
" <th>SMA1</th>\n",
" <th>SMA2</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2017-05-02</th>\n",
" <td>946.65</td>\n",
" <td>950.10</td>\n",
" <td>941.41</td>\n",
" <td>946.94</td>\n",
" <td>3812400</td>\n",
" <td>946.94</td>\n",
" <td>881.07</td>\n",
" <td>788.98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-03</th>\n",
" <td>946.00</td>\n",
" <td>946.00</td>\n",
" <td>935.90</td>\n",
" <td>941.03</td>\n",
" <td>3560000</td>\n",
" <td>941.03</td>\n",
" <td>883.24</td>\n",
" <td>790.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-04</th>\n",
" <td>944.75</td>\n",
" <td>945.00</td>\n",
" <td>934.22</td>\n",
" <td>937.53</td>\n",
" <td>2409000</td>\n",
" <td>937.53</td>\n",
" <td>885.41</td>\n",
" <td>791.10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-05</th>\n",
" <td>940.52</td>\n",
" <td>940.79</td>\n",
" <td>930.30</td>\n",
" <td>934.15</td>\n",
" <td>2856600</td>\n",
" <td>934.15</td>\n",
" <td>887.51</td>\n",
" <td>792.20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-08</th>\n",
" <td>940.95</td>\n",
" <td>949.05</td>\n",
" <td>939.21</td>\n",
" <td>949.04</td>\n",
" <td>3390700</td>\n",
" <td>949.04</td>\n",
" <td>889.85</td>\n",
" <td>793.29</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Adj Close SMA1 SMA2\n",
"Date \n",
"2017-05-02 946.65 950.10 941.41 946.94 3812400 946.94 881.07 788.98\n",
"2017-05-03 946.00 946.00 935.90 941.03 3560000 941.03 883.24 790.05\n",
"2017-05-04 944.75 945.00 934.22 937.53 2409000 937.53 885.41 791.10\n",
"2017-05-05 940.52 940.79 930.30 934.15 2856600 934.15 887.51 792.20\n",
"2017-05-08 940.95 949.05 939.21 949.04 3390700 949.04 889.85 793.29"
]
},
"execution_count": 151,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.tail().round(2)"
]
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x11a6bf7f0>"
]
},
"execution_count": 152,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a5fc630>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data[['Adj Close', 'SMA1', 'SMA2']].plot(figsize=(10, 6))"
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x11a5d0400>"
]
},
"execution_count": 153,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11ec1a390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data[['Adj Close', 'SMA1', 'SMA2']].dropna().plot(figsize=(10, 6))"
]
},
{
"cell_type": "code",
"execution_count": 154,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Adj Close</th>\n",
" <th>SMA1</th>\n",
" <th>SMA2</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2010-03-04</th>\n",
" <td>125.98</td>\n",
" <td>128.85</td>\n",
" <td>125.57</td>\n",
" <td>128.53</td>\n",
" <td>7509700</td>\n",
" <td>128.53</td>\n",
" <td>123.05</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-03-05</th>\n",
" <td>129.13</td>\n",
" <td>129.45</td>\n",
" <td>127.07</td>\n",
" <td>128.91</td>\n",
" <td>6769300</td>\n",
" <td>128.91</td>\n",
" <td>122.93</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-03-08</th>\n",
" <td>128.30</td>\n",
" <td>130.85</td>\n",
" <td>127.71</td>\n",
" <td>130.11</td>\n",
" <td>5605900</td>\n",
" <td>130.11</td>\n",
" <td>122.82</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-03-09</th>\n",
" <td>129.59</td>\n",
" <td>130.81</td>\n",
" <td>127.97</td>\n",
" <td>128.82</td>\n",
" <td>6070800</td>\n",
" <td>128.82</td>\n",
" <td>122.74</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-03-10</th>\n",
" <td>129.11</td>\n",
" <td>131.17</td>\n",
" <td>128.48</td>\n",
" <td>130.51</td>\n",
" <td>5625700</td>\n",
" <td>130.51</td>\n",
" <td>122.75</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Adj Close SMA1 SMA2\n",
"Date \n",
"2010-03-04 125.98 128.85 125.57 128.53 7509700 128.53 123.05 NaN\n",
"2010-03-05 129.13 129.45 127.07 128.91 6769300 128.91 122.93 NaN\n",
"2010-03-08 128.30 130.85 127.71 130.11 5605900 130.11 122.82 NaN\n",
"2010-03-09 129.59 130.81 127.97 128.82 6070800 128.82 122.74 NaN\n",
"2010-03-10 129.11 131.17 128.48 130.51 5625700 130.51 122.75 NaN"
]
},
"execution_count": 154,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.dropna(subset=['SMA1']).head().round(2)"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x11a68b5f8>"
]
},
"execution_count": 155,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nzBw3kCSLBbvDRbLVwpebKzlYbcQ0pLA1kf/2R1Oprmvhpsc/8bbd/fznzJowkOIC47gZY4rZuKOK\nqtpmquuayc1KpdmcMeN2u6k2v5VYZfglLklPXfRZe8wt6K7842IOHG4MeNx3/Lm3/GCu/wya59/b\nyO6KOq5/6CPKdxsrO9NTkr0fJLbkJCwWi99K0mNGt06tTLJYyMtO5b5rZnjbtu+v5X8/2MSn5nDL\nsOJs7zeCGx/7hLeWbePaB5aw8ut9rC2v5Kuth4znkp56XJKkLvqkrXtruPPp5azSRlGu25/8NOCY\ntJTArRYbw5hTHoqZ44qZM2kwk8ypjDv213HXM/7Fs6zWjpPrceMGBrQV9kvnijNH+7V9vG4vAAML\nMrwzcgBeNUvsvvzhN94PEgj++4vYJ0ld9Enb9/vXcXGD30XFz77eR1OLk7KBOVzgU+vkolNG9Wgc\ntmQrl8xVlA3MCXgsNzOFGWOKOGpYYBXIqaOLOHnKEO65ajqp7STfo9WAoO0jBuUwfUxxQPuGbYfY\neaB1Zo8k9fgkSV30SfVBLhre++IXHKxupLK6ib+++TVgVGbMzzHGvgcWZHS6F2lXtb3ACcaOQlee\nNSZo0rYlJ3HRKaMoys9o9zlTbFZuvWhSQHtGmg1bchK3f39ywGPrthgbaP/s/Am9UgFS9D65UCr6\nJM/FwCvPOoohhVneeuHPv6fJ8ZmVMnvSYI45cgD1jXYmHlHYa/GMLctHDe2H9vm2cFRp+9vhhart\nylLfIZkCnwVQZ8wYxtuftq5KHemzUErEF0nqIi7UN9nJTOuZXrLd4WTlxgOkp1qZOLI/6anJ/Pqy\nY/j131ay3rxICPDwDceRbS7nnzN5SI/87Pak2KzcevFkLr93IQBP/PyEdodVuuriU0Zx7NjW8ff8\nnDT+fP1MMtNtJCVZ/JJ6eqoMvcQrSeoi5pXvquYPf1/Fd086glOPCW15flvNdifvfradfYca6JeV\nSnV9C/Oml5CeavwJBBv+yM4IrIvS2645Zwwut7tHE/p5s4bzza5qTpg4KOAx32mVj9w0mxseWMxV\nZx0lQy9xTJK6iHlfbjkIwD8//Mab1O0OF19uPkj/3PSAjZDrm+ykJFv9Vme+8J72W2qfmmLldJ9F\nRMnWJH556dHeOirBLlxGwtTR4Vd+7MyZPjNdOlI2KJdnbzuxx3++iCxJ6iKmfbhyh18FQrfbTX2T\n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\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a5b4518>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data['Close'].plot()"
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {},
"outputs": [],
"source": [
"data['Returns'] = np.log(data['Adj Close'] /\n",
" data['Adj Close'].shift(1))"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Adj Close</th>\n",
" <th>SMA1</th>\n",
" <th>SMA2</th>\n",
" <th>Returns</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2010-01-04</th>\n",
" <td>136.25</td>\n",
" <td>136.61</td>\n",
" <td>133.14</td>\n",
" <td>133.90</td>\n",
" <td>7599900</td>\n",
" <td>133.90</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-05</th>\n",
" <td>133.43</td>\n",
" <td>135.48</td>\n",
" <td>131.81</td>\n",
" <td>134.69</td>\n",
" <td>8851900</td>\n",
" <td>134.69</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-06</th>\n",
" <td>134.60</td>\n",
" <td>134.73</td>\n",
" <td>131.65</td>\n",
" <td>132.25</td>\n",
" <td>7178800</td>\n",
" <td>132.25</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-07</th>\n",
" <td>132.01</td>\n",
" <td>132.32</td>\n",
" <td>128.80</td>\n",
" <td>130.00</td>\n",
" <td>11030200</td>\n",
" <td>130.00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-08</th>\n",
" <td>130.56</td>\n",
" <td>133.68</td>\n",
" <td>129.03</td>\n",
" <td>133.52</td>\n",
" <td>9830500</td>\n",
" <td>133.52</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.03</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Adj Close SMA1 SMA2 \\\n",
"Date \n",
"2010-01-04 136.25 136.61 133.14 133.90 7599900 133.90 NaN NaN \n",
"2010-01-05 133.43 135.48 131.81 134.69 8851900 134.69 NaN NaN \n",
"2010-01-06 134.60 134.73 131.65 132.25 7178800 132.25 NaN NaN \n",
"2010-01-07 132.01 132.32 128.80 130.00 11030200 130.00 NaN NaN \n",
"2010-01-08 130.56 133.68 129.03 133.52 9830500 133.52 NaN NaN \n",
"\n",
" Returns \n",
"Date \n",
"2010-01-04 NaN \n",
"2010-01-05 0.01 \n",
"2010-01-06 -0.02 \n",
"2010-01-07 -0.02 \n",
"2010-01-08 0.03 "
]
},
"execution_count": 158,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head().round(2)"
]
},
{
"cell_type": "code",
"execution_count": 159,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n/B8sASRl0YaU6gAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a14e6a0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data['Returns'].hist(bins=35);"
]
},
{
"cell_type": "code",
"execution_count": 160,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.26704877949326783"
]
},
"execution_count": 160,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Returns'].mean() * 252"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.3166591369719669"
]
},
"execution_count": 161,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Returns'].std() * 252 ** 0.5"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mean-Variance Portfolio Theory"
]
},
{
"cell_type": "code",
"execution_count": 162,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"symbols = ['AMZN', 'AAPL']\n",
"symbols.append('MSFT')\n",
"symbols.append('GLD')"
]
},
{
"cell_type": "code",
"execution_count": 163,
"metadata": {},
"outputs": [],
"source": [
"data = pd.DataFrame()\n",
"for sym in symbols:\n",
" data[sym] = web.DataReader(sym, data_source='yahoo')['Adj Close']"
]
},
{
"cell_type": "code",
"execution_count": 164,
"metadata": {},
"outputs": [],
"source": [
"# np.exp(0.01 * np.arange(len(data)) / 252)"
]
},
{
"cell_type": "code",
"execution_count": 165,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data['CASH'] = np.exp(0.01 * np.arange(len(data)) / 252)"
]
},
{
"cell_type": "code",
"execution_count": 166,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"DatetimeIndex: 1849 entries, 2010-01-04 to 2017-05-08\n",
"Data columns (total 5 columns):\n",
"AMZN 1849 non-null float64\n",
"AAPL 1849 non-null float64\n",
"MSFT 1849 non-null float64\n",
"GLD 1849 non-null float64\n",
"CASH 1849 non-null float64\n",
"dtypes: float64(5)\n",
"memory usage: 86.7 KB\n"
]
}
],
"source": [
"data.info()"
]
},
{
"cell_type": "code",
"execution_count": 167,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>AMZN</th>\n",
" <th>AAPL</th>\n",
" <th>MSFT</th>\n",
" <th>GLD</th>\n",
" <th>CASH</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2010-01-04</th>\n",
" <td>133.899994</td>\n",
" <td>27.727039</td>\n",
" <td>25.555485</td>\n",
" <td>109.800003</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-05</th>\n",
" <td>134.690002</td>\n",
" <td>27.774976</td>\n",
" <td>25.563741</td>\n",
" <td>109.699997</td>\n",
" <td>1.000040</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-06</th>\n",
" <td>132.250000</td>\n",
" <td>27.333178</td>\n",
" <td>25.406859</td>\n",
" <td>111.510002</td>\n",
" <td>1.000079</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-07</th>\n",
" <td>130.000000</td>\n",
" <td>27.282650</td>\n",
" <td>25.142634</td>\n",
" <td>110.820000</td>\n",
" <td>1.000119</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-08</th>\n",
" <td>133.520004</td>\n",
" <td>27.464034</td>\n",
" <td>25.316031</td>\n",
" <td>111.370003</td>\n",
" <td>1.000159</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" AMZN AAPL MSFT GLD CASH\n",
"Date \n",
"2010-01-04 133.899994 27.727039 25.555485 109.800003 1.000000\n",
"2010-01-05 134.690002 27.774976 25.563741 109.699997 1.000040\n",
"2010-01-06 132.250000 27.333178 25.406859 111.510002 1.000079\n",
"2010-01-07 130.000000 27.282650 25.142634 110.820000 1.000119\n",
"2010-01-08 133.520004 27.464034 25.316031 111.370003 1.000159"
]
},
"execution_count": 167,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"rets = np.log(data / data.shift(1)).dropna()"
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>AMZN</th>\n",
" <th>AAPL</th>\n",
" <th>MSFT</th>\n",
" <th>GLD</th>\n",
" <th>CASH</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2010-01-05</th>\n",
" <td>0.005883</td>\n",
" <td>0.001727</td>\n",
" <td>0.000323</td>\n",
" <td>-0.000911</td>\n",
" <td>0.00004</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-06</th>\n",
" <td>-0.018282</td>\n",
" <td>-0.016034</td>\n",
" <td>-0.006156</td>\n",
" <td>0.016365</td>\n",
" <td>0.00004</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-07</th>\n",
" <td>-0.017160</td>\n",
" <td>-0.001850</td>\n",
" <td>-0.010454</td>\n",
" <td>-0.006207</td>\n",
" <td>0.00004</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-08</th>\n",
" <td>0.026717</td>\n",
" <td>0.006626</td>\n",
" <td>0.006873</td>\n",
" <td>0.004951</td>\n",
" <td>0.00004</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010-01-11</th>\n",
" <td>-0.024335</td>\n",
" <td>-0.008861</td>\n",
" <td>-0.012802</td>\n",
" <td>0.013201</td>\n",
" <td>0.00004</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" AMZN AAPL MSFT GLD CASH\n",
"Date \n",
"2010-01-05 0.005883 0.001727 0.000323 -0.000911 0.00004\n",
"2010-01-06 -0.018282 -0.016034 -0.006156 0.016365 0.00004\n",
"2010-01-07 -0.017160 -0.001850 -0.010454 -0.006207 0.00004\n",
"2010-01-08 0.026717 0.006626 0.006873 0.004951 0.00004\n",
"2010-01-11 -0.024335 -0.008861 -0.012802 0.013201 0.00004"
]
},
"execution_count": 169,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rets.head()"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nejMAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11fa4c0b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"rets.hist(bins=35, figsize=(10, 6));"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"AMZN 0.267049\n",
"AAPL 0.232922\n",
"MSFT 0.135325\n",
"GLD 0.008369\n",
"CASH 0.010000\n",
"dtype: float64"
]
},
"execution_count": 171,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rets.mean() * 252"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"AMZN 3.166591e-01\n",
"AAPL 2.581300e-01\n",
"MSFT 2.271406e-01\n",
"GLD 1.698705e-01\n",
"CASH 1.750606e-15\n",
"dtype: float64"
]
},
"execution_count": 172,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rets.std() * 252 ** 0.5"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>AMZN</th>\n",
" <th>AAPL</th>\n",
" <th>MSFT</th>\n",
" <th>GLD</th>\n",
" <th>CASH</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>AMZN</th>\n",
" <td>1.002730e-01</td>\n",
" <td>2.692126e-02</td>\n",
" <td>2.896716e-02</td>\n",
" <td>-1.676384e-03</td>\n",
" <td>1.835920e-19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AAPL</th>\n",
" <td>2.692126e-02</td>\n",
" <td>6.663109e-02</td>\n",
" <td>2.292954e-02</td>\n",
" <td>1.826095e-03</td>\n",
" <td>-5.451279e-18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MSFT</th>\n",
" <td>2.896716e-02</td>\n",
" <td>2.292954e-02</td>\n",
" <td>5.159285e-02</td>\n",
" <td>-5.232011e-04</td>\n",
" <td>-8.452860e-18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GLD</th>\n",
" <td>-1.676384e-03</td>\n",
" <td>1.826095e-03</td>\n",
" <td>-5.232011e-04</td>\n",
" <td>2.885600e-02</td>\n",
" <td>8.198693e-18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CASH</th>\n",
" <td>1.835920e-19</td>\n",
" <td>-5.451279e-18</td>\n",
" <td>-8.452860e-18</td>\n",
" <td>8.198693e-18</td>\n",
" <td>3.064620e-30</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" AMZN AAPL MSFT GLD CASH\n",
"AMZN 1.002730e-01 2.692126e-02 2.896716e-02 -1.676384e-03 1.835920e-19\n",
"AAPL 2.692126e-02 6.663109e-02 2.292954e-02 1.826095e-03 -5.451279e-18\n",
"MSFT 2.896716e-02 2.292954e-02 5.159285e-02 -5.232011e-04 -8.452860e-18\n",
"GLD -1.676384e-03 1.826095e-03 -5.232011e-04 2.885600e-02 8.198693e-18\n",
"CASH 1.835920e-19 -5.451279e-18 -8.452860e-18 8.198693e-18 3.064620e-30"
]
},
"execution_count": 173,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rets.cov() * 252"
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>AMZN</th>\n",
" <th>AAPL</th>\n",
" <th>MSFT</th>\n",
" <th>GLD</th>\n",
" <th>CASH</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>AMZN</th>\n",
" <td>1.000000</td>\n",
" <td>0.329355</td>\n",
" <td>0.402735</td>\n",
" <td>-0.031165</td>\n",
" <td>0.000331</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AAPL</th>\n",
" <td>0.329355</td>\n",
" <td>1.000000</td>\n",
" <td>0.391077</td>\n",
" <td>0.041645</td>\n",
" <td>-0.012063</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MSFT</th>\n",
" <td>0.402735</td>\n",
" <td>0.391077</td>\n",
" <td>1.000000</td>\n",
" <td>-0.013560</td>\n",
" <td>-0.021258</td>\n",
" </tr>\n",
" <tr>\n",
" <th>GLD</th>\n",
" <td>-0.031165</td>\n",
" <td>0.041645</td>\n",
" <td>-0.013560</td>\n",
" <td>1.000000</td>\n",
" <td>0.027570</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CASH</th>\n",
" <td>0.000331</td>\n",
" <td>-0.012063</td>\n",
" <td>-0.021258</td>\n",
" <td>0.027570</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" AMZN AAPL MSFT GLD CASH\n",
"AMZN 1.000000 0.329355 0.402735 -0.031165 0.000331\n",
"AAPL 0.329355 1.000000 0.391077 0.041645 -0.012063\n",
"MSFT 0.402735 0.391077 1.000000 -0.013560 -0.021258\n",
"GLD -0.031165 0.041645 -0.013560 1.000000 0.027570\n",
"CASH 0.000331 -0.012063 -0.021258 0.027570 1.000000"
]
},
"execution_count": 174,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rets.corr()"
]
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"noa = len(symbols) + 1"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [],
"source": [
"phi = noa * [1 / noa]"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.2, 0.2, 0.2, 0.2, 0.2]"
]
},
"execution_count": 177,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"phi"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mu(phi):\n",
" return np.dot(rets.mean() * 252, phi)"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.13073305038941249"
]
},
"execution_count": 179,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mu(phi)"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"cov_mat = rets.cov() * 252\n",
"def vol(phi):\n",
" return np.dot(phi, np.dot(cov_mat, phi)) ** 0.5"
]
},
{
"cell_type": "code",
"execution_count": 181,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.1271600414948067"
]
},
"execution_count": 181,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vol(phi)"
]
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {},
"outputs": [],
"source": [
"phi = np.random.random((15000, noa))"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {},
"outputs": [],
"source": [
"phi = (phi.T / phi.sum(axis=1)).T"
]
},
{
"cell_type": "code",
"execution_count": 184,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.316, 0.272, 0.181, 0.036, 0.196],\n",
" [ 0.092, 0.25 , 0.356, 0.125, 0.177],\n",
" [ 0.164, 0.309, 0.267, 0.002, 0.257],\n",
" [ 0.4 , 0.233, 0.178, 0.148, 0.041],\n",
" [ 0.336, 0.003, 0.354, 0.28 , 0.028]])"
]
},
"execution_count": 184,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"phi[:5].round(3)"
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mv = np.array([(vol(p), mu(p)) for p in phi])"
]
},
{
"cell_type": "code",
"execution_count": 186,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.16384062, 0.1744284 ],\n",
" [ 0.13875557, 0.1338007 ],\n",
" [ 0.14769658, 0.15458333],\n",
" [ 0.18139942, 0.18690054],\n",
" [ 0.16310295, 0.14084726]])"
]
},
"execution_count": 186,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mv[:5]"
]
},
{
"cell_type": "code",
"execution_count": 187,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11fa20470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(mv[:, 0], mv[:, 1], 'bo');"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mvdf = pd.DataFrame(mv, columns=['vol', 'mu'])"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>vol</th>\n",
" <th>mu</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.163841</td>\n",
" <td>0.174428</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.138756</td>\n",
" <td>0.133801</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.147697</td>\n",
" <td>0.154583</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.181399</td>\n",
" <td>0.186901</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.163103</td>\n",
" <td>0.140847</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" vol mu\n",
"0 0.163841 0.174428\n",
"1 0.138756 0.133801\n",
"2 0.147697 0.154583\n",
"3 0.181399 0.186901\n",
"4 0.163103 0.140847"
]
},
"execution_count": 189,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mvdf.head()"
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmUAAAFyCAYAAAC0tK2ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XtwHOd5Jvqn54q5kTMEQVKWSAkUhaZMypQcI7bXLlln\nUzHrWPExVfLajnyYI9FKyvTtJEqUuLxZKVJ5d0/syM7aiaD4QmqNVGI7VsizKUsmU8dZOZYjGV6R\ntEALDUEGBYoW7jPg3NA9t/PHoAfdPT0zPcD0TA/w/KpUJcwNDQypefR+7/d+QqlUAhERERF1lqvT\nF0BEREREDGVEREREjsBQRkREROQADGVEREREDsBQRkREROQADGVEREREDuDp9AWs19xcctPP9IjF\ngojHM52+DNLge+I8fE+ch++J8/A9sV9fX0SodR8rZRuAx+Pu9CWQAd8T5+F74jx8T5yH70lnMZQR\nEREROQBDGREREZEDMJQREREROQBDGREREZEDMJQREREROQBDGREREZEDMJQREREROQBDGREREZED\nMJQREREROQBDGREREZEDMJQREREROQBDGREREZEDMJQREREROQBDGREREZEDeOx6YVEUXQAeB3AI\ngAzgfkmSJjT3/zaA3weQB/ASgE9IklQURfFFAFdXHjYpSdJ9dl0jERERkVPYFsoAHAHQI0nSO0VR\nfAeAxwB8AABEUQwA+DyAWyRJyoii+PcAfksUxbMABEmS7rDxuoiIiIgcx87ly3cD+AEASJL0PIC3\nae6TAfw7SZIyK197ACyjXFULiqJ4VhTFH66EOSIiIqINTyiVSra8sCiK3wDwlCRJz6x8PQVgryRJ\necPjPg3gfSv/HATwDgDfAHATgGcAiMbnaOXzhZLH47blZyAiIiJqMaHWHXYuX14FENF87dKGq5We\nsy8AGABwtyRJJVEUxwFMSJJUAjAuiuICgGsAXK71TeLxTK27No2+vgjm5pKdvgzS4HviPHxPnIfv\nifPwPbFfX1+k5n12hrLnALwfwHdXliFfMtz/NygvYx6RJKm4ctsxALcA+IQoim8CsAXAGzZeIxER\nUVukMgqGz45jLpFFXzSAo4cHEA74On1Z5CB2hrJTAH5TFMWfoFyqu08UxXsAhAH8DMDHAPwrgB+K\noggA/w3ANwE8KYrijwGUAByrt3RJRETULYbPjmNkbBYAcGm6XI06fuRgJy+JHMa2ULZS/fq44eYx\nzb/X2mRwjz1XRERE1DlziWzdr4k4PJaIiKgN+qKBul8T2bl8SURERCuOHh4AAF1PGZEWQxkREVEb\nhAM+9pBRXQxlREREtGF1065XhjIiIiLasLpp1ysb/YmIiGjD6qZdrwxlREREtGF1065XLl8SERHR\nhtVNu14ZyoiIiGjD6qZdr1y+JCIiInIAhjIiIiIiB+DyJRERkQXdNO+KuhNDGRERkQXdNO+KuhND\nGRERkQV2zrtiFY4AhjIiIiJLoagvGqhUyNSvW4VVOAIYyoiIiCyFIjvnXXXT1HmyD0MZERFtelZC\nkZ3zrlpZheNSaPdiKCMiok3PzqVJK1pZheNSaPdiKCMiok2v00fxtLIKx6XQ7sVQRkREm143HcXT\nSKerfrR2DGVERLRhafurYmE/SighkVIc3Wu13p6wTlf9aO0YyoiIaMPS9VdhtXrk5F6r9faEbaSq\n32bDUEZERBuCWYVpZjFd8/FO7bViT9jmxVBGRERdTQ1jFycXkJELAFYrTImUUvN5S2kFqazSliXM\nZpYk2RO2eTGUERFRVzILY1pziSxy+WLN58eTMk58/2V85oOH7LxMAM0tSbInbPNiKCMioq6yGsYW\nkZHzNR8Xi/gxG6+/9Dd+OdHqyzPVzJIke8I2L1enL4CIiKgZatWpXiADgFKpBHF3VHebS9A/Rs4V\nkcrWXuJsFeMSJJckyQwrZURE1FWsNr6PX17CH3z4Lbg0k0Q6m0Mo4MXOqB9jl69WHlMoljB8ZhzH\njxy09XgiLkmSFQxlRETkWGZBydgIX0tGzuPxUxcRT8oAACUp44ZdEQT9bl0Pmhry7DyeiEuSZAVD\nGREROZYxKF2cXMTA7q247abtkKYSDZcwEylZ93U8KeNAf2/lNYHVpcR6fV885JvagaGMiIgcRw1B\n5yfmdbdn5DzOTyxgcP8O7IjpK2ZBvxuAoAtqpZL+dbVLh8alxHqjKHjIN7UDQxkRETmONgSZUQOV\nNkQd6O/F0cMD+OwTz+uCWdDvxo5YUFfhMgtU9fq+ONCV2oGhjIiIHKdR6FlKKfi9D7y58lht4DrQ\nv00X6A7095qGMLMlyVrVLw50pXZgKCMioo7TBqRo2IdEcrnu4+MpGZ9/8mc40N+LBz58SNffZXWn\nY7MDXXP5wspcMwH5fLFtpwHQ5sFQRkREHbGUVvDVp34OaSoBWcmjUKr9WJ8byJeAomZAf0YuVEKV\nNkxZ3enY7EBXr2d11+a5iXl4VkZpELUKQxkREXXEE09dwLlX5hs/EIBSfYpSRa0w1WjHpNmSZL3n\nsK+M7MZQRkREbaOGnpnFNK7MZ1rymrPxLIZOj1aFrkbLk8Zlzrtu78fDJ0cqc82Mz2FfGdmNoYyI\niNoilVF0oacWAcDWkBdyrohsnRKZWxBQKJWQkfMYGZvF+VfmcM32IHbGQjh6eKBhZcu4zDl0erTq\n2rTP4VR+shtDGRER2Uqtjo1OLiAr11mHXFECkEjncNtN2+FxuzC9kMZSRkEyk9PNHStC34SWK5Qw\nNZPG1EwaQPOVLbPlSO1zOJWf7MZQRkREtrFaHTMTT8p46N5BDJ0exeW5dNX9xsGwWnOJLB748KHK\nv1upbBlDXCzid0w1jCcKbA4MZUREZJsTT7/cMJC5XMBb9vZi/HJCdybllbkU/uzkC5hP1B6PoS5h\nGvVFA01XtsyWJ9sVfBqFLp4osDkwlBERkW3Kc73qO3DDNng9bsQiPcjK6cqipLocWU8J1YEs6Hfr\nKlxWq0z1QpzdlapGocvqzk9W1LobQxkREa2bdlfl1UwOmayCQhF1Z4+pJn+1hNRy/V6zoN+D3i1+\nLGUU5PJFKLkiCsUSiiav7/O6dV8bA8/ElSVsDfmaCi12V6oahS6r/XGsqHU3hjIiIlqXVEbBf/z6\n80hm840fbPb8BoEMAMQ9UVyaTuJqOtfwsYmUgmHNYFdjwIknZcSTclOhpVFoWm+FqlHosrrzk7PU\nuhtDGRERrZnayL/WQNbInp0h7IyFkMsXmtosoA0jxsBT63H1NApN661QNQpdVvvjOEutuzGUERHR\nmp18ZmxNOyutOHhDFA985K0AgEefHKm6Pxr2QckVISuFqmZ/NYykMgryhSKCfg+AEjxuF65mclWP\na6RRaFpvhapV4zY4S627MZQREVHT1OW68xPWjklaC6939SPKWAHyugX88Udvw65YCKmsghPff7ly\nWLi4J1oJIyefGdMd5XTL3q3o8XmaDi2NQpNTKlScpdbdGMqIiMiyVEbB46d+jrHLV1v6uoJQPXdM\nW4E7engAE1eWKrflCiWcenYSx48cRDjgw2c+eEjX1zV8ZhxHDw9AmtLv/nz1ylX81R/c3tJrV68P\nYIWK1oehjIiILHlpYg5f/t5Ltry22SBY4zT9SMCjC2oz8fK4DDWMXZxcREYu97atVq2ML1z9jVox\nRoIVKmoFhjIiIrLkL1sYyMwqY0B5xtiOWNC02pTM5E2/1jbZa12YmEePzw1gdXfnwO5o1eM4RoKc\ngqGMiIhMTS+k8cVvn0c6m0Oox2tSY1q7WkckiXti8LhduiVItWoVDngQT61WysI95Y+wWk31Sr4I\nJV9ELOLXzSUz4hgJcgqGMiIiqpLKKHj4xE+RW5n+qqTs2WHp9bgQDngR7vFgV28I2WUF514p94Fd\nmk4ily/gMx8sn2G5qzekOwNzV28IQHWTvbEKl87msO/arTWXJes16XNCPrUTQxkREVVo+7NyVsbx\nr5PXLegC06e+/Kzu/pdeXUAqqyAc8OG9g9fh/CtzyBVK8LoFvPft1wGobrLP54s4p9kVquSLleVJ\ns2XJek36XNqkdrItlImi6ALwOIBDAGQA90uSNKG5/7cB/D6APICXAHxi5a6azyEiotbSHo+USCm6\nGV7tkJELGBmbRb5QxKfvfgsAQXd/oYTKdP7HT1+sBMVcoYTH//EiHvvku6qa7FNZBZ4z47gwMQ8l\nX6zcXmtZsl6TPpc2qZ1cNr72EQA9kiS9E8BnATym3iGKYgDA5wH8b5IkvQvAVgC/Ve85RETUeief\nGcPI2CymZtNtD2Ra6ugK0aQRXw1C6az++pJpGUOnR/HokyMYOj2KVFYBsBqyDu3brnv8WmaHGZ/D\nCflkJztD2bsB/AAAJEl6HsDbNPfJAP6dJEmZla89AJYbPIeIiFoklVEwdHoU51+xb/hrM2QlX5na\nvyXo1d2nBqFQj/52QRAwMjaLS9NJjIzNYvjMuO7+o4cHMLh/B27YFcHg/h1rmh2mvsbuvhBiET9m\n4mldACRqJTt7yrYAWNJ8XRBF0SNJUl6SpCKAGQAQRfHTAMIA/hnAh2o9p9Y3icWC8Hjcrb/6LtPX\nF+n0JZAB3xPn4Xuy6sS3RkzHSHRKoVTu2bqEJN5xYBc8HhdmFjPYuS2I43cfwpaQD//1k+/G54Z+\njERShiAI8HhcyBVWx128/Foc/qAfW0LlRvw+AA/97jubvpaltIInnrpQ+f6/f8+vYeipC/jxhV8h\nnpQxNZOG3+/Bn/zOYKt+fEfh35POsTOUXQWgfWdd2nC10nP2BQADAO6WJKkkimLd55iJxzP17t4U\n+voimJszP2yXOoPvifNs9vcklVFw4unyUUSlEiDnC42f1AYCqse5Ti+k8dC9q4FHzsiYy8jwCcCN\nb9paDpOlErKy/mdIZXP41Bd/qB9/UULTuyeHTo9WAusrlxOQ5XxVL9nrM8kN+edps/89aYd6odfO\nUPYcgPcD+K4oiu9AuZlf629QXsY8slI5s/IcIiJqUiqj4OGTI7YdHL4WLgHYGvYhmVag6cUHULtv\nK5VRcHFyoe7rxpMy4klZN+Ki2d2TZs39TjnbkjY2O0PZKQC/KYriT1D+n6H7RFG8B+Wlyp8B+BiA\nfwXwQ1EUAeC/mT3HxusjItoUhs+OOyqQAeV+sHiyui8rFvFXer+MM8Jy+QIysvUKn9lOSe1ttWaQ\nmQUwnm1J7WBbKFupfn3ccPOY5t9rbTIwPoeIiNZADR0XJtrbzK8elXRlLlVz1lmhqL/d53Hh0L7t\nuuVF44ywoN+8f1gAcP2uCJbSii58qtWsWhWuWjPIzAIYz7akduDwWCKiDUJb+Qn3ePCL1+Io2j//\ntcrA7ig+88FDmI6n8cW/Kx/T1ON34/qdEbx65Wrl0HCtN98Qqwo9M4tp3de1jmbyeFx46N5BpLIK\nhs+sVr7uur0f3/3hxEqYEyDuieoqXLVmkDGAUacwlBERbRC1DuZut/MTC/jSt8/h9z5wAI998l2V\n26cX0vjTb7xg+hxBEKpuMx5A7ve50eP3VC3FFgtFfOV7F1aWROVKdWv4zDjOT6z2oF16Q9/Azj4x\nchqGMiKiDcBKE3w7jV6KVybxq7747fM1K3fSVLxynJLKeAB5JOCF2+2qCmWFEvThayVoGSth8ZSs\nuyb2iZHTMJQREXW5VEbBn37j+aaa4NvhRWkWf3byBeyMhXD08ABS2donBmTkQlWIq3UAuba6VYvZ\njkkAuDi5epYmlynJaRjKiIi63ImnX8bVTN2Rjh1RKAFTM2lMzaQxcWUJpVpNYSuMla1alaxcvoDx\nywnIuWLVhgGV+viJ15d01Taz8EfkFHYes0RERDZJZRR89amf45Nffla3dOdU8aSMfI2dmCpjT1c4\n4MPR9w6gLxrAXCJbOUbJ63EjIxd0gSwccOOWvdt0RyqFAz488rFBBP36+gMPFSenYqWMiKhLaHdX\nJpLLSKQ7d4B4K7hcAsIBD5blAkIBL+56T3/VY4xjKyauLFUdTA4AqWwBPT4Pfve33ozhs+P40ncu\nVKplB/q36TZAsKGfnIqhjIioC6QyCh468VMkUu0/CNstlJcim2V2hJJWsVjC1ZVgqSRlnHp2smpZ\nsapZv84Q3LlE1nT2GBv6qVswlBEROZT2vEpZKaLQoCerlQI+NwShPNTVakXO63Ehpzkz6bq+EF6f\nT9ecL2Zktqxo1qxfi7rMaXxNNvRTt2BPGRGRQ514+mWcn1go90+1MZABQKFQwMDuKGTjwZR1hANe\n3dcLV2V4XPr5Y9XTyFbNxrMYOj2KVHa1Gnj08EDNSf5aAZ8bRw8PVC1NcqmSugkrZUREDlM5HunV\nzjXwKwVY3kDg9bgQDngR9LtQKHiRyuZQLKEyuV+7jFkC4HYJKJZKVRW0jJyvLD2qla1wwIcD/b26\nnjC3ICAU9FSWPgHg4N7e8sYALlVSF2MoIyJyCDWMXZxccNzMsXrCAS/iSRnxGquMbhegLbjVGmOh\nmktkdZsaYmE/toS8lRBWKJVw45u2wuN2VYUvLlVSN2MoIyJyiJPPjOHcK+09PHy9PC4g6HMhXucx\n5SOUrC+/LqUV3e/iEqoPI48nZTx07+AarpjIuRjKiIg6RFsN6osGcPGX3RXIAGD/9TFcmcvUfcyO\nWBAZOV9356RWPClDVoyVQn03GnvFaCNiKCMi6hBdNcjiDkOnuZpWkJXr786MJ5dRv8XfjL6yJu6J\nVi1XGkOtOjCWqFsxlBERtUkqU16Wk6YSAEpYrqoGdZ/Ls+mGC5Nr6Y8b2B2F1+OuG7iGTo9WzSRj\nPxl1M4YyIqI2GT473nU9YyqXCyiaTMdoZlCHWwAEodxjtiMWhJwrYH5puXJ/LOJHuMeD1HIei8ll\n7IyF8MCHD9WsfpnNJCPqZpxTRkTUJk4MDQKsLSyaBbJar1dLoVTehZkrlDC9kEY6q8AtCAj43Ljt\npu145NggdvWGEE/KmJpJY2RstnLepRnOJKONhpUyIiIbqVP5pakEsg5crmz1SFqPW0DOwplMhRKQ\nVcpJL6sUIE3FMXxmHDPxtO5x9YIsZ5LRRsNQRkRko+Gz45aHsG4E2kDmFsqDZZdzjctsGbmAkbFZ\nxMJ+3e31ql+cSUYbDUMZEVGLqQ39L19atBRIupm3TmVs984I+qIB3TT+RsIBD/Zdt5XVL9qUGMqI\niFpMPbOy27iF8rJiM/q29uDaHRHMJbJYSiu6WWRLaQWFQhGxiB/LSh5ZzS5MtwD0+D1YVgq6Cf+7\nekOsftGmxVBGRLROat/Y+OUEAAHLSr7Tl7QmN1wTwau/am5e2rU7Ijh+5GClOigrBZRQgqIUVo5e\nKoe0Hq8LsYgfkaAHO2MhHD08gP49vZicWsDwmXFWxojAUEZEtG4nnxnrysqYUTOBLOBz4+De3kqI\nalQdXM4VsZwrB7Q/+sjqzDH2hRGtYigjIlqD6YU0vvD355BIKZ2+lI7YuS2oC1PlKmFj8aSM4TPj\nDGJEJjinjIhoDb747fObNpABZrsirR+j5MR5bUROwFBGRNSkV19PWD5ce6Po8Qq47abt2LMjhFjE\nj+mFNIZOjyKVLQdTcXfU8mtxyCuROYYyIqIm/Ze/fbHTl9BSLgtFrltu7MN9//t+JLN5xJMyLs/p\nJ+7fd+d+xCL6GWOC4XV9HhcG9+9gMz9RDewpIyKyIJVRMHx2HDOLjQ/g7jbFOj+QtqF/+Mx4VYXw\n4uQiHn1yBH3RACJBj+7+gM+tO4z80L7t7CUjqoOhjIjIxPRCGl/4uxexlM5tuBBmldslYP+eGI4e\nLu+WnFlMVz0mI+dxaTqJS9PJqmn8Ho8Lt+2JIZ6UOe6CyAKGMiIiE//lb3+GVNZ5Z1W2Sizib9gX\nVyiWcG5iHnh6DJ+++y1IZurPXwsHPICAyuteTefgcbvw0L2DLbtuoo2MoYyICKvLk3OJLAJeV9cG\nMkEAIkEvrt0ewthUAqUaZb5lOY+D/TG8/FpCN1HfjDRVHncRDngQT60GuR6v/lzLXb0hzCWyurDH\nnZZE1jGUERGhfHB4M2c0OlWpVK5QXU3XnxuWVQqQphoHMgDIynn84V8/h2VZXym7+YZt8Lhdumn8\nw2fGcWl6dQgtd1oSWcdQRkSEzVnRqXWQuFEJ0FW/gn43DvT3VnrNtNS+MR6bRNQ8hjIi2pTUsxrL\nS3Ml+DycEGTVjliw5i5KHptEtHYMZUS0aah9Y1dmk3hjMavbVakd3dAtvG4BLgGQ883tDw343ejx\n6vvDTB/ncyOrVP9euCRJZA+GMiLaNE4+M4Zzr8x3+jJaxuryo9H2LT148J7b8PCJkbo7MPdfH4PH\n7cL0Qhqp5TwiQQ92xkJckiSyCUMZEW14qYyCvznx/IYKZOuRWs4jHPDhkWODGD5T3nH6+lwKeU3I\ncwvAfe/bX9UzRkT2YSgjog3va/9jFKOX6u9G3EwiwfJ/+rX9Xx//i/8JaBZ03W4XAxlRmzGUEdGG\nM72Qxhe/fR6pbA75fHHTTuSvZWcsVHVbqMcLRdNjFgp423lJRASGMiLaYFIZBQ+f+Oma+602uljE\nj6OHB3TDcvuiAXzi7gN4/B8vIp3NIRTw4sF7bu30pRJtOgxlRLShDJ8dZyCrY2vIh3DAh6HTo5Vh\nueqw18c++a5OXhrRpsdQRkRdL5VRcOLpl/GLS4tQmhwPsdmo4yyMw3I34/BcIqdhKCOirqUuwf38\n1TnIOYaxevbsDOnGWfRFAzwOichhGMqIqCulMgo+9/V/69qDw9tpS9CLnbHyYeHDZ8Zx9PCA6XFI\nxj4zs2OUiMg+DGVE1FXU4HDhlVmYDJvflNwCUCwBggD4fW6USiUsK8XK/bl8sap/7PiRg1XHIZn1\nmfHIJKL2YSgjoq6Ryih46JsvIJHOdfpSHEXd11AqAeLuKC5OLuruV3JF3de1+sfYZ0bUWTyBl4i6\nxomnX2Yga0C6nKjafeo1/O93rf4x4+3sMyNqL1bKiMjR1EGw6WwOSr7Y+AmbnLEqBgD7r98Gr8dd\nOcNyJp7G0OnRqp4xsz4zImofhjIicqRURsHX/+kXeMmwFEfmgn4PDvRvw+gvF5DVNNu5BeDYnTfr\nZpPFkzKmZtIA9D1j2mOXiKj9uHxJRI6Tyih4+OQIA1kT/vTeX8PxIwch7onqbr/lxt5KNYw9Y0TO\nxlBGRI6Ryij46lM/xx/81XOIJ+XGT6CKU89OAihXxQb378ANuyIY3L8Dx+68ufIY9owRORuXL4nI\nMU4+M4Zzr8x3+jIcLej3wOcRqjY8qFWvekuQ7BkjcjaGMiLqqFdfT+DP//4c8jyvsqFY2I8HP3or\nwj1ePPzNEcRTq9VEK1UvbWBLZRQMn+GgWCInsS2UiaLoAvA4gEMAZAD3S5I0YXhMEMA/A/iYJElj\nK7e9CODqykMmJUm6z65rJKLO+wIDmWXxlIxTz07i+JGDeORjg1WhqhnDZ8c5KJbIYeyslB0B0CNJ\n0jtFUXwHgMcAfEC9UxTFtwF4AsB1mtt6AAiSJN1h43URkQOok/mNM7WoPivLlM28Tq2viaj97Axl\n7wbwAwCQJOn5lRCm5QdwF4BhzW2HAARFUTy7cm2fkyTpeRuvkYg64NXXE/jPf/tipy+jKy2lFTz6\n5EjTS47Gcy2jYf3z2PRP1Hl2hrItAJY0XxdEUfRIkpQHAEmSngMAURS1z8kA+AsA3wBwE4BnRFEU\n1eeYicWC8Hjcrb72rtPXF+n0JZAB35NVS2kFX/3OOYy+Oo9lpYBCkdUxM6EeDwJ+D9wuYDa+DPW3\ntCXkQe/WIJJpBfNLy4gnZVyaTsLv9+BPfmfQ0muf+NaIbrnyHQd24d2H3oSZxQx2bgvi+N2HsCXU\nup6ypbSCJ5660PD1+ffEefiedI6doewqAO0766oXrlaMA5iQJKkEYFwUxQUA1wC4XOsJ8Xhm3Rfa\n7fr6IpibS3b6MkiD70mZWp0xDjQlc71b/fiz+96OodOjmIkvV27fe81WeD1uXJlN6R7/+kzS8p+z\n12f0j/vVXBI7t4WQyxUgy3ksLCQhZ1oXyrSHm79yOQFZzlctt/LvifPwPbFfvdBrZyh7DsD7AXx3\npafsJQvPOQbgFgCfEEXxTShX296w7xKJyA4MY2uTSCkYOj2KCxP6sSDjlxPIyNW/x2aWHPuigUpD\nPwAks3lM2djoz541oubZGcpOAfhNURR/AkAAcJ8oivcACEuS9LUaz/kmgCdFUfwxgBKAYxaqa0Tk\nMJw3tjZX07lKdUnLGGx9HhcO7dve1I5L44yy6YW0bkBvq0OTMQSyZ42oMdtCmSRJRQAfN9w8ZvK4\nOzT/rgC4x65rIqL2kKYSnb6EDUEQgFKp/I/WoX3bm65qGXdrDp0exeW5dOXrVocmDqolah6HxxJR\nS6gHiF98bRHFYqevxlm2hLzYFulBNOzDxJUEUllrS7oBn7tq2TIW9uOu9/Sv+5rsDk083JyoeQxl\nRLQu7B+z5oEPHcLJZ8aQWa7/O/K6BVzbF0ZfNIBcvoDzEwu6+7UDZNeDoYnIeRjKiGhN1DB2cXIR\nGZmtn/UsywUMnx231Ge3a1sQD907iFRGwYmnX0bQ70ZWKeiWMNk0T7QxMZQRUdNSGQUPnxzRNYpT\nbaVSCdML6cYPBLCrNwSgfAySsUqmYtM80cbEUEZETRs+O85A1oRcoYTUcnU1UQCg7eGPRfy6Xi+t\noN+NHbEgm+aJNjCGMiJq2syitaoPrYoEPbhhV2RlZ2oJA7uj+NBv7MOpZyd1zfbqsUnGkRIH+nvZ\nA0a0wTGUEZFlqYyCof93FFOzDGXN2hkLmYaqWkHrrtv7MXFlCelsDqGAtyU7LonI2RjKiKgmtdl8\n/HIChUIRSr4EnlrZPO2ypFWnfjRZWSJWkq3ZcUlEzsZQRkQ1nXj65ZrN5lRfNOSFnC9CAHD9zjCA\n1R2rZsuVRjymiGjzYSgjoipqeGAgW5uA342bdscqRyadn1jA8JlxAKjcdmk6iYkrS3jk2KBpMGvV\nMUXNBEEi6iyGMiKqmF5I44vfPs+dleu0f0/MUqUrnpRx8ukxeNyuqtDUaOK+1bA1fHZcFwQB4Oh7\nBxjUiByUV6KCAAAgAElEQVTIUigTRfEkUN1KIknSsZZfERG1lfbD/fJMEgU2ja2L2wXc9779GD4z\nblrp0t4GlM8JVYfvqvcdP3Kw4cR9s7Bl9nizcGj1uUTUXlYrZf9T8+9eAP8HTA4XJ6Luo/2AJnPX\nbg8hvZzDspzHcq7+wZ7FEkwrXXfd3o9/+JdX4XYJKBS1yVefgq32jlntOTNbBmW/GpEzWQplkiT9\nd+3Xoih+E8BztlwREbUVP5Ab64v24E2ekKXw6hIE06XF4TP6Y5aCfjcO9PdWnW9ptXfMas+Z2TJo\nrSoeEXXWWnvKbgZwTSsvhIjaK5VRcPKZMUzNJBs/eJM7P7EAQbD22DffEDNdHjSG3x2xII4fOYhU\nVsHwGX2As9Iv1qjnTGW2DGr1uUTUXlZ7yorQ19jnAXzWlisiIltoP+ijYR8uTSeRSCmdvqyuUbLQ\naxeL+PG7738zvvSdC7rb1fBjVp0yC01Dp0cb9nw16jmrZz3PJSL7WK2U7QLwEQAxzW27W385RGQX\nzhyz39aQD+GAzzSANVOdYs8X0eZkNZR9H8DPAUxpbrNYzCeiTktlFLz0KgNZK3ndAjxuF7JKoXKb\nWv3SHZHUUz4iqZnqVKtmlBFRd7HcUyZJ0sfsvBAiss/w2XGOumixXKGEg3tjVTPGAMMRSanyEUnN\nzAZjzxfR5mQ1lJ0WRfF+AD8EkFdvlCRpqvZTiKhTjI3iU28sdfqSuorbJWD3jjAWry7jaiZXuV2A\nvrk2npTx0L2DVc9f72ww9nwRbU5WQ9lWlBv75zW3lQDsbfkVEdGaqWHs4uQCMnJ5Wc04rJQa87jL\nS4bhgAejk/HK7W63gLym5GhcVlR//7NxfSjjbDAissJqKLsbwA5JkvhfESIH4yDY1pBzJYyMzSLo\nd+tu1wayWMRftaxo/P2rs8g4G4yIrLAayn6J8s5LhjIiB2P1pdVq72dSd1pq1ZpFBrBPjIgasxrK\nSgB+IYriKIDKYCNJkv69LVdFRJZML6Txhb97EUuZHFwQEPBxU3Qr3XjtFnjcLkhTCchKAYVS7aVL\n9bZa1TD2iRFRI1ZD2X+29SqIyDJ1Er/2IGsAKKCElMwtlq3kdpXHXmh/z9olSSNWw4hoPayeffms\n3RdCRNYMn9WfoUjWGXdPxiJ+bA35EIv4USqV8ItLcSj51QPHf3EpDo9bX33M15ktwmoYEa3HWs++\nJKI2MDsDcXoh3enL6lrGOBXu8ehGWmiPNwIAJV+Ektc/R8kXK4+xO4BZOQOTiDYOhjIiBzPOtpKm\n4sjK+QbPIqt+NZ/G0OnRStg5engAE1eWKoNfVW5BgNst6KpoFycXkcoqLQlJtcKX8f2fuLKER44N\nMpgRbVCuTl8AEemlMgqGTo/i0SdHcHFSfzTS1UwOOY7mb5lCCRgZm8XwmXEA5eXHraHqwOPzuRDq\n8epuy8j5yvPWSw1fl6aTuusx7uaMJ+WWfU8ich6GMiKH0X5AqwNgae0ECxtS1aoXYL6r0u9xIZ6S\nq25v1QiSWoNlza6FY0+INi6GMiKHUCtkFybYxN9K6hQLlwBsCXpxy95tCPr1nRvaqtfRwwO47abt\nCPo9CPrduHVfLyJB8+XCVg2ANb6O+vXRwwOIRfy2fE8ich72lBF12OrRSIu60QvUWsVSefnX43Zh\nYPdWXHh1AZqxY5UKVDjgw6fvfovuuUOnR3F5bnWDRdDvwYH+bWseeWHsIbvrPf2Va9CO0ggHfHjk\n2CCGz4xzzAbRJsBQRtQh6gfz6OQCslymtMw41qJZxvluqnoVKLP5Y+tptufh5ERkhqGMqEN4TmXz\nXC6gWGz8uPr0kc7nceHQvu11K1CtDkY8nJyIzDCUEXUIP4ibt/5ABhSL+lB2aN/2tlei6h3HZMRZ\nZUSbB0MZUYfEwn5cQrLxA6kpXreA7dEevLFgHnqXc+VkV++4JLs1cxxTM0udRNTdGMqIOqS0rs4o\nMhPwuXFwby/y+WLNUKbaEQt2LNw0sxzKpU6izYOhjKgNzJagEiml05e14WSVAkbGZnHwhii8bqHu\noN1uGS3RzFInEXU3hjKiNjAuQZ1/ZQ4uC0NNaW1++UbSNJAF/R7siAXKYyhu78fQ6dGO9mpZ6Rdr\nZqmTiLobQxlRGxiXnHhUkr2yivmIEb/PjQc+fAjhgA9f+d4FnJ8oH2N1aTqJ7LKCQI+vrSHNSr8Y\nR2IQbR4MZUQ2WEoruioMm/rbq1Qj86pnRx4/chDjlxO6+15+LQE1K7eroZ79YkSkxVBGZIMnnrqg\nq4D0eF3rHnpKrbEafPTrx8ZpG2sNSM2MsGC/GBFpMZQRtYDxg3j+6rLufnUMA62f3yMg2OPTHRDe\nqKlfSw0+4u4ozmnOGd0a9CGRVqoe16xmRliwX4yItBjKiFrA+EEssInfNgG/Bw9+9FacenayEmam\nF9K6synNhANe3Hx9rBJ87rtzPzxn9OdPal9zrQGpmSVJ9osRkRZDGdE6qBWyC5qKC1C7p4msEQTA\nBcCs+JVI53Dq2UldmDEeGB6L+BFPyrqv/+rBfw85s3qbWSBqRUDikiQRrRVDGdEapTIKHj45ovvw\np9YolQCfz40evwfLSr7qwHZj9Umtas0sppHM5hH0u4CSH+GAB7t6Qzh6eABbQj7MZex/r7gkSURr\nxVBG1CS1OnZxcgEZ2Xz0Aq1fVikgqxRw675evDaT0oXfqurTSkVtfmkZGbmA+Eqhat91W9u+PMgl\nSSJaK4YyoiZp+8fIfomUgkeODWL4jH5Ho3ZzxVJK0TX+q+YS2crjEmkF0ZCPB3oTkWMxlBE1ibOk\n2qsvGjCtPg2dHm0YjvuiAdMQzUoWETmRq9MXQNRt2LjdHj6PC4P7d9TsyaoXjoN+T+W5tXZDpjLl\nAb+PPjmCodOjSGV5FikRdRYrZUQWaJfKIkEvtoS8WJYL6PG5USqVkMzmO32JjrMl5MXVdG7Nzz+0\nb3vdipZxl2M07IOSKwIoYWD31soyZa3dkM3MEyMiageGMqIG6u2yVPIcClvLegJZLOJvuGvRuMsx\nly9UzrI8P7FQOU5JfZy2p0x9nhaXpYmo0xjKiOrg2IvO2BryNWzGN/aZPfrkiO5+NWSpj+vri2Bu\nTl8x4zwxInIShjKiOobPjjOQdcBaAlKzIYvzxIjIaWwLZaIougA8DuAQABnA/ZIkTRgeEwTwzwA+\nJknSmJXnELVarQOkUxkFFycXOn15m4LHLWD/nihS2bzlgGR83+56Tz8A6yGL88SIyGnsrJQdAdAj\nSdI7RVF8B4DHAHxAvVMUxbcBeALAdVafQ2QHY8P3xJUlbA35sJRWOBy2DdwuAY/e/+vYFQs19Tw2\n6hPRRmPnSIx3A/gBAEiS9DyAtxnu9wO4C8BYE88hWjfjKISZuP4g63hSxqXpJJctWywa9iHod1fd\nXiiWcOrZyaZfj436RLTR2Fkp2wJgSfN1QRRFjyRJeQCQJOk5ABBF0fJzzMRiQXg81f+h32z6+iKd\nvoSuceJbI7oKi8/DcX3tIF4fw72/dRCfe/xfEU/qZ4Il0krTf4av2xnR9ZBdtzPS8DX498R5+J44\nD9+TzrEzlF0FoH1nXfXC1VqfE49n1nh5G4dxVxmt0vYdRcM+CIKA0clF3WOUfBECKscnkk3OSXMY\nf+3HiKeqh7RGQ76m/wx/6I69kOV8pYfsQ3fsrfsa/HviPHxPnIfvif3qhV47Q9lzAN4P4Lsr/WEv\n2fQcopqsnlPJQGY/JV+EYjif0udx4dC+7Wva+chGfSLaaOwMZacA/KYoij8BIAC4TxTFewCEJUn6\nmtXn2Hh9tAmwz6g13C4BhWLz0dUlAPWe1mhqPxHRZmJbKJMkqQjg44abx0wed0eD5xCtmXF2Fa1N\nJODFsfeLOPn9caSyOeQsnmRgFsjcLgF+rwsDu6OcDUZEpMHhsbShaQeEqj1lC1ezSGbyCPpdSC8X\nsJRSuHzZQCKt4EvffgkBnxtet8tyKDNTKJaQkQsYv5zAye+PoYQSEilFNyOunlpz5YiIuh1DGW0o\nZh/Y9ZbHvvTtF5EwaTwnc1mldXPbMnIB5ybmK19bnTXG+WREtFExlNGGYvzAzheK8LhdmF5II7Wc\nRyTowc5YqFxBKwGjlxIdvuLOC/jc8Hpd6zpA3Gj/7i2IhHowOrmAbBMDeC9MzGPo9Gjd6hfnkxHR\nRsVQRhuK8QN67LW4rroTT8qYmkkbn7apiXuiWFhaBgDk8kXLISrgd2P/nhikqQSWlbyufyzQU94Z\n+eiTI0319Cn5YiVU16p+NXPGpbZyet3OCD50x14udRKRYzGU0YZi/MCWc+YB4+LkAnIFdpIBwPmJ\ntZ3vuX9PDJ+++y0AUBW+RicX8Yd/9RyWlfqjCbeEvNh7zRb84lIciqZPrV71q5mDxI2VU1nOc6mT\niByLoYy6Qr3mbuOA2Ntu2o54UkZfNICf1ZhRxjMt1yYa9iEa9leFIWMYzuWLiKcaH1O195ot+MwH\nD2Ho9Khunly96lcz88m41ElE3YTny1BXUCsel6aTGBmbxfCZcdP7zk8swON24aF7B3H8yEH0+HgE\nV6t43QL++J7b0BcNYC6RxfCZcaSy5U0SRw8P4LabtkMQmntNdZPF0cMDGNy/AzfsimBw/46Wjcow\nhrt6YY+IqNNYKSNHqVURq1fxmF7Q94j9/NU5fOrLP0KxWMA6JjeQwa5tQZz60aT5zsdS+etSkyvC\nakiyazq/dqlT7SkjInIqhjJylFrjDuo1d6eW9X1Lcq4EoNExq9SsK/NpXJ7TB2A1HA+fHUc82Xi5\nEgBiET+2hnwN+8FaQRv2eKYfETkdQxk5irEi9qI0i+l4uqq5+67b+zF0ehRziSyWZQawdjCbzj8b\nz2Lo9GhVtdJMwOfG/utjuO99+7kDkojIBEMZOYqxIlYoAf/p6z/FWwf6dM39xsZw6oyMnMfI2Cxi\nEb/udq9bqNrdenBvL3c+EhHVwVBGjnL08AB+Js3qepMKxVLV7KqZxeZmjZmFBGqdSNCDfdduXa1k\nvqcfn3/yfyGjqWKa7XzkkUlERKsYyqjt6n0QhwM+REN+03EK6od6KqPgjYVMU9/T73UhV+AYjFYR\nAN15oclMHn/0EX2gOtC/reGYCx6ZRES0iiMxqO3qjbcAgAc/eitiEX/VeAX1Q3347HjTVa/UMgNZ\nK5VQrj6q4kkZn33ieQydHtWNyWg05oJzxIiIVrFSRm3X6IN4VyyExz75LqSyCobPjFdNbucHtzmX\nYN6Mv17GqljldkF/j9pfBpSrXVbGXDRzZBIR0UbHUEZtV+uD2GxZ0+xD3fh8KmsmkPV4BSznGj8h\nGvYh1OPFlfnqHr5QwAvFZAxGM6G5mSOTiIg2OoYyartaH8Rm/UVH3zuAE0+/jPHLCQACxN1R/Iff\nuBFAeWjs9GKGDfxrYCWQBf1ufOlT78bQ6dGqULYl5MWD99yKU89O4uLkgu7YqmaqXXYNjSUi6kYM\nZWQb45mUgiBUzqQ022VnrLBcnFzAZ//med0OvnMT87g0k8SDv30r/uFfXsVcIlsVyuxaxttsskoB\nQ6dHcdd7+vGiNAtj9t0VC+H4kYM1l5mJiKg5DGVkG23lS6vWLjvjsmStQ8PjSRmf+9oLNb8vA1nz\nzEaGlEqovH9utwsFzZlVyUwOqayCcMDHahcRUYtw9yXZpl5vkdl92t16QT//f6Fd3ALw2Kfeha/8\n3+/G4P4d8Hn0/1mYS2QR6vHqbiuVULVrloiI1oeffGSbeg35urMrDcucsYgfs/Hm5pBtdm5BQKHZ\n08BX3HJjb2Up+eh7BzBxZUnXwN8XDeD3PvBm/Kev/VT3PbRz4zgAloho/RjKyDbahn61p2xhKYtk\nNo/phTSGTo/i6OGBmsucRm6XgALXJk35fa6ay731xCJ+HLvz5srXJ58Z0x0s7nULuOs9/dgVC+Gt\nYp/pMFgOgCUiag2GMrJNOODD0fcO6Koo27b0YGp2AfGkjMtz5R199ZY5g34PdsQC6IsGkM8XcW5i\nvl2X31V8HhcGdkexsLSM1+fSpnPFVLGIH1tDPtOqljSV0D02Vyjh1LOTOH7kYM1ds8b3b2YxXTks\nnpUzIiLrGMrINqmMgodPjlQqL5emkwj63brHqB/ctZY5D/Rvq1RdUlkFk9/8KRIppepxQb8b4p4Y\nzr2yOUNbIp2D1+PGIx97O/7s5AuYmql9NujWkA8P3TtY497qOKeGrloN/cb3L5nNY4qVMyKipjGU\nUdOs9BAZA9kq/dlJ6vMnXl/SnXcZ9LtxoL9XN14hHPBByRVhZmB3tKrKs9lcnFzAo0+OIJnO6243\n7qysN6x3YHcU5ycWdM9vNHfMWEGbXkjr3neewEBEZA1DGTXFrPoFoGqZclnJmwQy4MZrt6DH56kK\ndI98bFA36+qu2/tx6keT+Iu/P4dkJo+g34WMXNTNLNMyBonNKCMXKu+Hdonyvb9+HR4/dRHpbA6h\nHi/uek8/gHL/mFpZvDSdRL5QxLE7b8aJ72uG9e6JNpw7ZqygDZ0erSxNAzw6iYjIKoYyasrw2fGq\nsDW9kDYNambcLsF0Kcv4wf7Vp36uW4qMp9Z75c5U61xJq8IBN4rF8qBX7ebLSNBTWaIcOj1aeW+U\nlIzv/n8T8HrcOG/oz5OmEggHfPjMBw+t44p4dBIR0VoxlFFTzJaimjnqaGFpGUOnRzGzmEYyk0c4\n4MGu3lDDhvONyuN2IVcwX5KtRxCAt4k7kC8UTfvo3pjPVIa7Gt+z8cuJGjs1W7OzlcNkiYjWhsNj\nqSnGpSizSfD1pJbzGBmbxdRsGvFUeQfmyNhs1SDSUosCgtMZA5kglI+JUkXDPgR81X9ND93Yi+NH\nDpouEZdft1T5nVYvHwrVT0C5L4+IiDqHlTJqinFpaiaerrvTT8vrFpDK5kzvm15IGx7rQhbV1Zz1\nLvc53dagD4/e/+u6quFXvndB1zPnFoDFZLniGAv7cQnmy8UXJxeRyipV75lxtIhxUwWHwRIRdQZD\nGTXFrKlbG8q87nJzeCqb1x1CvpRWVqo65pEqtaxv4N8a8uFqRh/g3IKAt9zY29SsssH9O5DLF7pm\nI0AireDr//SLymaIaNiHfKG4MkpEgM/rQiKlYGqmHIZv3deLwf07cH5iHrm8vuqWkfP4w796DoIg\nINTjxYMfvRW7YiGksgo8Z2qHLg6DJSLqDIYyWpejh8vH8qjLaLlCCQG/Fw98+Dbd4x590mw8xqpI\nUP9HcVdvSLeDDwBuviFac1nT7RLg87jgdgOFAiAIAm68dgty+QJ+cSm+lh+tY35xKV7z5IJiUb+U\nubC0jEc+9nYMnR41PRWhvLRcgpKS8cW/O4/HPvmuhj1fxh40jrQgImoP9pTRuoQDPmwN6Ze2LkzM\nY+j0KFLZ1SGvxr6mWNiv+3o+sax7ztHDA7h1Xy+CfjeCfg9uu2k7PG6XacXL7xGwZeUaUtkCskoB\nGTmP1+fSOD+xACXffCN9JxXrnGFprIZNL2bw6JMjyOeLiIa8NZ5Vlq6xdGxkfK840oKIqD1YKaN1\nM050V/LFStVGrcjcdXs/Jq4sVWZlfeLuAzj7wuu4OLmIjJxHRi5gZGwW+UIRHrcL0wtppJbz2B7t\nwc5YCHfd3o/P//ef6b6vIAClEiDnS5BNqnBWQ0irredwcACIBL24mja/dp/Xjayy2muXK5RwaTqJ\nS0gi6K//17nHcJpCLfVGWrDfjIjIPgxltG7qh/aFiXldVerc+Cwe+OqPIecKUHIFqJs0lZSMsy+8\njuNHDuLRJ0d0gU6aSugGxMaTMqZm0jj/ylzVLk8XBBTqtP134vDyWMSP7HIOhdzavnc07MMn7z6I\nsy+8rjvIPZ6ULZz/qf+eW0L6cHf9zoila6i3vMl+MyIi+3D5ktZN/RA/tG+77vZ8sdy4nlVWA5lK\n7VOKhvVVlmLRbH4WqgKZ29W4GtXOUObzuHDrvl7csCuCZZOjoGJhP/7j//VWDO7fUbeilUgplcD6\n0L2DOPa+m+Fxr/41/Q+/cWPV+aGqYrGIWMSPPTtDGNy/o+p3m8ysv3LIfjMiIvuwUkYto1bMfibN\notHqndqnJAj6mVlW56i2KnB53QKu3xnCxK/Wd2SAx+3CazOpmpsZ4ikZT/9kytKwWG3QMVamJq4s\nQdwdM62WLedKWM7J2HftVhw/crBqZ2xfNLDu5UfjUjX7zYiIWoehbJNo9GFc637t7calNONrqBWz\nT3352RoT48t6vAJy+QJSWaUqxOQKJURDXiwreeTygM/r0vVQtVquUEIk1IPB/UHT3YuNuASgWMJK\nX5z5uZyqC6/Oo2ghdGrD0wVD+IonZVy/M4xYxF8zAKqhzqw3bPjM+pYfeYQSEZF9GMo2iUa9QLXu\n196upX2MMdDtvSaC0Uu1j0lazpVwfmIBw2fGqyovAKDkS1he6claayBrZsjsfCKLXb2hSsBqRjOP\nrxXIBJTDndfjws03bKsKT0aJlIJHjg1WDg6Xc0Vd5XAppVSOWDIGrvUuP7byCCVuGiAi0mMo2yQa\nfRgbv55eSGPo9GhVpcbsOcZAd9tN2zG4f0fDqf9ziSwe+PAhTLy+hHhKW/VZ/9JkM69wZT5dNROt\nVWIRP66mlbrLrSUAhRLw1hu3VwJPvbDUFw0gHPDB63GbViTjKRnDZ8ZNw1Oj5cd2BiVuGiAi0mMo\n2yQafRgb71fPqGz0mqmMgouT+tlh8aSMh+4drHxt7G1SzSxmMHxmHA9+9Fb8ww9fXTmEvLTS2G7f\nkqVKrYzZsR/AJQC/Ju7A0cMD+KO//omlHjhtEDO+H7GIH1tDPt2SYb3gVuu+RsuP7QxK3DRARKTH\nULZJNPowNjvTUtuz5PO48OYbYlU9ZcNnxquqNcbAp7726OQCsprHZpVCJQB43C5NT1YBXrcAQRAQ\n7PGgWCjgarb1Ic3OzZm//uZd+L33vxmpjIKSya6HgM8Nr8elO0pK+3vTzXULePHgPeUjkrTMln7N\nXksrHPDh6HsHKtWw4TPjumpYO4MSNw0QEekxlG0SjXqBGp1peWjfdtPnGz+0g34Pjh4eMF0G+9J3\nLpiGCLMP/tXjgRREQz7cui+K8cuJuhsIjAShPIi1kC8gLds/1d/rFnDN9iB2xkL49Idvg5yRMXx2\nXDfOw+sW8Mj9v145g3LYcAal6tSPJiuhWEnKOPXsZNXvXxukYxE/SqUSEimlYQN+vWpYO4MSNw0Q\nEekxlJEpqx+Y1dWaEk58/2VceuMqEiuDS9X7a1V21A/+WlWfRFrBazMpbI/24I35jC7k1JueXyoB\nV9M5CKb3mnOvLGlaLaIJAPxeAT0+D7aEfdgZC+Ho4QFsCfkwl5GrAue1feFKxateULZSsVpr032t\n/sG5RBaxsB+37uu1FO7Wq9b1cwMAEW1WDGVkyuoH5l3v6QcA3XFJZudTGvvTtgS9iEZ86N0SQC5f\nwMLSMmIRPyJBD5LpvKHxv9ynplaO1KVN9bimv/7eS5UAaKaZVcpCqfz6xmG1tQT8bhzo78XI2CwS\n6RymZtKYuLKE7dEAoiFf1QBXq5UnOytW9foHLyGJwf07dD2BRvVCUysCFTcAENFmxVBGTan1gWk8\nLqkRt9uFP7vv7Rg6PaoLbPuu3Yo/+sgAHj4xUnMO1+rSpozH//Ei/vj/fCv+n799seZ5kc3KFUpN\njNQQqipP2gAZ8LkrYVOtollh59Jeo/7BRn1k9UJTKwIVNwAQ0WbFUEZNqfWBWa/p3Ix6WLjZ64UD\nPjxybLDSb7WUUqoqZ6r4Sr/V5+9/O058/2VcmFjQham1zB4DrFfXxD1RoFSuMJnJKgVklUJlyr5V\nrZwH1ui1zSb/11MvNLUiUHEDABFtVgxl1NSSU60PzFqHktcSCngxvZDGlTn98Ubq66nBIZVRcOLp\nlyFfzqNUAvKFYtXS4q/m0zjx/Zfx0qsLVWHKJQgoNjrzaY2Cfjfue99+nPj+yw0fe2FiHl/93s9R\ngr4Z3wm9Us1W5eqFplYEKm4AIKLNSjDbrt9N5uaS3f0DtEBfXwRzc9aqVGYBzDg9fnD/jppVGrMd\ng9pgYVyO7PEK8Pk8kJU85JUp/S4XcOCGbXhtJlm15OhxAZGgHw9+tDwC4ivfu2Dao6blFlB14Pla\nNNNLBqz+nh7+5gtrGj5b7/fsZPX+DJjuKC3BEY37zfw9ofbge+I8fE/s19cXqbn/jJWyTcas56eZ\nJadGy2pmVQ71A1gNbMUi8NIvFyGY/LHMF8sT6R/6xk/xpU+9C+OXax/XpFprIDt4QxSBHp9u08Ln\nn/yZbuyGC+WlTOO3cLsELCt5pLIKUsu1z7wUBNQ8nL3W79npuw/r/Rkwu08b1Nm4T0RUG0NZl9J+\ncF+3M4IP3bHX0ge3WQBb75KT1RBh/N71irT5QmllWbCZgRbmzCpgggB4PO6qnYN+n0cXyn5t/45K\nNfHi5ELlvkKxhJd+uYjhM+OIBD26RvmA343rdkQQDfmQy5vvRgVq/5432u5DNu4TEVnDUNaljB/c\nspy39MFtFsCMQ0hz+QIe/uYLSC3ndbsGa4W+E0+/XAkel6aTyOUL+MwHDzX83sDqeAuzPrSXXl2E\nz+tq+DMZbQm4ceN1MSwsZZHM5hHwujC3tKwLZqUScH5iAZ994nkc6F85BPzsuC5cxSL+ys9da4fp\nXCKLnbGQrlH+YH8vHvrdd2JuLqlbztMOeI2GfVhW8vjUl38EoISB3VEcu/NmhAO+DRdi2LhPRGQN\nQ1mXWusHd63lRTXQGXvC4km5MntLe/aiNqAZlxhrLTkePTygqzYBgNfjxvatflyZT6NgyGWFUglZ\npfzYekNitYJ+Dz7/e+9AOOAr7yocm0V85b5YxI90NqcLgBl5dUaX8XeYzuZ0xxCZhUpjqO2LBnDX\n7f3482+N4PWZZM3K4dDpUZzX/J7PTyxUDhHfaCGGjftERNbYFspEUXQBeBzAIQAygPslSZrQ3P9+\nAGS5WpYAABB0SURBVA8ByAM4IUnS11dufxHA1ZWHTUqSdJ9d19gpregZWusHt7HnJ5VRKtPc1ZlV\nZtTZW+bLacYlRvMlx3DAVxm0qsrIeUzN1u7JUrndAgr51VDmcZX7z4wO9G+reY6jrOThcbtMq3Jm\ny7hKvli51uNHDuLo4QHk8oWV0ClA3BOtCrVAdQ+VWaA1C9HqbRstxNg53oOIaCOxs1J2BECPJEnv\nFEXxHQAeA/ABABBF0QvgywAGAaQBPCeK4v8AsARAkCTpDhuvq+Na0TOk/eBWe8qsMAbCfKGIc6/M\nV64lFvY3fA1joBB3R3FuYn716z1RS9c9G8+YnmXp87gQCnh1S4mhHi8UzawyQdCPdxVQnkk2+ssF\nfPV7P8d9d+6vClna72XcsakNP8axHj+TZvGV713AsTtvNl2WNf5Opxf0wdYs0NaqugGtCzFO3zBA\nRER6doaydwP4AQBIkvS8KIpv09x3M4AJSZLiACCK4o8B3A5gCkBQFMWzK9f2OUmSnrfxGjuiFT1D\n2g/uZrYwGwNh0K//IxAOeLDvuq04Nz5rWokCqqty9925Hx7DGIRagaDeUqnq0L7tleZ67c7IU89O\nlofJphVdYFPjWaFUHtZ6bmIenpVlR0ANgFlk5NWKnNfjwltu2IZ4Uq5axjVel9p/pi4vNvqdxiK1\ng622GpYvFCFNJVBCCV6Pq3IGZavCUyc2DDAIEhGtnZ2hbAvKlS9VQRRFjyRJeZP7kgC2AsgA+AsA\n3wBwE4BnRFEUV55jKhYLwuNxt/zi7XTdzoiuSnLdzgj6+iLrek2rz0+kFd3XLpd+qfH6N23Fn/zO\nIP78WyP48YVfVW7fvrUHsS092LktiON3H8KW0OoHbR+Ah373nZWvl9IKfv+xf8H80jKAciDw+z34\nk98Z1D3G7XYhFPAAJcDjEaDkCnC73HC5BfT2RnSvCQC3DOwCADzwl8/qQplZp1kiraB/T2/lNYw/\nz3KuiFDQh0c//q7K9Xz1O+cw+st5oATTY5YSacX092z8ncYifhzY24uZxQziV5crvwdg9b3uAyrf\nW722q+kcLs+lq35Xa2W8rlrX30onvjWiC4Kt+llaxe6fn5rH98R5+J50jp2h7CoA7Tvr0oQr430R\nAAkA4yhX0EoAxkVRXABwDYDLtb5JPJ5p6UW3w4fu2AtZzleqCR+6Y++6hvU1UymLhvRVi33XboHX\n4666FuM1aiseckbGXMb82COgXAHTBhEAeH0mqbtG41DYLSEvsnIRQBEvXJzBX/7d/6pZ1TH+DLUe\no/1+H7pjL14cm9EtYU69sYRHv/5vptU3K69Z63p6t/Tg43cfwmPDI7g8rcAtAD6vG/uvj5m+16/P\nVH/diuGNxuuqdf2tZNfP0gociuk8fE+ch++J/eqFXjtD2XMA3g/guys9ZS9p7nsZwE2iKG4DkEJ5\n6fIvABwDcAuAT4ii+CaUK2pv2HiNHdHJxmftkl407IMgCKbBaz3XaLYca1zyNO7QTGb0k/3rLemq\nP4NxJydQHur6lht7q5vjS6iaQXY1k8PUbPXyqSrgc1d61wZ2R3WvqV2mi4Z9uO2m7bql0CeeulDp\n1QPKy6oet8t0Kc+u3Zad2DCw0XaOEhG1k52h7BSA3xRF8ScorwbdJ4riPQDCkiR9TRTFBwCcQXlo\n+glJkq6IovhNAE+u9JiVAByrt3RJzQsHfDj63vJMLm2ouTSdxMXJxcrMrvX0ARk/mNV5X3r6ZVPj\ntIullIJUVjG9jlpzw1wCcPP1UcSTsm6UBYCqGWRuofw96jm4t7dmMNX2awHlI5Meund1mW5msbqC\nWytotjo8Gfu6Hvjwobb1dW20naNERO1kWyiTJKkI4OOGm8c09/8TgH8yPEcBcI9d10RlxkCh0s7s\nMoaRZhq46x21pDLu2AT0k/fjKblmY73KGP6KJWB0sjyVzNjYbgxEtY5mcrsE+L2uqsqYUaPNGju3\nBfGKoRpYq2rU6sppJ08E4PgLIqK14/DYTajRbk+z+5v5oLfywXzfnfshPfFvuuVE45iLRtdZHka7\nqNtVafZzpDJKw6qYaveOsK7iVUujZbrjdx9COqNAmkrAbPnTThvtRAAios2CoWydWjECoN1jBIyB\nwjgt36yi0/IP+hLg9+p7vII9Hiia8FRvtASgDqPdZlr1A1Z/juGz44inzJv4jediWu2BMjua6tEn\nRyrvX19fBJ+++y2WXqvV2NdFRNSdGMrWqRVLRe1ebqo6FkgzA6xWH1ArP+hTGQUPnxzRBaVYxI9r\newNIaEJZycKxSsZwpJ4taTz+SCvo92BHLKD72WcW00hm85ZnhdWat6b+jozjPNqJfV1ERN2JoWyd\n1lpB0lbHZuPtXW4yW15sFAJrfdCvpcpnbLoHgEjAg1++kdLdtrC0rDsCyuy1tRsX1J2QsYgfc4ls\npdnfGCgP9G/T/bzqwNipsVnEkzIuz6Ut/U5UTlsuZF8XEVF3Yihbp7VWkGo12xtfox1Lm8bvcdft\n/Tj1o8mq72llmj1gHmbqhVAASGbzVb1hqeW8pdeu9btUn2OlcrSeYMXlwvXhKQBERGUMZeu01qUi\n44e+WwDetD2EXb0h3Wu0Y2nT+D0mrixVKlmNvqfVMFMvhMYifoR7PLrqWdDvRiSov03buK/9EK91\niLr6HCuVo/UEq1YtFzYTTjZSkOnkblEiIidhKFuntS4VGUNAoQTs6g1VvVY7lsaMr5nOWh/kajXM\nVPd1ubEjFqwEiuEz45VlQwA40N8LAJiaWb2tLxpY7UfThMZ6h6jHIv6GS6DA+oJVq5YLmwknGynI\nOG35l4ioUxjK1mE91QqzcQ61JuHbvTRm/B6hHi8UTRN+ve9pNcxU93XpB7PWex3tbcNnqvvR1EPU\ntacUqNP1c/mCpfDihD6sZsKJ2WO7tXrG5V8iojKGsnVYT7XCbJyD2YdRO3bSWdmNmcooOPnMmG7u\n1rE7b7YcZhr9HLVep1HlEDCvMKoefXKk4fM7wSxANRNOzB7brdUz7hYlIipjKFuH9S67WPkwakcF\nx8puzKHTo7qzHM9PLDScuN/oe6yFtSOcaj/eKVUYswDVTDgxe+yXvnNB9xinBNBGnFClJCJyAoay\ndVjvB36rPoyW0oqlvqn1MPuA78SHvpUjnBo93gnMAn0zfx7MHuvUAEpERNYwlK2DUz7wn3jqgm3L\nVuoy22y8+oDtTnzoNxtknVqFsSNAOeXPIxERrQ1D2To45QN/ZlEfmFpZwTKOsrB6YDfVZ0eAcsqf\nRyIiWhuGsg1g57YgXrmcqHzdygqWMeBZPbC7Fjt2CHbjrkMGKCIiMmIo2wCO330Ispy3Zdmq1cts\nduwQ7NZdh0RERFoMZRvAlpB9VZdWL7PZMSiUw0eJiGgjYCijulq9zGZHgzt3HRIR0UbAUEZtZUeD\ne9Xw29v7bR8R4gTd2EtHRES1MZRRW9nR4G58zaHTo5uix4y9dEREGwtDGXUVK9WhzdJjtll+TiKi\nzYKhjGxjx/KalerQZukx2yw/JxHRZsFQRraxY3nNWA26MDGPodOjusC3WSbbb5afk4hos2AoI9vY\nsbxmrA4p+WIl+KmBz2mDWddSMbTyHKf9nEREtD4MZWQbO893PD8xj1y+WLl9eiFt+TXavWtxLRVD\nNvETEW0+DGVkGzvPd/zDv34O8aRcuT21nLf8Gu0OPGupGLKJn4ho82EoI9vYubwWCXp0oSwStP5H\nud2BZy0VQzbxExFtPgxl1JV2xkKYmknrvraq3YFnLRVDNvETEW0+DGXUldYTWtodeNZSMWQTPxHR\n5sNQRl1pPaGFgYeIiJyIoYwcj2c8EhHRZsBQRo7H8RBERLQZMJSR43XDeAhjNe/37/m1Tl8SERF1\nGVenL4CoEePuSCeOh1CreZemkxgZm8XQUxc6fUlERNRlWCkjx+uG8RDG6t3MYqZDV0JERN2KoYwc\nrxt2Sxpnn+3cFuzg1RARUTdiKCNqAWM17/jdhyBn5AbPIiIiWsVQRtQCxmrelpAPcwxlRETUBDb6\nExERETkAQxkRERGRAzCUERERETkAQxkRERGRAzCUERERETkAQxkRERGRAzCUERERETkAQxkRERGR\nAzCUERERETkAQxkRERGRAzCUERERETkAQxkRERGRAzCUERERETkAQxkRERGRAzCUERERETkAQxkR\nERGRAzCUERERETkAQxkRERGRAzCUERERETmAUCqVOn0NRERERJseK2VEREREDsBQRkREROQADGVE\nREREDsBQRkREROQADGVEREREDsBQRkREROQAnk5fANUmiqILwOMADgGQAdwvSdKE5v73A3gIQB7A\nCUmSvr5y+4sArq48bPL/b+/+XeSowziOvy9Ecwk5A6lUxMr4YGEKiXCKiJ0gojGCGLAw2oSAQbHw\nH7CSiBgiqFUk/kAIAcWARBBBTwOmO8E8QQuxEAvjL3Jo0KzFTGQ5uL29uZ3ZLzfvF2yxO/uFL/Ph\nmX32OzNMZh7odOIb3Gq51N/ZBnwCPJ2Z58cZo+aaZFJ/Zq20ZIzj137gWarj1yJwqN5knbSkSSaZ\necU66Y5NWdn2ArOZeVdEzAMvAw8DRMQ1wCvAncAlYCEiPgR+B2Yy877pTLkXVswFICL2AK8DN407\nRuu25kwiYhZrpU2jjl9bgReB2zNzKSLeAx6k+k2yTtqz5kwi4gzWSWc8fVm2e4CPATLzLLBnaNtt\nwHeZ+WtmXga+AO6l+ge0LSLORMSndeFpskblArAFeAQ4v4YxWp8mmVgr7RqVyd/A3Zm5VL/fDPy1\nyhitX5NMrJMO2ZSV7Tqqla+r/o2IzSts+xPYASwBR4D7gYPAO0NjNBmjciEzFzLzx7WM0bo1ycRa\nadeKmWTmlcz8GSAingG2U51atk7a1SQT66RD7tiy/QHMDb3flJn/rLBtDvgNuEC1gjYALkTEL8AN\nwPIfJDU3KpdJjtH4muxfa6VdIzOpr296CbgVeDQzBxFhnbSrSSbWSYdcKSvbAvAAQL1kvDi07Vtg\nV0TsjIhrqU5dfgU8RXWdABFxI9U/o5+6nHQPjMplkmM0vib711pp12qZvAHMAnuHTplZJ+1qkol1\n0iEfSF6woTtldgMzwAHgDmB7Zr45dPflJqq7L1+rG7TjwM3AAHghM7+cxvw3qtVyGfreZ8DBZXdf\n/j/m6h2AWr+GmVgrLRqVCXCufn1Ote8BXgU+WD7GOpmchpmcxjrpjE2ZJElSATx9KUmSVACbMkmS\npALYlEmSJBXApkySJKkANmWSJEkFsCmTpDFExPGIeHLa85C0cdmUSZIkFcDHLEnqrYg4BbybmSfr\n9+eAQ1SPmtkJXAIOZ+bX05ulpL5wpUxSn50AHgeIiF3AVuAYcDQzdwPPAScjYsv0piipL2zKJPXZ\naWA+IuaA/cD7wC2ZeQogM88CF4GY3hQl9YVNmaTeyszLwEfAQ8BjwFtUzwQcNoOXekjqgE2ZpL47\nATwPXMzMH4DvI2IfQETMA9cD30xxfpJ6wqZMUq9l5gKwA3i7/ugJ4HBELFJdX7avXlGTpFbNDAaD\nac9BkiSp91wpkyRJKoBNmSRJUgFsyiRJkgpgUyZJklQAmzJJkqQC2JRJkiQVwKZMkiSpADZlkiRJ\nBfgPk/YZLXxW9w0AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11ff57978>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mvdf.plot(x='vol', y='mu', kind='scatter', figsize=(10, 6));"
]
},
{
"cell_type": "code",
"execution_count": 191,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# bnds = ((0, 1), (0, 1))"
]
},
{
"cell_type": "code",
"execution_count": 192,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"cons = ({'type': 'eq', 'fun': lambda phi: phi.sum() - 1})"
]
},
{
"cell_type": "code",
"execution_count": 193,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from scipy.optimize import minimize"
]
},
{
"cell_type": "code",
"execution_count": 194,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 21 ms, sys: 1.85 ms, total: 22.9 ms\n",
"Wall time: 22.1 ms\n"
]
}
],
"source": [
"%%time\n",
"res = minimize(vol, noa * [1 / noa],\n",
" constraints=cons)"
]
},
{
"cell_type": "code",
"execution_count": 195,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
" fun: 3.0106430234745417e-06\n",
" jac: array([-0.00269223, -0.13814369, -0.19482781, 0.03117981, 0. ])\n",
" message: 'Optimization terminated successfully.'\n",
" nfev: 198\n",
" nit: 24\n",
" njev: 24\n",
" status: 0\n",
" success: True\n",
" x: array([ -3.73816300e-06, -9.35782433e-06, 2.43226673e-07,\n",
" 2.26549131e-06, 1.00001059e+00])"
]
},
"execution_count": 195,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res"
]
},
{
"cell_type": "code",
"execution_count": 196,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mvret = mu(res['x'])"
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0099969798321282548"
]
},
"execution_count": 197,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mvret"
]
},
{
"cell_type": "code",
"execution_count": 198,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x120a9f9b0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mvdf.plot(x='vol', y='mu', kind='scatter', figsize=(10, 6));\n",
"plt.axvline(res['fun'], color='r')\n",
"plt.axhline(mvret, color='r');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"http://hilpisch.com/tpq_logo.png\" width=\"350px\">"
]
}
],
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
#
# Tick Data Client
# with ZeroMQ
#
import zmq
import datetime
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect('tcp://127.0.0.1:5555')
socket.setsockopt_string(zmq.SUBSCRIBE, '')
while True:
msg = socket.recv_string()
t = datetime.datetime.now()
print(str(t) + ' | ' + msg)
#
# Tick Data Client
# with ZeroMQ
#
import zmq
import datetime
import plotly.plotly as ply
import plotly.tools as tls
from plotly.graph_objs import *
stream_ids = tls.get_credentials_file()['stream_ids']
# socket
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect('tcp://127.0.0.1:5555')
socket.setsockopt_string(zmq.SUBSCRIBE, '')
# plotting
s = Stream(maxpoints=100, token=stream_ids[0])
t = Scatter(x=[], y=[], name='tick data', mode='lines+markers', stream=s)
d = Data([t])
l = Layout(title='Bootcamp Tick Data')
f = Figure(data=d, layout=l)
ply.plot(f, filename='fpq_bootcamp', auto_open=True)
st = ply.Stream(stream_ids[0])
st.open()
while True:
msg = socket.recv_string()
t = datetime.datetime.now()
sym, value = msg.split()
print(str(t) + ' | ' + msg)
st.write({'x': t, 'y': float(value)})
#
# Tick Data Server
# with ZeroMQ
#
import zmq
import time
import random
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind('tcp://127.0.0.1:5555')
AMZN = 100.
while True:
AMZN += random.gauss(0, 1) * 0.5
msg = 'AMZN %s' % AMZN
socket.send_string(msg)
print(msg)
time.sleep(random.random() * 2)
#
# tpqoa is a wrapper class for the
# Oanda v20 API (RESTful & streaming)
# (c) Dr. Yves J. Hilpisch
# The Python Quants GmbH
#
import v20
import pandas as pd
import datetime as dt
import configparser
class tpqoa(object):
''' tpqoa is a Python wrapper class for the Oanda v20 API. '''
def __init__(self, conf_file):
''' Init function expecting a configuration file with
the following content:
[oanda_v20]
account_id = XYZ-ABC-...
access_token = ZYXCAB...
Parameters
==========
conf_file: string
path to and filename of the configuration file, e.g. '/home/me/oanda.cfg'
'''
self.config = configparser.ConfigParser()
self.config.read(conf_file)
self.access_token = self.config['oanda_v20']['access_token']
self.account_id = self.config['oanda_v20']['account_id']
self.ctx = v20.Context(
hostname='api-fxpractice.oanda.com',
port=443,
ssl=True,
application='sample_code',
token=self.access_token,
datetime_format='RFC3339')
self.ctx_stream = v20.Context(
hostname='stream-fxpractice.oanda.com',
port=443,
ssl=True,
application='sample_code',
token=self.access_token,
datetime_format='RFC3339'
)
self.suffix = '.000000000Z'
def get_instruments(self):
''' Retrieves and returns all instruments for the given account. '''
resp = self.ctx.account.instruments(self.account_id)
instruments = resp.get('instruments')
instruments = [ins.dict() for ins in instruments]
instruments = [(ins['displayName'], ins['name'])
for ins in instruments]
return instruments
def transform_datetime(self, dt):
''' Transforms Python datetime object to string. '''
if isinstance(dt, str):
dt = pd.Timestamp(dt).to_pydatetime()
return dt.isoformat('T') + self.suffix
def get_history(self, instrument, start, end,
granularity, price):
''' Retrieves historical data for instrument.
Parameters
==========
instrument: string
valid instrument name
start, end: datetime, str
Python datetime or string objects for start and end
granularity: string
a string like 'S5', 'M1' or 'D'
price: string
one of 'A' (ask) or 'B' (bid)
Returns
=======
data: pd.DataFrame
pandas DataFrame object with data
'''
start = self.transform_datetime(start)
end = self.transform_datetime(end)
raw = self.ctx.instrument.candles(
instrument=instrument,
fromTime=start, toTime=end,
granularity=granularity, price=price)
raw = raw.get('candles')
raw = [cs.dict() for cs in raw]
for cs in raw:
cs.update(cs['ask'])
del cs['ask']
if len(raw) == 0:
return 'No data available.'
data = pd.DataFrame(raw)
data['time'] = pd.to_datetime(data['time'])
data = data.set_index('time')
data.index = pd.DatetimeIndex(data.index)
for col in list('ohlc'):
data[col] = data[col].astype(float)
return data
def create_order(self, instrument, units):
''' Places order with Oanda.
Parameters
==========
instrument: string
valid instrument name
units: int
number of units of instrument to be bought (positive int, eg 'units=50')
or to be sold (negative int, eg 'units=-100')
'''
request = self.ctx.order.market(
self.account_id,
instrument=instrument,
units=units,
)
order = request.get('orderFillTransaction')
print('\n\n', order.dict(), '\n')
def stream_data(self, instrument, stop=None):
''' Starts a real-time data stream.
Parameters
==========
instrument: string
valid instrument name
'''
self.stream_instrument = instrument
self.ticks = 0
response = self.ctx_stream.pricing.stream(
self.account_id, snapshot=True,
instruments=instrument)
for msg_type, msg in response.parts():
# print(msg_type, msg)
if msg_type == 'pricing.Price':
self.ticks +=1
self.on_success(msg.time,
float(msg.bids[0].price),
float(msg.asks[0].price))
if stop is not None:
if self.ticks >= stop:
break
def on_success(self, time, bid, ask):
''' Method called when new data is retrieved. '''
print(time, bid, ask)
def get_account_summary(self, detailed=False):
''' Returns summary data for Oanda account.'''
if detailed is True:
response = self.ctx.account.get(self.account_id)
else:
response = self.ctx.account.summary(self.account_id)
raw = response.get('account')
return raw.dict()
def get_transactions(self, tid=0):
''' Retrieves and returns transactions data. '''
response = self.ctx.transaction.since(self.account_id, id=tid)
transactions = response.get('transactions')
transactions = [t.dict() for t in transactions]
return transactions
def print_transactions(self, tid=0):
''' Prints basic transactions data. '''
transactions = self.get_transactions(tid)
for trans in transactions:
templ = '%5s | %s | %9s | %12s'
print(templ % (trans['id'],
trans['time'],
trans['instrument'],
trans['units']))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment