{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Using `numpy`" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import itertools as it\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic array properties\n", "\n", "- dtype\n", "- shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creation of arrays\n", "\n", "- array\n", "- arange\n", "- zeros, ones, empty\n", "- zeros_like, ones_like, empty_like\n", "- eye, diag\n", "- linspace, logspace\n", "- fromiter, fromfunction, fromstring, fromregex\n", "- record arrays" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting christmas.txt\n" ] } ], "source": [ "%%file christmas.txt\n", "4 Calling Birds\n", "5 Gold Rings\n", "6 Geese a-Laying\n", "7 Swans a-Swimming\n", "8 Maids a-Milking\n", "9 Ladies Dancing\n", "10 Lords a-Leaping\n", "11 Pipers Piping\n", "12 Drummers Drumming" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Indexing\n", "\n", "- ranges\n", "- step size\n", "- reverse slicing\n", "- fancy indexing\n", "- `np.ix_`\n", "- `np.where`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Views and copies\n", "\n", "- `=` is a view\n", "- slice is a view\n", "- Use `copy()` to make a copy" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Strides\n", "\n", "- strides for dtypes\n", "- `np.lib.stride_tricks.as_strided`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vectorization and ufuncs\n", "\n", "- operators\n", "- cumsum\n", "- log, log10, log1p\n", "- exp, exp2, expm1\n", "- clip\n", "- vectorize\n", "- Using `timeit`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reshaping\n", "\n", "- reshape\n", "- ravel\n", "- order\n", "- squeeze" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Broadcasting\n", "\n", "- Broadcasting rules\n", "- Adding vector to matrix\n", "- Array expansion with `np.newarray` or None" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**: Create the following 12 by 12 multiplicaiton table using `numpy`\n", "\n", "- fromiter\n", "- fromfuction\n", "- outer\n", "- broadcasting\n", " \n", "```python\n", "array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],\n", " [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24],\n", " [ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36],\n", " [ 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48],\n", " [ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60],\n", " [ 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72],\n", " [ 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84],\n", " [ 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96],\n", " [ 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108],\n", " [ 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120],\n", " [ 11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132],\n", " [ 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144]])\n", "```" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reductions and the axis argument\n", "\n", "- mean, min, max, sum, ptp, median, var, std\n", "- axis argument" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Splitting arrays\n", "\n", "- split\n", "- np.lib.pad\n", "- hsplit, vsplit, dsplit\n", "- squeeze after split" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Combining arrays\n", "\n", "- vstack, hstack, dstack\n", "- concatenate\n", "- `r_`, `c_`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }