{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# NumPy\n", "\n", "Credits: Forked from [Parallel Machine Learning with scikit-learn and IPython](https://github.com/ogrisel/parallel_ml_tutorial) by Olivier Grisel\n", "\n", "* NumPy Arrays, dtype, and shape\n", "* Common Array Operations\n", "* Reshape and Update In-Place\n", "* Combine Arrays\n", "* Create Sample Data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## NumPy Arrays, dtypes, and shapes" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1 2 3]\n", "(3,)\n", "int64\n" ] } ], "source": [ "a = np.array([1, 2, 3])\n", "print(a)\n", "print(a.shape)\n", "print(a.dtype)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 2 4]\n", " [1 3 5]]\n", "(2, 3)\n", "int64\n" ] } ], "source": [ "b = np.array([[0, 2, 4], [1, 3, 5]])\n", "print(b)\n", "print(b.shape)\n", "print(b.dtype)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0., 0., 0., 0., 0.])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.zeros(5)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[1, 1, 1, 1],\n", " [1, 1, 1, 1],\n", " [1, 1, 1, 1]], dtype=int32)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.ones(shape=(3, 4), dtype=np.int32)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Common Array Operations" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 1. 2. ]\n", " [ 0.5 1.5 2.5]]\n", "(2, 3)\n", "float64\n" ] } ], "source": [ "c = b * 0.5\n", "print(c)\n", "print(c.shape)\n", "print(c.dtype)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 3. 5. ]\n", " [ 1.5 3.5 5.5]]\n" ] } ], "source": [ "d = a + c\n", "print(d)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1., 3., 5.])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d[0]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d[0, 0]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1. , 1.5])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d[:, 0]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "19.5" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.sum()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3.25" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.mean()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 2.5, 6.5, 10.5])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.sum(axis=0)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 3. , 3.5])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.mean(axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reshape and Update In-Place" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0 1 2 3 4 5 6 7 8 9 10 11]\n" ] } ], "source": [ "e = np.arange(12)\n", "print(e)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0 1 2 3]\n", " [ 4 5 6 7]\n", " [ 8 9 10 11]]\n" ] } ], "source": [ "# f is a view of contents of e\n", "f = e.reshape(3, 4)\n", "print(f)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4 0 0 0 0 0 0 0]\n" ] } ], "source": [ "# Set values of e from index 5 onwards to 0\n", "e[5:] = 0\n", "print(e)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[0, 1, 2, 3],\n", " [4, 0, 0, 0],\n", " [0, 0, 0, 0]])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# f is also updated\n", "f" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ " C_CONTIGUOUS : True\n", " F_CONTIGUOUS : False\n", " OWNDATA : False\n", " WRITEABLE : True\n", " ALIGNED : True\n", " UPDATEIFCOPY : False" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# OWNDATA shows f does not own its data\n", "f.flags" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Combine Arrays" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 3])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[0, 2, 4],\n", " [1, 3, 5]])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 1. , 3. , 5. ],\n", " [ 1.5, 3.5, 5.5]])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 3, 1, 2, 3, 1, 2, 3])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.concatenate([a, a, a])" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 1. , 2. , 3. ],\n", " [ 0. , 2. , 4. ],\n", " [ 1. , 3. , 5. ],\n", " [ 1. , 3. , 5. ],\n", " [ 1.5, 3.5, 5.5]])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Use broadcasting when needed to do this automatically\n", "np.vstack([a, b, d])" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0. , 2. , 4. , 1. , 3. , 5. ],\n", " [ 1. , 3. , 5. , 1.5, 3.5, 5.5]])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# In machine learning, useful to enrich or \n", "# add new/concatenate features with hstack\n", "np.hstack([b, d])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create Sample Data" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import pylab as plt\n", "import seaborn\n", "\n", "seaborn.set()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create evenly spaced numbers over the specified interval\n", "x = np.linspace(0, 2, 10)\n", "plt.plot(x, 'o-');\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nCeD/A+OBLyXsDdF8AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create sample data, add some noise\n", "x = np.random.uniform(1, 100, 1000)\n", "y = np.log(x) + np.random.normal(0, .3, 1000)\n", "\n", "plt.scatter(x, y)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }