Skip to content

Instantly share code, notes, and snippets.

@ryanpeach
Created July 12, 2019 01:34
Show Gist options
  • Save ryanpeach/c14644eb4fa22dd34b1417c893ed1b38 to your computer and use it in GitHub Desktop.
Save ryanpeach/c14644eb4fa22dd34b1417c893ed1b38 to your computer and use it in GitHub Desktop.
Numpy Talk
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from timeit import timeit\n",
"from functools import partial\n",
"from numba import jit\n",
"from numpy.lib import stride_tricks\n",
"\n",
"%matplotlib inline "
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"def compare_timeit(raw_code, numpy_code,\n",
" start: int=1, stop: int=6, number=10) -> None:\n",
" ''' A function for comparing speeds between raw python and numpy code. \n",
" \n",
" Input's are functions with a single parameter, which will be a log X axis from start to stop.\n",
" See https://docs.scipy.org/doc/numpy/reference/generated/numpy.logspace.html\n",
" '''\n",
" x = np.logspace(start, stop, stop-start+1)\n",
" A, B = [], []\n",
" for val in x:\n",
" A.append(timeit(partial(raw_code, int(val)), number=number))\n",
" B.append(timeit(partial(numpy_code, int(val)), number=number))\n",
" fig, ax= plt.subplots()\n",
" ax.loglog(x, A, label='python')\n",
" ax.loglog(x, B, label='numpy')\n",
" ax.legend()\n",
" ax.set_xlabel('N (int)')\n",
" ax.set_ylabel('Time (sec)')\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 242,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[5, 6]"
]
},
"execution_count": 242,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[x+5 for x in list(range(5))][0:2]"
]
},
{
"cell_type": "code",
"execution_count": 250,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0]"
]
},
"execution_count": 250,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x=np.arange(5)\n",
"x[np.array([0, 3, 1, 4, 4])]\n",
"[x for x, m in zip([0,1,2,3],[True, False, False, False]) if m]"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_timeit(lambda N: list(range(N)),\n",
" lambda N: np.arange(N))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 251,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_timeit(lambda N: [n for n in range(N) if n > N//2],\n",
" lambda N: np.arange(N)[np.arange(N)>N//2])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# FizzBuzz"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fizz Buzz is not faster in Numpy, but it can be done if you like that paradigm."
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['fizzbuzz', 1, 2, 'fizz', 4, 'buzz', 'fizz', 7, 8, 'fizz']"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def fizz_buzz_python(N):\n",
" return ['fizzbuzz' if (i % 3 == 0 and i % 5 == 0) \n",
" else 'fizz' if (i % 3 == 0) \n",
" else 'buzz' if (i % 5 == 0) \n",
" else i for i in range(N)]\n",
"\n",
"fizz_buzz_python(10)"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['fizzbuzz', '1', '2', 'fizz', '4', 'buzz', 'fizz', '7', '8',\n",
" 'fizz'], dtype='<U8')"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def fizz_buzz_numpy(N):\n",
" out = np.arange(N).astype('<U8') # Shape: (N,)\n",
" idx = np.arange(N) # Shape: (N,)\n",
" mask_mod_3 = (idx % 3 == 0)\n",
" mask_mod_5 = (idx % 5 == 0)\n",
" out[mask_mod_3] = 'fizz'\n",
" out[mask_mod_5] = 'buzz'\n",
" out[mask_mod_3 & mask_mod_5] = 'fizzbuzz'\n",
" return out\n",
"\n",
"fizz_buzz_numpy(10)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_timeit(fizz_buzz_python, fizz_buzz_numpy_str)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"However, numpy has many more loops in it than the python example. What if we make the python example \"1to1\" the same as the numpy example?"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['fizzbuzz', '1', '2', 'fizz', '4', 'buzz', 'fizz', '7', '8', 'fizz']"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def fizz_buzz_python_slow(N):\n",
" out = list(map(str, range(N)))\n",
" idx = list(range(N))\n",
" mask_mod_3 = [i % 3 == 0 for i in idx]\n",
" mask_mod_5 = [i % 5 == 0 for i in idx]\n",
" out = ['fizz' if m3 else o for m3, o in zip(mask_mod_3, out)]\n",
" out = ['buzz' if m5 else o for m5, o in zip(mask_mod_5, out)]\n",
" out = ['fizzbuzz' if m3 and m5 else o for m3, m5, o in zip(mask_mod_3, mask_mod_5, out)]\n",
" return out\n",
"\n",
"fizz_buzz_python_slow(10)"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEPCAYAAABV6CMBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xd4VEX3wPHvJAQCAQKEToAEEnondGlKEymCiAUUBSkqClh51Z+IvtZXUBQUaQKCdEVQlI5UgQChl4QeAoQEkkB6svP740ZFTNkN23M+z8Nj9u4tZ1zYk7kzd47SWiOEEEKYy8PRAQghhHAtkjiEEEJYRBKHEEIIi0jiEEIIYRFJHEIIISwiiUMIIYRFJHEIIYSwiCQOIYQQFnH6xKGUqqGUmq2UWu7oWIQQQjgocSil5iilopVSR+7Y3kMpdVIpFaGUGg+gtT6jtR7miDiFEEL8m6N6HHOBHrdvUEp5AtOA+4F6wGNKqXr2D00IIURuCjniolrrrUqpgDs2twQitNZnAJRSi4G+wDFzzqmUGgGMAPDx8Wlep04dq8UrhBAFwb59+2K01uXy2s8hiSMHVYCLt72OBFoppfyA94GmSqn/aK0/zO5grfUMYAZASEiIDg0NtXW8QgjhVpRS583Zz5kSh8pmm9ZaxwKjzDqBUr2B3kFBQVYNTAghxN+caVZVJFD1ttf+QJQlJ9Bar9Zaj/D19bVqYEIIIf7mTIljLxCslApUShUGHgVWOTgmIYQQd3DIrSql1CKgE1BWKRUJTNBaz1ZKjQbWAp7AHK31UQvPm+OtqvT0dCIjI0lJSbnr+N2Jt7c3/v7+eHl5OToUIYSLUO5YATC7wfGzZ89SokQJ/Pz8UCq74ZSCR2tNbGwsN2/eJDAw0NHhCCEcTCm1T2sdktd+znSr6q4ppXorpWbEx8f/672UlBRJGndQSuHn5ye9MCGERdwqceQ1OC5J49/k/4kQ7iEj08SKfZGYTLa/i+RWicPdfPDBB3/9fO7cORo0aODAaIQQzurMtVs8/M0uXl52kE0nom1+PbdKHLndqnJFtycOIYS4k8mk+XbHWXp+sY0z1xL54rGmdKlXwebXdavE4ezPcZw7d446deowZMgQGjVqxIABA/jll1/o16/fX/usX7+e/v37M378eJKTk2nSpAmDBg0CIDMzk+HDh1O/fn26detGcnIyAGFhYbRu3ZpGjRrRr18/bty4AUCnTp14/fXXadmyJbVq1WLbtm32b7QQwiYibyQxaNZuJq4+Rpsafqwb14E+VZLscm1nenLcbiauPsqxqASrnrNe5ZJM6F0/z/1OnjzJ7NmzadeuHUOHDuXYsWMcP36ca9euUa5cOb799luefvppevfuzdSpUwkLCwOMpBMeHs6iRYuYOXMmAwcOZMWKFQwePJgnn3ySL7/8ko4dO/L2228zceJEPv/8cwAyMjLYs2cPa9asYeLEiWzYsMGq7RZC2JfWmqWhF3nv5+Norfn4oYYMbFIOtfFd+OMreOIHqHmvTWNwqx6HK9yqqlq1Ku3atQNg8ODB7NixgyeeeIIFCxYQFxfHrl27uP/++7M9NjAwkCZNmgDQvHlzzp07R3x8PHFxcXTs2BGAIUOGsHXr1r+O6d+//z/2F0K4ruiEFIbNC+X1FYdpUKUkv43twCP+N1AzOsEf06DlcKja2uZxuFWPQ2u9GlgdEhIyPLf9zOkZ2Mqds5iUUn/1MLy9vXn44YcpVCj7j6VIkSJ//ezp6fnXrarc/HmMp6cnGRkZdxG5EMKRVh+M4v9+OkJyWiYTetdjSKuqeOyaAps/hGJ+MHgFBHWxSyxulThcwYULF9i1axdt2rRh0aJF3HPPPVSuXJnKlSvz3//+l/Xr1/+1r5eXF+np6bk+1e3r60vp0qXZtm0b7du357vvvvur9yGEcH3XE9P4v5+O8MuhyzSpWopJAxtT0/MazOsJF3dD/X7wwGQoVsZuMUnisLO6desyb948Ro4cSXBwMM8++ywAgwYN4tq1a9Sr93ftqhEjRtCoUSOaNWvG+++/n+M5582bx6hRo0hKSqJGjRp8++23Nm+HEML2Nhy7yvgfDhOfnMar3Wszsn0ghQ4ugN/+Ax6FoP8saDgA7Pw8VoFZcuT48ePUrVvXQREZzp07R69evThy5Mi/3hs9ejRNmzZl2DD7V8l1hv83Qoi/JaSk897qYyzbF0mdiiWYPLAJ9UqmwKoX4dSvENgBHvwafP2tel1zlxxxqx6Hq9bjaN68OT4+PkyaNMnRoQghHGxHRAyvLT/E5fhkRncO4sX7gikcvgYWjIHUm9DjI2g5EjwcN7fJrRKHuYPjjhIQEJBtb2Pfvn0OiEYI4UyS0jL4+NcTzNt1nhplfVjxbFualveEX16AAwugYiPoPxPKO74stlslDiGEcEX7zt/g5aVhnItNYmi7QF7tXpuil3fD9JEQHwntX4GOr0Ohwo4OFZDEIYQQDpOakcnnG8L55vfTVPItyqLhrWlTvThsfhd2TIHS1eHp36BaK0eH+g+SOIQQwgGOXIrn5aUHOXn1Jo+1rMqbD9SjeNwpmNkXrh6GZkOg+wdQpLijQ/0Xt0ocrjo4LoQoODIyTXy15TRfbAynjE9hvn2qBZ1rlTWe/N74Lnj7wmNLoHYPR4eaI7dKHM4+OC6EKNgiom/y8tKDHIyMp0/jyrzbtz6l0q7AvN5wfjvU6QW9p4BPWUeHmiu3ShxCCOGMTCbNnB1n+WTtSXwKezLt8WY80LAiHFwMv74GWkPfr6DJ43Z/mC8/3GqRQ2d37tw56tat+6+l0Tt16sSfDyzGxMQQEBAAwNy5c3nwwQfp3bs3gYGBTJ06lcmTJ9O0aVNat27N9evXAWP59LFjx9K2bVsaNGjAnj17MJlMBAcHc+3aNQBMJhNBQUHExMQ4pO1CFFQXYpN4dOYf/PeX43QILse6cR15oGZhWPokrBwFFRrAs9uh6SCXSBpQUHscv46HK4ete86KDeH+j/LcLbul0XNz5MgRDhw4QEpKCkFBQXz88cccOHCAcePGMX/+fMaOHQtAYmIiO3fuZOvWrQwdOpQjR44wePBgFi5cyNixY9mwYQONGzembFnn7gIL4S601ny/5wLv/3IcT6X49OHGPNSsCipiA/z0PCRdhy4Toe0L4OHp6HAtIj0OO8tuafTcdO7cmRIlSlCuXDl8fX3p3bs3AA0bNvzHsY899hgAHTp0ICEhgbi4OIYOHcr8+fMBmDNnDk8//bT1GySE+Jcr8Sk89e1e3vzxCM2qlWbtuA4MaFga9ctLsHAAFCsLIzbDPWNdLmlAQe1xmNEzsJXslkYvVKgQJpMJgJSUlBz39/Dw+Ou1h4fHP5ZJz2659qpVq1KhQgU2bdrE7t27WbhwodXbI4T4m9aan8KiePunI6Rnat7rW59BrarjEbUP5g+H62eh7Ytw71tQqEjeJ3RS0uNwAgEBAX8tO7J8+fJ8nWPJkiUAbN++HV9fX/4sn/vMM88wePBgBg4ciKen6/1mI4SriL2VyrML9jN2SRjBFUqwZkx7nmhZBY8tH8DsbpCZDk/9DN3ec+mkAW7W43DV5zheeeUVBg4cyHfffce99+av5GPp0qVp27YtCQkJzJkz56/tffr04emnn5bbVELY0NqjV3jjh8PcTMngP/fX4Zn2NfCMDYdZw+FyGDR+3LjT4e3r6FCtQpZVdwOdOnXi008/JSTk36shh4aGMm7cOLZt25bj8e78/0YIW4pPTmfiqqP8cOAS9SuXZPLAJtQu7wN7Z8L6t8GrmPFcRr0+jg7VLAVyWXXxTx999BFff/21jG0IYQNbT13jteWHuHYrlTH3BTP63iC8Eq/AgifgzGYI7gZ9pkKJCo4O1eokcbiBLVu2ZLt9/PjxjB8/3r7BCOHmElMz+GDNcRbuvkBQ+eLMeLI5jfxLwZEV8PM4Yyyj1+fQ/CmXeS7DUpI4hBDCTHvOXueVZQe5eCOJER1q8FLXWnhnJMDyYXBkOfi3gH7fgF9NR4dqUwUqcWit/zVttaBzxzEuIawtJT2TSetOMmv7WaqWLsaSEW1oGVgGTm+Glc9BYjR0fgvuGQee7v+16v4tzOLt7U1sbCx+fn6SPLJorYmNjcXb29vRoQjhtA5FxvHS0oNERN9iUKtqvNGzLj4e6fDr67B7OpStBY99D5WbOjpUuykwicPf35/IyMi/1m4SBm9vb/z9rVvwXgh3kJ5p4stNEUzbHEG54kWYN7QlHWuVg6gD8MMIiDkFrUZBl3fAq6ijw7WrApM4vLy8CAwMdHQYQggXcPLKTV5aGsbRqAT6N63ChD718S2s4Pf/we8fgU95eGIl1Ozs6FAdwukTh1LKB/gKSAO2aK1lbqkQwiYyTZqZ284wed0pSngXYvrg5vRoUBFiT8PCkRC5FxoMgAc+haKlHR2uwzgkcSil5gC9gGitdYPbtvcApgCewCyt9UdAf2C51nq1UmoJIIlDCGF152ISeXnZQfadv0GP+hV5v18D/HwKQ+gcWPsmeHrBQ7Oh4QBHh+pwjupxzAWmAvP/3KCU8gSmAV2BSGCvUmoV4A/8uQZ6pn3DFEK4O5NJs2D3eT5ccwIvT8XnjzShb5PKqFvR8P1oCF8HNTpD32ngW8XR4ToFhyQOrfVWpVTAHZtbAhFa6zMASqnFQF+MJOIPhJHLooxKqRHACIBq1apZP2ghhNuJikvmteWH2B4RQ4da5fj4oYZU8i0Kx1bB6jGQngT3fwIthoOHrAn7J2ca46gCXLztdSTQCvgCmKqUegBYndPBWusZwAww1qqyYZxCCBentWbF/ktMXHWUTK35oF9DHmtZFZWaAD++BAe/h0pNoP9MKFfL0eE6HWdKHNk9XKG11omAWUu7uurquEII+4m+mcIbPxxhw/GrtAwow6cPN6aaXzE4tx1+fBYSIqHDa9DxNWNcQ/yLMyWOSKDqba/9gShLTqC1Xg2sDgkJGW7NwIQQ7mHN4cu8+eNhEtMyeeuBugxtF4iHKQ3WvQU7p0KZQBi6Dqq2cHSoTs2ZEsdeIFgpFQhcAh4FHndsSEIIdxCXlMbbPx1l1cEoGvn7MnlgY4LKl4ArR4yH+aKPQshQ6PZfKOzj6HCdnqOm4y4COgFllVKRwASt9Wyl1GhgLcZ03Dla66MWnlduVQkh/mHziWheX3GI64lpvNy1Fs92qkkhpWHHFNj0X+N5jMeXQa1ujg7VZRSYQk5CiILlVmoG//35GIv3XqR2hRJMGtiYBlV84cZ5+HEUXNgJdXtDryng4+focJ1CgSzkJD0OIQRA6LnrjF0SRlRcMqM61mRc12CKeHrAgYXG4oQAD06Hxo+6bc0MW3KrxCGD40IUbBmZJqZujuCLjeH4ly7GslFtaF69DCTGGM9lnPgZqt8D/b6GUvK8V365VeIQQhRckTeSGLs4jNDzN+jftAoT+9anhLcXnPwNVo2GlHhj8Lv18/Iw311yq8Qht6qEKJhWH4zijR8PozV8/kgTHmxaBVJvwepXYN9cqNAAnvwJKtR3dKhuwa0Sh9yqEqJgSUzN4J1VR1m2L5Km1Uox5ZGmxsN8F/cY02xvnIN2Y6HzG1CoiKPDdRtulTiEEAXHocg4xiwO43xsIi/eG8QL9wXjRaYxxXbbJPD1h6fXQPW2jg7V7bhV4pBbVUK4P5NJM2PbGT5de5JyJYqwaHhrWtXwg5hw+GG4UaGvySDo8RF4l3R0uG7JrRKH3KoSwr1dTUjhpaVh7IiI5f4GFfmwf0NKFfWCPTNh3f+BlzcMnA/1+jo6VLfmVolDCOG+1h+7ymvLD5KSbuKj/g15pEVVo2bGwuchYj0EdTFqZpSo6OhQ3Z4kDiGEU0tJz+T9X47z3R/nqV+5JFMebUpQ+eJwfDWsetGomdHzU2jxjDzMZyeSOIQQTuvElQReXHSAU1dvMbx9IK90r02RzCRY+TyELZCaGQ7iVolDBseFcA9aa+bvOs/7a45T0tuLeUNb0rFWObjwhzHNNv4itH8FOr4OhQo7OtwCx60ShwyOC+H6Ym+l8uryQ2w6EU3n2uX438ONKeutYOO7sP0zY6mQp3+Faq0dHWqB5VaJQwjh2raFX+OlpQeJT07nnd71GNI2ABVzChYOh8sHoelgY5ptkRKODrVAk8QhhHC4tAwTn647yYytZwguX5z5Q1tSt2IJ2DMD1r9tFFd6ZCHU7eXoUAWSOIQQDnb62i3GLD7AkUsJDG5djbceqId3cjQsGAKnN0FQ16xpthUcHarI4laJQwbHhXAdWmuWhl7knVXHKOLlwYwnmtOtfkU4uhJ+HgvpKfDAZKOkq0yzdSpulThkcFwI1xCflM4bPx7ml8OXaVvTj8kDm1CxSKpRme/gIqjczJhmW1Z+CXRGbpU4hBDOb8/Z64xdfIDom6mMv78OI9rXwOPiLvhhJCREGlNsO7wKnl6ODlXkQBKHEMIuMjJNfLExnKmbI6hWphgrnm1L40rFYOM7sGMKlA6AoeugagtHhyryIIlDCGFzF68nMWbxAfZfiGNAc3/e6VOf4vHhMGs4XDkMzYZA9w+gSHFHhyrMIIlDCGFTP4Vd4q0fjwDwxWNN6dOwIuz5BtZPMJ7HeHQR1Onp4CiFJSRxCCFs4lZqBm//dIQf9l+iefXSfP5IE6oWioMF/eDMFqjVA/p8CcXLOzpUYSFJHEIIqwu7GMeYxQeMW1T3BfPCvUEUOr4Sfh4HmWnQ63No/pRMs3VRbpU45DkOIRwr06SZ/vtpPlt/igolvVkysg0tKnjAT6Pg0BKoEgL9Z4BfTUeHKu6C0lo7OgarCwkJ0aGhoY4OQ4gC5Up8CuOWhLHrTCwPNKrEB/0a4nvlD+PZjJuXoeNrxoq2nm71+6pbUUrt01qH5LWffIJCiLu29ugVXl9xiLQME58MaMTDjcuhNk+EnVOhTA0Ytg788/w+Ei5CEocQIt+S0zJ575djfL/7Ag2r+DLl0SbUMJ2HWY/C1SPQ/Gno/r6xSKFwG5I4hBD5ciwqgRcXHyAi+hYjO9Tg5a7BFN47HTZOBG9feHwp1Oru6DCFDUjiEEJYRGvNtzvO8dGvJyhVzIsFw1pxT/kU+L4fnN0KtR+APl+AT1lHhypsRBKHEMJsMbdSeWXZQbacvEaXuuX5+KFG+J1dDV+/BJkZxnMZTZ+QabZuThKHEMIsW05G88qyQ9xMSee9vvUZ3NgXteY5OLIc/FtC/2+MgXDh9iRxCCFylZqRySe/nWT29rPUrlCChc+0onbSfpj+LNy6Cp3fgnvGyTTbAsTpP2mlVA3gTcBXaz3A0fEIUZBERN/khUVhHL+cwJA21flPt0C8f38f/pgGfsEwbD1UaeboMIWdmZU4lFIhQHugMpAMHAE2aK2v53HcHKAXEK21bnDb9h7AFMATmKW1/iinc2itzwDDlFLLzYlVCHH3tNYs2nORd38+SrHChZg9JIT7Sl+Db7tA9DFo8Qx0fQ8KF3N0qMIBck0cSqmngBeBs8A+4CTgDdwDvK6UOgL8n9b6Qg6nmAtMBebfdk5PYBrQFYgE9iqlVmEkkQ/vOH6o1jrasiYJIe5GXFIa41cc5rejV2gfXJZJDzWg/NFZsPy/ULQ0DFoOwV0dHaZwoLx6HD5AO611cnZvKqWaAMFAtolDa71VKRVwx+aWQERWTwKl1GKgr9b6Q4zeiRDCQXadjmXckjBiE1N5s2ddhjXwxOPHgXB+O9TtDb2mgI+fo8MUDpZr4tBaT8vj/bB8XLMKcPG215FAq5x2Vkr5Ae8DTZVS/8lKMNntNwIYAVCtWrV8hCVEwZWeaeLzDaf4astpAvx8+OGJtjS8vha+eQW0Cfp+BU0el2m2AjB/jGMeMEZrHZf1ujQwSWs9NB/XzO5vXo4rLWqtY4FReZ1Uaz0DmAHGIof5iEuIAulCbBIvLj5A2MU4HgmpyttdKuGzfiwc/RGqtoZ+06FMoKPDFE7E3FlVjf5MGgBa6xtKqab5vGYkUPW21/5AVD7P9Q+yrLoQlvnxQCT/t/IoHgqmPd6MB3xOwOyBkHgN7nsb2o0FD09HhymcjIe5+2X1MgBQSpUh/1N59wLBSqlApVRh4FFgVT7P9Q9a69Va6xG+vr7WOJ0QbutmSjpjFx9g3JKD1KtUkl9Ht+CBS1PguwehSEl4ZiO0f1mShsiWuV/+k4CdWVNiNTAQY9whV0qpRUAnoKxSKhKYoLWerZQaDazFmEk1R2t9ND/BZ3M96XEIkYf9F24wZvEBouJSeKlrLZ6vm4Tnkvvh2gloORK6TgSvoo4OUzgxsws5KaXqAfdijFFs1Fofs2Vgd0MKOQnxb5kmzddbIvhsQziVfL2ZMrAhzS8tgE3vQzE/eHAaBHVxdJjCgWxRyKkMkKi1/lYpVU4pFai1Ppv/EK1PehxCZC8qLpmxS8LYc/Y6vRtX5oPOJSmx5km4sBPq9TVqgBcr4+gwhYswq8ehlJoAhAC1tda1lFKVgWVa63a2DjA/pMchhOF6Yhqzt59h3s7zaK15t099+ntuRf36urFDz/9B40dlmq0ArN/j6Ac0BfYDaK2jlFIl7iI+IYQNXbuZyqxtZ/juj/Mkp2fSs0ElXu9Qjmo734Djq6BaW2Oabenqjg5VuCBzE0ea1lorpTSAUsop60DKrSpR0F1NSOGb38/w/Z7zpGWY6N24MqM7BhAcvxOWPAZJsdDlHWj7osyYEvlmbuJYqpT6BiillBoODAVm2i6s/NFarwZWh4SEDHd0LELYU1RcMtN/P83ivRfJNGkGNyjG81XPUP7KMpi3CVLioVwdGLQUKjV2dLjCxZmVOLTWnyqlugIJQG3gba31eptGJoTI08XrSXy15TQr9p2nAWf4qsoZ2nOAIqfC4BRQvIKxxlRQV6jVA7y8HR2ycAPmLjniA2zSWq9XStUGaiulvLTW6bYNTwiRnXMxicxZv5/4o2vp7BHGm0UPUzwjDqIV+LcwiisFd4WKjcDD3Od8hTCPubeqtgLts54e3wCEAo8Ag2wVWH7IGIdwa1pz4fgeDm9eSoWrW5mgwvEspDF5l8EjuBsEd4Oa98rqtcLmzJ2Ou19r3Uwp9QJQVGv9iVLqgNY6v+tV2ZRMxxVuI/UmnNlC3MFfIGI9pTJiALhcrA4lG/XEp35PowKfDHQLK7D2dFyllGqD0cMYZuGxQghzaQ0xpyB8HYSvw3R+Fx6mdDx0UXbRiIyao2jd/REqVZDSAcJxzP3yHwP8B/hRa300qw74ZtuFJUQBkpYE57b9lSyIM+qiRXoF8nNaD3Z7NqdRm2481T6Y0j6FHRysEObPqtqKMc7x5+szGCVlnYqMcQiXcf0shK83EsW5bZCRAl7FiKvYlpUe/ZgRVZNEVYmhnQL5vF0AvkW9HB2xEH/JdYxDKTUD+FJrfTib93wwBshTtdYLbRei5WSMQzidjFQ4v/PvZBEbbmwvUxOCu3GiRGs+Pu7H5tMJlC7mxTPta/Bkm+qU8JaEIezHWmMcXwH/p5RqCBwBrgHeGHXGSwJzAKdKGkI4jfjIrESxHs5sgfRE8CwCAfdAi2fQQV3YFVeKKRvD2X32OmWLp/BGzzoMalUdnyIyhCicV141x8OAgUqp4hiLHFYCkoHjWuuTdohPCNeRmQ4X92SNVayH6KwyM75VjYUEg7tBYHu0VzG2hsfwxbJw9p0/SfkSRXi7Vz0ea1mNooVldpRwfuaOcdwCttg2FCFc0K1oiNhgJIuITZAaDx6FoFob6PouBHeHcrVBKbTWbDoRzRcbD3AwMp7Kvt6817c+D4dUxdtLEoZwHW7VH5bBcWFzpkyIOvD3DKioA8b24hWgXm+jV1GjE3j/Xb7YZNKsO3qFLzeFczQqAf/SRfmwf0MeauZP4ULyVLdwPWZXAHQlMjgurCrpOpzelNWr2GCsMKs8jKU9grsayaJCw38t7ZFp0vx65DJfbozg5NWbBPgV4/nOQTzYtApenpIwhPOxRQVAlFI+WuvE/IclhAvQGq4c/nusInIPaBMULWOUVq3V3VjaI4eKeRmZJn4+dJkvN4Vz+loiNcv58PkjTejVqBKFJGEIN2DuIodtgVlAcaCaUqoxMFJr/ZwtgxPCblISjJlPfyaLW1eM7ZWaQPtXjF5FHkt7pGeaWHngEl9tOc3ZmERqVyjBl481pWfDSnh6SIU94T7M7XF8BnQHVgForQ8qpTrYLCohbE1ruHby77GKC7vAlAFFShq9ieBuRu+iRIU8T5WWYWLF/ki+2hLBxevJ1KtUkumDm9GtXkU8JGEIN2T2rSqt9UX1z7rEmdYPRwgby0iF3z+Bw0v/WtqD8vWgzfNGsqjaCjzNe+guJT2TZaEX+XrLaaLiU2js78uEXvW5r255lNTwFm7M3MRxMet2lVZKFcZYbuS47cISwgZiImD503DlkDFN9p5xRoGjUlUtOk1Keibf777AN1tPczUhlWbVSvFB/4Z0rFVOEoYoEMxNHKOAKUAVIBJYBzxvq6CEsLqDi+Hnl6BQYXh0EdTpafEpktIyWPjHBb7ZeoaYW6m0CizD5IFNaFvTTxKGKFDMfQAwBicr2pQdeY5D/EvqLVjzChxcBNXawkOzwLeKRae4lZrB/F3nmLXtLNcT02gX5MfUe5vSuoYUTBIFk7mzqgKBF4CA24/RWvexTVj5o7VeDawOCQkZ7uhYhBO4fMi4NRV7GjqOhw6vgqf5M9Djk9OZu+Mcc3acJT45nY61yvHifUE0r579NFwhCgpz/xWtBGYDqwGT7cIRwgq0hj0zYd2bUMwPhqyGwPZmH34jMY05O84yd8c5bqZm0KVueV64N5jGVUvZMGghXIe5iSNFa/2FTSMRwhqSrsNPo+HkL8YA+INfm12DO/ZWKjO3neW7XedITMukR/2KjL43iAZVfPM8VoiCxNzEMUUpNQFjUDz1z41a6/02iUqI/Di/C1Y8A7euQvcPoPVzYMagdfTNFGZuPcOCPy6QkpHJAw0rMfreIOpULGmHoIVwPeYmjobAE8C9/H2rSme9FsKxTJmwbTJs+QBKVYdh64ynvPNwJT6F6b+fZtGeC6RnmujbpArPd65JUPkSdghaCNdlbuLoB9TQWqfZMhghLJb7aDUDAAAX/0lEQVRwGX4YbpRfbTAAen0G3rn3FKLikvlqSwRL90Zi0pp+TavwXOcgAsv62CloIVybuYnjIFAKiLZhLEJYJnw9/DgS0pOh7zRoMijPW1NbTkbzwvcHSMnIZEDzqjzXqSZVyxSzU8BCuAdzE0cF4IRSai//HONwqum4ooDISIONE2HXVChfHx7+1iiWlId5O88xcfVRalcsyYwnmkvCECKfzE0cE2waRR6UUg8CDwDlgWla63WOjEc40PWzsHwoRO2HFs9At/+CV9FcD8nINDFx9TG+++M8XepWYMqjTaSmtxB3wdwnx3/P7wWUUnOAXkC01rrBbdt7YCxj4gnM0lp/lMv1VwIrlVKlgU8xZneJgubIClg1xiiYNPA7qJd3hzc+OZ3R3+9nW3gMIzvU4LUedWSJcyHuUq6JQym1XWt9j1LqJsYsqr/eArTW2pz5inOBqcD8287rCUwDumKsfbVXKbUKI4l8eMfxQ7XWf46tvJV1nChI0pLgt9dh/3zwb2ksG1K6ep6HnY9NZOjcvVy4nsQnDzViYAvLFjMUQmQvrx6HD4DWOt/zE7XWW5VSAXdsbglEaK3PACilFgN9tdYfYvRO/kEZK8h9BPwqz44UMFePGremrp2Ee16Czm+Ytez57jOxjFqwDw18N6yVrCslhBXllThsVZC8CnDxtteRQKtc9n8B6AL4KqWCtNbT79xBKTUCGAFQrVo1K4YqHEJr2Pct/PYfo7jSEz8YBZbMsCz0Im/8eJiqZYoxZ0gLAmSarRBWlVfiKK+UeimnN7XWk/N53exuMueYpLKWO8l1yROt9QxgBkBISIitEp6wh+Q4WP0iHPvJSBb9voHi5fM8zGTSfLL2JNN/P809QWWZ9ngzfIuZV5RJCGG+vBKHJ0adcWuPJkYCt99w9gei7vaksqy6G7i417g1dTMKukyEti8ag+F5SErLYOziMNYdu8qgVtV4p099vDzzPk4IYbm8EsdlrfW7NrjuXiA4a7n2S8CjwON3e1JZVt2FmUyw8wvY9B6UrAxP/wZVW5h16OX4ZJ6ZF8rxywlM6F2Pp9oGSGElIWwor8Rx1//6lFKLgE5AWaVUJDBBaz1bKTUaWIvRq5mjtT5qhWtJj8MV3Yo2ngA/vQnq9YXeX0BR85YwPxQZxzPzQklKy2T2Uy3oXDvvW1pCiLujtM55OEApVUZrfd2O8VhFSEiIDg0NdXQYwhynN8MPIyA1AXp8CM2fNmtFW4A1hy/z0tIw/HyKMOepFtSuKIsTCnE3lFL7tNYhee2Xa4/D1ZKG9DhcSGY6bP4Atn8GZWvBkyuhQn2zDtVaM21zBJ+uO0Xz6qX55onmlC1exMYBCyH+5FbrLsgYh4uIuwDLh0HkHmj2JPT4GAqbt25USnom41ccYmVYFP2aVuHD/g3x9vK0ccBCiNu5VeIQLuDYT7DqBWMw/KHZ0HCA2YfG3Epl5Hf72Hf+Bq90q8XznYNkEFwIB3CrxCG3qpxYejKsfRNCZ0PlZjBgDpQJNPvwk1duMmzeXmJupfLVoGb0bFjJhsEKIXLjVhPdtdartdYjfH2lRrRTuXYSZnUxkkbbF2DoWouSxuaT0Tz09U7SMkwsHdlGkoYQDuZWPQ7hZLSGsIWw5lVj6fNByyG4qwWHa+buPMd7Px+jTsWSzH4qhEq+uS+hLoSwPUkcwjZSEuCXl+DwMghoD/1nQknzewrpmSbeWXWUhbsv0K1eBT57RGpoCOEs3OpfooxxOIlL+41lQ+LOQ+e3oP1L4GH+zKf45HSeX7if7RExjOpYk9e618ZDamgI4TRkjENYj9awaxrM7gaZafDUGuj4qkVJ41xMIv2+2sHus7H8b0Ajxt9fR5KGEE7GrXocwoESY2HlsxC+Fmo/AH2nQrEyFp3ij6waGgpYMKwVraSGhhBOSRKHuHtnt8EPwyEpFu7/H7QcbvayIX9auvcib648TLUyxZjzVAuq+0kNDSGclVslDhnjsLPMDNj6Cfz+CfjVhMeXQqVGlp3CpPnktxN8s/UM7YPLMvXxZvgWlRoaQjgzt0ocsuSIHcVfMnoZ53dA48eh5/+gSHGLTpGYmsHYJWGsP3aVJ1pXZ0LvehSSGhpCOD23ShzCTk7+aoxnZKQZ1fkaP2rxKaLikhk2L5STVxKY2Kc+Q9oGWD9OIYRNSOIQ5stIhfUTYPfXULEhDJgLZS2/LXjwYhzPzA8lOS2TOU+1oJPU0BDCpUjiEOaJPQ3LnoIrh6DVKOj6LhSyfCnznw9F8fLSg5QrUYSFz7SiVgWpoSGEq3GrxCGD4zZycInxFLinFzy6COr0tPgUWmumbopg0vpThGTV0PCTGhpCuCS3GomUBwCtLPUW/Pgs/DgCKjaCUdvzlTRS0jMZuySMSetP0b9ZFRYObyVJQwgX5lY9DmFFlw/B8qeNW1QdX4cOr4Gn5X9drt1MZeR3oey/EMer3WvzXKeaUkNDCBcniUP8k9awd5ZRO6NYGRiyCgI75OtUJ64kMGxuKLGJqXw9qBn3y3LoQrgFSRzib0nXjep8J36G4G7w4NfgUzZfp9p04iovfH+A4t6FWDayLQ395fahEO5CEocwXPjDqAN+6yp0ex9aPwcelg+Baa2Zs+Mc7/9yjHqVSzLryRZU9PW2QcBCCEeRxFHQmTJh+2TY/CGUqgrD1kKV5vk6VXqmiQmrjvL97gt0r2/U0ChWWP6KCeFu5F91QWUywalfYeunELUfGjwEvT4H75L5Ol18UjrPfb+PHRGxPNepJq90kxoaQrgrt0oc8hyHGTLS4Mhy2P45xJyEUtXgwenGsiH5nO10NiaRYXP3cvFGEp8+3JgBzf2tHLQQwpm4VeKQRQ5zkZYI++fDzqmQEAkVGsBDs6Heg/maZvunXaeNGhqeHorvh7emRYBlNTiEEK7HrRKHyEbSddgzA3ZPh+QbUL0d9P4cgrrku4fxp8V7LvDWyiMElPVhzpAWVPMrZqWghRDOTBKHu4qPNHoX++dBehLU7gntxkK1Vnd96kyT5qNfjzNz21naB5dl2qBmlPSWGhpCFBSSONxN9AnYMQUOLzVeN3wY2o2B8nWtcvrE1AzGLD7AhuPRDGlTnf/rJTU0hChoJHG4i4t7YftncPIX8CoGLYZDm+eNKbZWcikumWfmhXLq6k3e7VufJ9sEWO3cQgjXIYnDlWkNERuNhHF+OxQtDR3HQ8sR4ONn1UsduHCD4fP3kZpu1NDoWKucVc8vhHAdkjhcUWYGHFtpTKm9ehhKVoHuH0KzJy0u32qO1QejeGXZQcqXLMKi4a0IlhoaQhRokjhcSXoyhC2EHV9A3HkoWwv6fmWMYxQqbPXLaa35YmMEn204RYuA0kwfLDU0hBCSOFxDchyEzoY/vobEa1AlBLp/YMyUysd6UuZISc/kteWHWHUwioea+fNB/wYUKeRpk2sJIVyL0ycOpVRdYAxQFtiotf7awSHZz80r8MdXsHcOpN00nr24Z5zxLIYNa1pE30xhxPx9hF2M4/UedRjVsYbU0BBC/MWmiUMpNQfoBURrrRvctr0HMAXwBGZprT/K6Rxa6+PAKKWUBzDTlvE6jdjTsPMLCPseTBlQv5/xDEalRja/9PHLCTwzL5TriWlMH9ycHg0q2vyaQgjXYusex1xgKjD/zw1KKU9gGtAViAT2KqVWYSSRD+84fqjWOlop1QcYn3Uu9xV1wBjwPr4KPLyg6WBo+wKUqWGXy288fpUXF2XV0BjVhgZVpIaGEOLfbJo4tNZblVIBd2xuCURorc8AKKUWA3211h9i9E6yO88qYJVS6hfg++z2UUqNAEYAVKtWzSrx24XWcHarMaX2zGYoUtLoXbQaBSUq2CkEzeztZ3l/zXEaVPZl5pMhUkNDCJEjR4xxVAEu3vY6EshxHQylVCegP1AEWJPTflrrGcAMgJCQEG2NQG3KZDIq7W3/zFjWvHgF6DIRQp4Gb/v9pp+eaeLtn46waM9F7m9QkckDm1C0sAyCCyFy5ojEkd0oa45f9FrrLcAWs07sCsuqZ6TCoaXGsiCx4VA60KiD0fgx8LLfb/laa7aFx/C/tSc5fCme5zvX5OWuUkNDCJE3RySOSOD2dTD8gShrnNipl1VPvQn75sGuaXAzCio2ggHfQr2+4GHf3/B3n4ll0rpT7Dl3nSqlijL18ab0alTZrjEIIVyXIxLHXiBYKRUIXAIeBR63xomdsseRGGMsab5nBqTEQ2AHeHAa1Ohs0ym12Tlw4QaT159iW3gM5UsU4b2+9RnYoqo8nyGEsIitp+MuAjoBZZVSkcAErfVspdRoYC3GTKo5Wuuj1rieU/U4bpyHXVNh/3eQkQJ1e0G7ceCfv3red+PIpXg+W3+KjSei8fMpzFsP1GVw6+p4e0nCEEJYztazqh7LYfsachnodmlXj2Yta74clAc0fgTajoFyteweyqmrN/ls/Sl+PXIF36JevNq9Nk+1DcCniNM/9ymEcGJu9Q3i0FtVF/4wZkid+g28fKD1s9D6OfCtYvdQzsYkMmXDKX46GIVP4UKMuS+YYe0DpdiSEMIqlNbOP3PVUiEhITo0NNT2F9IawtcZCePCLijmB62ehRbDoJj9a29fvJ7El5vCWbH/EoU9PRjSNoCRHWpQ2sf6CyAKIdyPUmqf1jokr/2kx5Efmelw5AfY8TlEHwPfanD//4wnvQvbv+72lfgUpm2OYPHeCyilGNImgGc71aRcCVnJVghhfdLjsERaEhxYADu/hPgLUL6e8ZR3g/7gaf/bQDG3Uvl6y2m+++M8JpPm0ZZVeb5zEJV8i9o9FiGE6yuQPQ6bSb4Be2bB7q8hKRaqtoYHPoXgbnafUgsQl5TGN1vPMHfHOVIzMnmomT8v3hdM1TL27+0IIQoeSRy5SYgyHtjbNxfSbkGtHkYPo3obx4STks6c7WeZve0st9Iy6NO4MmPuC6ZGOetX/RNCiJy4VeKw2hhHTLgxpfbgYtAmaDgA2o2BCvWtEqelktIymLvzHN/8fob45HR61K/IuK61qF1RSrgKIezPrRLHXT8AeGmfMUPq+M9QyNtYcLDNaChd3bqBmiklPZMFf5xn+u+nibmVxr11yvNS11qy3LkQwqHcKnHctb2zjSXOO7wKrUaCT1mHhJGWYWJJ6EWmbgrnakIq9wSVZVzXWjSvXtoh8QghxO0kcdyuyztw/8dQxDG3gDIyTfyw/xJTNoZzKS6ZFgGl+fyRprSp6eeQeIQQIjtulTjueoyjeHmrxmOuTJNm9cEopmwM52xMIo39ffmgf0M6BJeVWt9CCKcjz3E4kMmkWXv0CpPXnyI8+hZ1K5Xkpa616FK3vCQMIYTdyXMcTkxrzaYT0Uxef4qjUQnULOfDtMebcX+DilJISQjh9CRx2JHWmu0RMUxad4qwi3FU9yvG5IGN6dukCp6SMIQQLkISh53sOXudT9edZM/Z61T29eaj/g15qLk/Xp4ejg5NCCEs4laJwxkrAIZdjGPSupNsC4+hXIkivNu3Po9I1T0hhAuTwXEbORplVN3bcDyaMj6FebZjTQa3rk7RwpIwhBDOSQbHHST86k0+23CKNYevUNK7EK92r82QtgEUl6p7Qgg3Id9mVnIuJpEpG8NZGXaJYl6evHhfMMPuCcS3qFTdE0K4F0kcdynyRhJfboxg+f5IvDwVIzrUYGSHmpSRqntCCDcliSOfriYYVfcW7bmAQvFkm+o826km5Ut4Ozo0IYSwKUkcFoq5lcr0rKp7mSbNwBZVGd05iMqlpOqeEKJgkMRhprikNGZsPcPcnedISc+kfzN/Xrw3mGp+UnVPCFGwuFXisMVzHDdT0pl9W9W93o0qM6ZLMDWl6p4QooByq8Rx14WcbpOUlsG8nef5Zutp4pLS6V6/AuO61qJOxZJWiFQIIVyXWyUOa0hJz2Th7gt8vSWCmFtpdK5djpe61qahv1TdE0IIkMTxD8tCLzJp3SmuJKTQLsiPb7rWlqp7QghxB0kctzkXm4h/6aJMfqQxbWs6pmysEEI4O0kctxnbpRaFPJQUURJCiFxI4riNLHEuhBB5k29KIYQQFpHEIYQQwiKSOIQQQljEJRKHUspHKbVPKdXL0bEIIURBZ9PEoZSao5SKVkoduWN7D6XUSaVUhFJqvBmneh1YapsohRBCWMLWs6rmAlOB+X9uUEp5AtOArkAksFcptQrwBD684/ihQCPgGCDrlQshhBOwaeLQWm9VSgXcsbklEKG1PgOglFoM9NVafwj861aUUqoz4APUA5KVUmu01qZs9hsBjACoVq2aNZshhBDiNo54jqMKcPG215FAq5x21lq/CaCUegqIyS5pZO03A5iRte81pdR5wBeIv22321/n9HNZIMb85uTozmvfzb45vZ9b+7LbVhDabO5n7iptNmebq7bZ3M84u23S5uzbfLftrW7WXlprm/4BAoAjt71+GJh12+sngC9tdO0ZOb3O5edQW1z7bvbN6f3c2ldQ22zBZ+4SbTZnm6u22dzPWNpsfput1d68/jhiVlUkUPW21/5AlI2utTqX1zn9bKtr382+Ob2fW/uy21YQ2mzuZ24ttm6zOdtctc3mfsbZbZM2277NOVJZWcp2FzDGOH7WWjfIel0IOAXcB1wC9gKPa62P2jQQMymlQrXWIY6Ow56kzQWDtNn92au9tp6OuwjYBdRWSkUqpYZprTOA0cBa4Diw1FmSRpYZjg7AAaTNBYO02f3Zpb0273EIIYRwLy7x5LgQQgjnIYlDCCGERSRxCCGEsIgkDiGEEBaRxJEHpVQNpdRspdRyR8diL0qpB5VSM5VSPymlujk6HltTStVVSk1XSi1XSj3r6HjspaCtOq2U6qSU2pb1WXdydDz2oJTyUEq9r5T6Uik1xFrnLZCJw5JVe7XWZ7TWwxwTqfVY2OaVWuvhwFPAIw4I965Z2N7jWutRwEDAZef852M1apdfddrCNmvgFsaCqZH2jtVaLGxzX4xlntKxZpvt8Xi6s/0BOgDN+OdSKJ7AaaAGUBg4CNS77f3ljo7bAW2eBDRzdOz2aC/QB9iJ8TCqw+O3dZuBLsCjGL8c9HJ07HZqs0fW+xWAhY6O3U5tHg+MzNrHat9hBbLHobXeCly/Y/Nfq/ZqrdOAxRjZ2i1Y0mZl+Bj4VWu9396xWoOln7HWepXWui0wyL6RWo+Fbe4MtAYeB4YrpVzyu8CSNuu/F0i9ARSxY5hWZeHnHInRXoBMa8XgiNVxnVW2q/YqpfyA94GmSqn/aGP5d3eR00rFL2D8RuqrlArSWk93RHA2kNNn3Anoj/FlssYBcdlStm3WWo+GvFeddlE5fc79ge5AKYw6Qe4kp3/LU4AvlVLtga3Wupgkjr+pbLZprXUsMMrewdhJTm3+AvjC3sHYQU7t3QJssW8odpNtm//6Qeu59gvFbnL6nH8AfrB3MHaSU5uTAKuP0bpk99RG7Llqr7MoaG0uaO0FaTNIm61OEsff9gLBSqlApVRhjIHDVQ6OydYKWpsLWntB2ixttoECmThcdNXeu1LQ2lzQ2gvSZmmz/dosq+MKIYSwSIHscQghhMg/SRxCCCEsIolDCCGERSRxCCGEsIgkDiGEEBaRxCGEEMIikjiEyAellFZKTbrt9StKqXdy2PdBpdTbWT+PUko9mce5myilet72updSaqKVQhfirkniECJ/UoH+SqmyZuz7GvAVgNZ6utZ6fh77NwF63vb6F6CPUqpYviIVwsokcQiRPxnADGBcbjsppWoBqVrrmKzX7yilXsn6eYtS6mOl1B6l1CmlVPus5SLeBR5RSoUppR7RxlO6W4ACUalPOD9JHELk3zRgkFLKN5d92gG51TQppLVuCYwFJmTVUngbWKK1bqK1XpK1XyjQ3hpBC3G3JHEIkU9a6wRgPvBiLrtVAq7l8v6fy3zvAwJy2S8aqGxJfELYiiQOIe7O5xj1DnxyeD8Zo8Z1TlKz/ptJ7vVxvLPOJYTDSeIQ4i5ora8DS8m5WM5xIMjC094EStyxrRZwxMLzCGETkjiEuHuTgJxmV23FKDucXYW2nGwG6v05OJ61rTPG7CohHE6WVRfCxpRSU4DVWusN+Ty+AvC91vo+60YmRP5I4hDCxrK++FtprfNVkU0p1QJI11qHWTcyIfJHEocQQgiLyBiHEEIIi0jiEEIIYRFJHEIIISwiiUMIIYRFJHEIIYSwyP8DRg/5nDJODF0AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_timeit(fizz_buzz_python_slow, fizz_buzz_numpy)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Numpy isn't exactly made for strings. What if we replace 'fizz' with -1, 'buzz' with -2, and 'fizzbuzz' with -3?"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-3, 1, 2, -1, 4, -2, -1, 7, 8, -1])"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def fizz_buzz_numpy_int(N):\n",
" out = np.arange(N)\n",
" idx = np.arange(N)\n",
" mask_mod_3 = (idx % 3 == 0)\n",
" mask_mod_5 = (idx % 5 == 0)\n",
" out[mask_mod_3] = -1\n",
" out[mask_mod_5] = -2\n",
" out[mask_mod_3 & mask_mod_5] = -3\n",
" return out\n",
"\n",
"fizz_buzz_numpy_int(10)"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_timeit(fizz_buzz_python, fizz_buzz_numpy_int)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Much Better!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Convolution"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ref: https://realpython.com/numpy-array-programming/#image-feature-extraction"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from skimage import io\n",
"\n",
"url = ('https://www.history.navy.mil/bin/imageDownload?image=/'\n",
" 'content/dam/nhhc/our-collections/photography/images/'\n",
" '80-G-410000/80-G-416362&rendition=cq5dam.thumbnail.319.319.png')\n",
"img = io.imread(url, as_grey=True)\n",
"\n",
"def plot_img(img):\n",
" fig, ax = plt.subplots()\n",
" ax.imshow(img, cmap='gray')\n",
" ax.grid(False)\n",
" \n",
"plot_img(img)"
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import statistics \n",
"def python_convolution(size):\n",
" m, n = img.shape\n",
" mm, nn = m - size + 1, n - size + 1\n",
"\n",
" patch_means = [[0 for _ in range(nn)] for _ in range(mm)]\n",
" for i in range(mm):\n",
" for j in range(nn):\n",
" patch_means[i][j] = statistics.mean([img[x, y] for x in range(i, i+size) for y in range(j, j+size)])\n",
"\n",
" return patch_means\n",
"\n",
"plot_img(python_convolution(10))"
]
},
{
"cell_type": "code",
"execution_count": 191,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"17.802334958018037"
]
},
"execution_count": 191,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeit(lambda: python_convolution(10), number=1)"
]
},
{
"cell_type": "code",
"execution_count": 253,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def numpy_convolution_lvl0(size):\n",
" m, n = img.shape\n",
" mm, nn = m - size + 1, n - size + 1\n",
"\n",
" patch_means = np.empty((mm, nn))\n",
" for i in range(mm):\n",
" for j in range(nn):\n",
" patch_means[i, j] = img[i: i+size, j: j+size].mean()\n",
"\n",
" return patch_means\n",
"\n",
"\n",
"plot_img(numpy_convolution_lvl0(10))"
]
},
{
"cell_type": "code",
"execution_count": 254,
"metadata": {},
"outputs": [],
"source": [
"assert np.isclose(python_convolution(10), numpy_convolution_lvl0(10)).all()"
]
},
{
"cell_type": "code",
"execution_count": 255,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6.675597778026713"
]
},
"execution_count": 255,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeit(lambda: numpy_convolution_lvl0(10), number=10)"
]
},
{
"cell_type": "code",
"execution_count": 194,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def numpy_convolution_lvl1(size):\n",
" m, n = img.shape\n",
" mm, nn = m - size + 1, n - size + 1\n",
"\n",
" patch_means = np.empty((mm, nn))\n",
" for i in range(mm):\n",
" j1 = np.arange(nn)[:, None]\n",
" j2 = np.arange(size)[None, :]\n",
" j = j1+j2\n",
" patch_means[i, j1] = img[i: i+size, j].mean(axis=(0,2))[:, None]\n",
"\n",
" return patch_means\n",
"\n",
"plot_img(numpy_convolution_lvl1(10))"
]
},
{
"cell_type": "code",
"execution_count": 258,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.80392157],\n",
" [0.79607843],\n",
" [0.78431373],\n",
" [0.77647059],\n",
" [0.78039216],\n",
" [0.79607843],\n",
" [0.79607843],\n",
" [0.80392157],\n",
" [0.80784314],\n",
" [0.79215686],\n",
" [0.78431373],\n",
" [0.78823529],\n",
" [0.76862745],\n",
" [0.77254902],\n",
" [0.77254902],\n",
" [0.78039216],\n",
" [0.79215686],\n",
" [0.77254902],\n",
" [0.76862745],\n",
" [0.77647059]])"
]
},
"execution_count": 258,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"j1 = np.arange(20)[:, None]\n",
"j2 = np.arange(10)[None, :]\n",
"j = j1+j2\n",
"img[5, j1]"
]
},
{
"cell_type": "code",
"execution_count": 195,
"metadata": {},
"outputs": [],
"source": [
"assert np.isclose(python_convolution(10), numpy_convolution_lvl1(10)).all()"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.3436798640177585"
]
},
"execution_count": 178,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeit(lambda: numpy_convolution_lvl1(10), number=10)"
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def numpy_convolution_lvl2(size):\n",
" m, n = img.shape\n",
" mm, nn = m - size + 1, n - size + 1\n",
"\n",
" patch_means = np.empty((mm, nn))\n",
" i1 = np.arange(mm)[:, None, None, None]\n",
" i2 = np.arange(size)[None, :, None, None]\n",
" j1 = np.arange(nn)[None, None, :, None]\n",
" j2 = np.arange(size)[None, None, None, :]\n",
" i = i1+i2\n",
" j = j1+j2\n",
" patch_means[i1, j1] = img[i, j].mean(axis=(1,3))[:, None, :, None]\n",
" \n",
" return patch_means\n",
"\n",
"plot_img(numpy_convolution_lvl2(10))"
]
},
{
"cell_type": "code",
"execution_count": 198,
"metadata": {},
"outputs": [],
"source": [
"assert np.isclose(python_convolution(10), numpy_convolution_lvl2(10)).all()"
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7662943030009046"
]
},
"execution_count": 199,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeit(lambda: numpy_convolution_lvl2(10), number=10)"
]
},
{
"cell_type": "code",
"execution_count": 200,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def numpy_convolution_lvl3(size):\n",
" shape = (img.shape[0] - size + 1, img.shape[1] - size + 1, size, size)\n",
" strides = 2 * img.strides\n",
" patches = stride_tricks.as_strided(img, shape=shape, strides=strides)\n",
" return patches.mean(axis=(-1, -2))\n",
"\n",
"plot_img(numpy_convolution_lvl3(10))"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {},
"outputs": [],
"source": [
"assert np.isclose(python_convolution(10), numpy_convolution_lvl3(10)).all()"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.17575929500162601"
]
},
"execution_count": 202,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeit(lambda: numpy_convolution_lvl3(10), number=10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Best Practices"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Shape Assertions"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mask vs. Index"
]
},
{
"cell_type": "code",
"execution_count": 206,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
]
},
"execution_count": 206,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = np.arange(10)\n",
"x"
]
},
{
"cell_type": "code",
"execution_count": 205,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([False, False, False, False, False, False, True, True, True,\n",
" True])"
]
},
"execution_count": 205,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_mask = x > 5\n",
"x_mask"
]
},
{
"cell_type": "code",
"execution_count": 207,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([6, 7, 8, 9])"
]
},
"execution_count": 207,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[x_mask]"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {},
"outputs": [],
"source": [
"x_idx = np.where(x_mask)[0]"
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([6, 7, 8, 9])"
]
},
"execution_count": 209,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[x_idx]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@ryanpeach
Copy link
Author

Not commented, sorry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment