{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 数组广播机制" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "正常的加法:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 1, 2],\n", " [10, 11, 12],\n", " [20, 21, 22],\n", " [30, 31, 32]])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = np.array([[ 0, 0, 0],\n", " [10,10,10],\n", " [20,20,20],\n", " [30,30,30]])\n", "b = np.array([[ 0, 1, 2],\n", " [ 0, 1, 2],\n", " [ 0, 1, 2],\n", " [ 0, 1, 2]])\n", "a + b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "将 `b` 的值变成一维的 `[0,1,2]` 之后的加法:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 1, 2],\n", " [10, 11, 12],\n", " [20, 21, 22],\n", " [30, 31, 32]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b = np.array([0,1,2])\n", "\n", "a + b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "结果一样,虽然两个数组的维数不一样,但是 **Numpy** 检测到 `b` 的维度与 `a` 的维度匹配,所以将 `b` 扩展为之前的形式,得到相同的形状。\n", "\n", "对于更高维度,这样的扩展依然有效。 \n", "\n", "如果我们再将 `a` 变成一个列向量呢?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0],\n", " [10],\n", " [20],\n", " [30]])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = np.array([0,10,20,30])\n", "a.shape = 4,1\n", "a" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 2])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 1, 2],\n", " [10, 11, 12],\n", " [20, 21, 22],\n", " [30, 31, 32]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a + b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "可以看到,虽然两者的维度并不相同,但是**Numpy**还是根据两者的维度,自动将它们进行扩展然后进行计算。\n", "\n", "对于 **Numpy** 来说,维度匹配当且仅当:\n", "\n", "- 维度相同\n", "- 有一个的维度是1\n", "\n", "匹配会从最后一维开始进行,直到某一个的维度全部匹配为止,因此对于以下情况,**Numpy** 都会进行相应的匹配:\n", "\n", "A|B|Result\n", "---|---|---\n", "3d array: 256 x 256 x 3 | 1d array: 3 | 3d array: 256 x 256 x 3\n", "4d array: 8 x 1 x 6 x 1 | 3d array: 7 x 1 x 5 | 3d array: 8 x 7 x 6 x 5\n", "3d array: 5 x 4 x 3 | 1d array: 1 | 3d array: 5 x 4 x 3\n", "3d array: 15 x 4 x 13 | 1d array: 15 x 1 x 13 | 3d array: 15 x 4 x 13\n", "2d array: 4 x 1 | 1d array: 3 | 2d array: 4 x 3\n", "\n", "匹配成功后,**Numpy** 会进行运算得到相应的结果。\n", "\n", "当然,如果相应的维度不匹配,那么**Numpy**会报错:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(4L,)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = np.array([0,10,20,30])\n", "a.shape" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3L,)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b.shape" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "ename": "ValueError", "evalue": "operands could not be broadcast together with shapes (4,) (3,) ", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0ma\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mValueError\u001b[0m: operands could not be broadcast together with shapes (4,) (3,) " ] } ], "source": [ "a + b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "将 `a` 转换为列向量,还是可以计算出结果:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 1, 2],\n", " [10, 11, 12],\n", " [20, 21, 22],\n", " [30, 31, 32]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a[:, np.newaxis] + b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 例子" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = np.linspace(-.5,.5, 21)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "y = x[:, np.newaxis]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(21L,)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x.shape" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(21L, 1L)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "先形成一个 21 乘 21 的网格,再计算网格到原点的距离:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "radius = np.sqrt(x ** 2 + y ** 2)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "plt.imshow(radius)" ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 0 }