diff --git a/03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-02-Numpy-Broadcasting/Optional-02-Numpy-Broadcasting.ipynb b/03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-02-Numpy-Broadcasting/Optional-02-Numpy-Broadcasting.ipynb new file mode 100644 index 0000000..fee8af1 --- /dev/null +++ b/03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-02-Numpy-Broadcasting/Optional-02-Numpy-Broadcasting.ipynb @@ -0,0 +1,222 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 简单的 Numpy Broadcasting" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Broadcasting(广播) 解决的是不同形状的矩阵(或者向量)之间的运算问题。\n", + "\n", + "在代数运算中,不同形状的矩阵(或者向量)之间无法进行基本运算,但是在Numpy中,只要满足一般规则,这个运算的允许的。" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 向量和一个数字相加\n", + "\n", + "```\n", + "a = [a1, a2, a3]\n", + "b\n", + "\n", + "c = a + b\n", + "c = [a1 + b, a2 + b, a3 + b]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([3, 4, 5])" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a = np.array([1, 2, 3])\n", + "b = 2\n", + "a + b" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 二维数组和一个数字相加\n", + "\n", + "```\n", + "A = [[a11, a12, a13],\n", + " [a21, a22, a23]]\n", + "b\n", + "\n", + "C = A + b\n", + "C = [[a11 + b, a12 + b, a13 + b],\n", + " [a21 + b, a22 + b, a23 + b]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[3, 4, 5],\n", + " [3, 4, 5]])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A = np.array([[1, 2, 3],\n", + " [1, 2, 3]])\n", + "b = 2\n", + "C = A + b\n", + "C" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 二维数组和一维数组相加\n", + "\n", + "```\n", + "A = [[a11, a12, a13],\n", + " [a21, a22, a23]]\n", + "b = [b1, b2, b3]\n", + "\n", + "C = A + b\n", + "C = [[a11 + b1, a12 + b2, a13 + b3],\n", + " [a21 + b1, a22 + b2, a23 + b3]]\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[2, 4, 6],\n", + " [2, 4, 6]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A = np.array([[1, 2, 3],\n", + " [1, 2, 3]])\n", + "b = np.array([1, 2, 3])\n", + "C = A + b\n", + "C" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Broadcasting的基本原则\n", + "\n", + "整体而言,两个不同形状的矩阵(或者向量)进行基本运算,看两个矩阵(或者向量)的倒序维数。如果**倒序维数是一致的**,则“小矩阵”经过复制扩展,和“大矩阵”进行基本运算。\n", + "\n", + "比如:\n", + "\n", + "```\n", + "A.shape = (2 x 3) -> A.shape = (2 x 3)\n", + "b.shape = (3) -> b.shape = (1 x 3)\n", + "\n", + "A.shape = (2 x 3) -> A.shape = (2 x 3)\n", + "b.shape = (1) -> b.shape = (1 x 1)\n", + "```\n", + "\n", + "但是,在以下例子中,b无法broadcasting后和A进行运算\n", + "\n", + "```\n", + "A.shape = (2 x 3)\n", + "b.shape = (1 x 2)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "operands could not be broadcast together with shapes (2,3) (2,) ", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m [1, 2, 3]])\n\u001b[1;32m 3\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mC\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mA\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mC\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: operands could not be broadcast together with shapes (2,3) (2,) " + ] + } + ], + "source": [ + "A = np.array([[1, 2, 3],\n", + " [1, 2, 3]])\n", + "b = np.array([1, 2])\n", + "C = A + b\n", + "C" + ] + } + ], + "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.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-02-Numpys-Structured-Arrays/Optional-02-Numpys-Structured-Arrays.ipynb b/03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-03-Numpys-Structured-Arrays/Optional-03-Numpys-Structured-Arrays.ipynb similarity index 100% rename from 03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-02-Numpys-Structured-Arrays/Optional-02-Numpys-Structured-Arrays.ipynb rename to 03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-03-Numpys-Structured-Arrays/Optional-03-Numpys-Structured-Arrays.ipynb diff --git a/03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-03-MNIST-Simple-Data-Exploring/Optional-03-MNIST-Simple-Data-Exploring.ipynb b/03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-04-MNIST-Simple-Data-Exploring/Optional-04-MNIST-Simple-Data-Exploring.ipynb similarity index 100% rename from 03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-03-MNIST-Simple-Data-Exploring/Optional-03-MNIST-Simple-Data-Exploring.ipynb rename to 03-Jupyter-Notebook-Numpy-and-Matplotlib/Optional-04-MNIST-Simple-Data-Exploring/Optional-04-MNIST-Simple-Data-Exploring.ipynb diff --git a/06-Gradient-Descent/04-Implement-Gradient-Descent-in-Linear-Regression/04-Implement-Gradient-Descent-in-Linear-Regression.ipynb b/06-Gradient-Descent/04-Implement-Gradient-Descent-in-Linear-Regression/04-Implement-Gradient-Descent-in-Linear-Regression.ipynb index 15224ba..5eccc25 100644 --- a/06-Gradient-Descent/04-Implement-Gradient-Descent-in-Linear-Regression/04-Implement-Gradient-Descent-in-Linear-Regression.ipynb +++ b/06-Gradient-Descent/04-Implement-Gradient-Descent-in-Linear-Regression/04-Implement-Gradient-Descent-in-Linear-Regression.ipynb @@ -311,7 +311,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" } }, "nbformat": 4, diff --git a/12-Decision-Tree/01-What-is-Decision-Tree/01-What-is-Decision-Tree.ipynb b/12-Decision-Tree/01-What-is-Decision-Tree/01-What-is-Decision-Tree.ipynb index 99b9c27..dcbd159 100644 --- a/12-Decision-Tree/01-What-is-Decision-Tree/01-What-is-Decision-Tree.ipynb +++ b/12-Decision-Tree/01-What-is-Decision-Tree/01-What-is-Decision-Tree.ipynb @@ -10,9 +10,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -22,9 +20,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn import datasets\n", @@ -41,9 +37,9 @@ "outputs": [ { "data": { - "image/png": "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\nEqK5A0AJ/T8VqDA6aTzBDwAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -88,9 +84,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "def plot_decision_boundary(model, axis):\n", @@ -107,7 +101,7 @@ " from matplotlib.colors import ListedColormap\n", " custom_cmap = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])\n", " \n", - " plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)" + " plt.contourf(x0, x1, zz, cmap=custom_cmap)" ] }, { @@ -117,9 +111,9 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAG/1JREFUeJzt3X2QHPV95/H3dx+QYFmxEAkkkLCgrIuNuViK92QOpVxU\ncuaQRAUXZ1JyfHbsckVnH7jgLlVXB7oyD2eH/OU7xfhQ6YAEKg6UMdghQcTYFVV4cMkgyQKDxJV1\n2JwEi5YnSbt6AO3u9/6Y3t3Z3p6dnp6e6Yf5vKqmNP2bX/d8JZW+6u3+zG/M3RERkXLpyroAERFJ\nn5q7iEgJqbmLiJSQmruISAmpuYuIlJCau4hICdVt7mY238yeM7MXzOxlM7s9Yo6Z2V+a2X4ze9HM\nfrc15YqISBw9Mea8D/y+u4+aWS/wjJk94e47quasBVYEj08Cdwe/iohIBuqeuXvFaLDZGzzCn3y6\nBnggmLsDGDCzJemWKiIiccU5c8fMuoFdwIeB77r7z0NTLgAOVG0fDMaGQsfZCGwE6Js37xMrFi9O\nWLYk8c7pv5V1CSLSpAOv7H7b3RfVmxerubv7OLDSzAaAH5rZpe7+UqNFuftWYCvAquXLffumTY0e\nQppw/8o/yboEEWnSTavnvRZnXkNpGXc/DGwHrgq99DqwrGp7aTAmIiIZiJOWWRScsWNmpwOfBl4J\nTXsM+GKQmrkMOOLuQ4iISCbiXJZZAtwfXHfvAr7v7v9gZl8FcPctwDZgHbAfOA58uUX1iohIDHWb\nu7u/CKyKGN9S9dyB69MtTUREktInVEVESkjNXUSkhNTcRURKSM1dRKSE1NxFREpIzV1EpITU3EVE\nSkjNXUSkhNTcRURKSM1dRKSE1NxFREpIzV1EpITU3EVESkjNXUSkhNTcRURKSM1dRKSE1NxFREpI\nzV1EpITU3EVESkjNXUSkhNTcRURKSM1dRKSE1NxFREpIzV1EpITU3EVESkjNXUSkhNTcRURKqG5z\nN7NlZrbdzPaa2ctmdmPEnCvM7IiZ7Qke32hNuSIiEkdPjDljwJ+5+24z6wd2mdlP3H1vaN7T7n51\n+iWKSJHsP/wEO4fvYnTsEGf2nMfguTfw4YG1ifYDEh1LYjR3dx8ChoLnI2a2D7gACDd3Eelw+w8/\nwdND32TcTwIwOvYmTw99E2DOphy13z+/cRtmxoSfauhYUtHQNXczWw6sAn4e8fLlZvaimT1hZh9L\noTYRKZidw3dNNehJ436SncN3NbyfMzbV2Bs5llTEuSwDgJmdCTwC3OTuR0Mv7wYudPdRM1sH/AhY\nEXGMjcBGgKXnnJO4aBHJp9GxQw2Nx3096dxOFuvM3cx6qTT277n7o+HX3f2ou48Gz7cBvWa2MGLe\nVncfdPfBhf39TZYuInlzZs95DY3HfT3p3E4WJy1jwL3APnf/do05i4N5mNnq4LjvpFmoiOTf4Lk3\n0G3zZ4x12/ypm6ON7Gf00GW9DR9LKuJcllkDfAH4pZntCcZuAS4EcPctwGeBr5nZGHAC2ODu3oJ6\nRSTHJm90NppwqbVfkmNJRZy0zDOA1ZlzF6C7HCI5kzSWGNezb9zJK4cfxZnA6OIjA9ey5vybE73H\nhwfWRu6nZp5M7BuqIlIsSWOJcT37xp3sO/yDqW1nYmp7zfk3N318aY6WHxApqaSxxLheOTwrWzHn\nuLSXmrtISSWNJcblTDQ0Lu2l5i5SUkljiXFZjfZRa1zaS38LIiWVNJYY10cGrm1oXNpLN1RFSipp\nLDGuyZumUWkZyZ6au0iHibv6YtRY+D+GNeffPKuZx4lfxo1otjrKmVRe66qm5i5SUnFXWnxq6Hbc\nHWdsznlJV3cM7xc3otnqKGdSea0rTNfcRUoq7kqLE35qqrHPNS/p6o7h/eJGNFsd5Uwqr3WFqbmL\nlFQrVk9Murpj9XjciGaro5xJ5bWuMDV3kZJqxeqJSVd3rB6PG9FsdZQzqbzWFabmLlJScVda7LJe\nLHT7LemKjHHil3Ejmq2OciaV17rCdENVpKQaWWkx7ljS1R2r94sb0Wx1lDOpvNYVZlmtzLtq+XLf\nvmlTJu/dqe5f+SdZlyAlU/RIY5S813rT6nm73H2w3jyduYtIIkWPNEYpUq316Jq7iCRS9EhjlCLV\nWo+au4gkUvRIY5Qi1VqPmruIJFL0SGOUItVaj5q7iCRS9EhjlCLVWo9uqIpIIkWPNEYpUq31qLmL\nSGK1vtQ66bw8KFKtc1FzF5FI4bz3sjN/jwOjz6Ty4ae8ZMnzUkcrqLmLyCxRee99h38w9Xojywcn\nXfK31fJSR6vohqqIzBKV9w6Lu3xw0iV/Wy0vdbSKmruIzJJ2rjvJkr+tlpc6WkXNXURmSTvXnWTJ\n31bLSx2touYuIrNE5b3D4i4fnHTJ31bLSx2tohuqIjJLVN47rbRMXrLkeamjVeou+Wtmy4AHgPMA\n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\nC3FmEqD9n0wAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -151,7 +145,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.2" + "version": "3.6.4" } }, "nbformat": 4,