mirror of
https://github.com/donnemartin/data-science-ipython-notebooks.git
synced 2024-03-22 13:30:56 +08:00
d52331cd5a
Source: https://github.com/jakevdp/PythonDataScienceHandbook unmodified
802 lines
99 KiB
Python
802 lines
99 KiB
Python
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!--BOOK_INFORMATION-->\n",
|
||
"<img align=\"left\" style=\"padding-right:10px;\" src=\"figures/PDSH-cover-small.png\">\n",
|
||
"*This notebook contains an excerpt from the [Python Data Science Handbook](http://shop.oreilly.com/product/0636920034919.do) by Jake VanderPlas; the content is available [on GitHub](https://github.com/jakevdp/PythonDataScienceHandbook).*\n",
|
||
"\n",
|
||
"*The text is released under the [CC-BY-NC-ND license](https://creativecommons.org/licenses/by-nc-nd/3.0/us/legalcode), and code is released under the [MIT license](https://opensource.org/licenses/MIT). If you find this content useful, please consider supporting the work by [buying the book](http://shop.oreilly.com/product/0636920034919.do)!*\n",
|
||
"\n",
|
||
"*No changes were made to the contents of this notebook from the original.*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!--NAVIGATION-->\n",
|
||
"< [Aggregations: Min, Max, and Everything In Between](02.04-Computation-on-arrays-aggregates.ipynb) | [Contents](Index.ipynb) | [Comparisons, Masks, and Boolean Logic](02.06-Boolean-Arrays-and-Masks.ipynb) >"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Computation on Arrays: Broadcasting"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We saw in the previous section how NumPy's universal functions can be used to *vectorize* operations and thereby remove slow Python loops.\n",
|
||
"Another means of vectorizing operations is to use NumPy's *broadcasting* functionality.\n",
|
||
"Broadcasting is simply a set of rules for applying binary ufuncs (e.g., addition, subtraction, multiplication, etc.) on arrays of different sizes."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Introducing Broadcasting\n",
|
||
"\n",
|
||
"Recall that for arrays of the same size, binary operations are performed on an element-by-element basis:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import numpy as np"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([5, 6, 7])"
|
||
]
|
||
},
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"a = np.array([0, 1, 2])\n",
|
||
"b = np.array([5, 5, 5])\n",
|
||
"a + b"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Broadcasting allows these types of binary operations to be performed on arrays of different sizes–for example, we can just as easily add a scalar (think of it as a zero-dimensional array) to an array:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([5, 6, 7])"
|
||
]
|
||
},
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"a + 5"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We can think of this as an operation that stretches or duplicates the value ``5`` into the array ``[5, 5, 5]``, and adds the results.\n",
|
||
"The advantage of NumPy's broadcasting is that this duplication of values does not actually take place, but it is a useful mental model as we think about broadcasting.\n",
|
||
"\n",
|
||
"We can similarly extend this to arrays of higher dimension. Observe the result when we add a one-dimensional array to a two-dimensional array:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([[ 1., 1., 1.],\n",
|
||
" [ 1., 1., 1.],\n",
|
||
" [ 1., 1., 1.]])"
|
||
]
|
||
},
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"M = np.ones((3, 3))\n",
|
||
"M"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([[ 1., 2., 3.],\n",
|
||
" [ 1., 2., 3.],\n",
|
||
" [ 1., 2., 3.]])"
|
||
]
|
||
},
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"M + a"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Here the one-dimensional array ``a`` is stretched, or broadcast across the second dimension in order to match the shape of ``M``.\n",
|
||
"\n",
|
||
"While these examples are relatively easy to understand, more complicated cases can involve broadcasting of both arrays. Consider the following example:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[0 1 2]\n",
|
||
"[[0]\n",
|
||
" [1]\n",
|
||
" [2]]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"a = np.arange(3)\n",
|
||
"b = np.arange(3)[:, np.newaxis]\n",
|
||
"\n",
|
||
"print(a)\n",
|
||
"print(b)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([[0, 1, 2],\n",
|
||
" [1, 2, 3],\n",
|
||
" [2, 3, 4]])"
|
||
]
|
||
},
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"a + b"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Just as before we stretched or broadcasted one value to match the shape of the other, here we've stretched *both* ``a`` and ``b`` to match a common shape, and the result is a two-dimensional array!\n",
|
||
"The geometry of these examples is visualized in the following figure (Code to produce this plot can be found in the [appendix](06.00-Figure-Code.ipynb#Broadcasting), and is adapted from source published in the [astroML](http://astroml.org) documentation. Used by permission)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"![Broadcasting Visual](figures/02.05-broadcasting.png)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"The light boxes represent the broadcasted values: again, this extra memory is not actually allocated in the course of the operation, but it can be useful conceptually to imagine that it is."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Rules of Broadcasting\n",
|
||
"\n",
|
||
"Broadcasting in NumPy follows a strict set of rules to determine the interaction between the two arrays:\n",
|
||
"\n",
|
||
"- Rule 1: If the two arrays differ in their number of dimensions, the shape of the one with fewer dimensions is *padded* with ones on its leading (left) side.\n",
|
||
"- Rule 2: If the shape of the two arrays does not match in any dimension, the array with shape equal to 1 in that dimension is stretched to match the other shape.\n",
|
||
"- Rule 3: If in any dimension the sizes disagree and neither is equal to 1, an error is raised.\n",
|
||
"\n",
|
||
"To make these rules clear, let's consider a few examples in detail."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Broadcasting example 1\n",
|
||
"\n",
|
||
"Let's look at adding a two-dimensional array to a one-dimensional array:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"M = np.ones((2, 3))\n",
|
||
"a = np.arange(3)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Let's consider an operation on these two arrays. The shape of the arrays are\n",
|
||
"\n",
|
||
"- ``M.shape = (2, 3)``\n",
|
||
"- ``a.shape = (3,)``\n",
|
||
"\n",
|
||
"We see by rule 1 that the array ``a`` has fewer dimensions, so we pad it on the left with ones:\n",
|
||
"\n",
|
||
"- ``M.shape -> (2, 3)``\n",
|
||
"- ``a.shape -> (1, 3)``\n",
|
||
"\n",
|
||
"By rule 2, we now see that the first dimension disagrees, so we stretch this dimension to match:\n",
|
||
"\n",
|
||
"- ``M.shape -> (2, 3)``\n",
|
||
"- ``a.shape -> (2, 3)``\n",
|
||
"\n",
|
||
"The shapes match, and we see that the final shape will be ``(2, 3)``:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([[ 1., 2., 3.],\n",
|
||
" [ 1., 2., 3.]])"
|
||
]
|
||
},
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"M + a"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Broadcasting example 2\n",
|
||
"\n",
|
||
"Let's take a look at an example where both arrays need to be broadcast:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"a = np.arange(3).reshape((3, 1))\n",
|
||
"b = np.arange(3)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Again, we'll start by writing out the shape of the arrays:\n",
|
||
"\n",
|
||
"- ``a.shape = (3, 1)``\n",
|
||
"- ``b.shape = (3,)``\n",
|
||
"\n",
|
||
"Rule 1 says we must pad the shape of ``b`` with ones:\n",
|
||
"\n",
|
||
"- ``a.shape -> (3, 1)``\n",
|
||
"- ``b.shape -> (1, 3)``\n",
|
||
"\n",
|
||
"And rule 2 tells us that we upgrade each of these ones to match the corresponding size of the other array:\n",
|
||
"\n",
|
||
"- ``a.shape -> (3, 3)``\n",
|
||
"- ``b.shape -> (3, 3)``\n",
|
||
"\n",
|
||
"Because the result matches, these shapes are compatible. We can see this here:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([[0, 1, 2],\n",
|
||
" [1, 2, 3],\n",
|
||
" [2, 3, 4]])"
|
||
]
|
||
},
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"a + b"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Broadcasting example 3\n",
|
||
"\n",
|
||
"Now let's take a look at an example in which the two arrays are not compatible:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"M = np.ones((3, 2))\n",
|
||
"a = np.arange(3)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"This is just a slightly different situation than in the first example: the matrix ``M`` is transposed.\n",
|
||
"How does this affect the calculation? The shape of the arrays are\n",
|
||
"\n",
|
||
"- ``M.shape = (3, 2)``\n",
|
||
"- ``a.shape = (3,)``\n",
|
||
"\n",
|
||
"Again, rule 1 tells us that we must pad the shape of ``a`` with ones:\n",
|
||
"\n",
|
||
"- ``M.shape -> (3, 2)``\n",
|
||
"- ``a.shape -> (1, 3)``\n",
|
||
"\n",
|
||
"By rule 2, the first dimension of ``a`` is stretched to match that of ``M``:\n",
|
||
"\n",
|
||
"- ``M.shape -> (3, 2)``\n",
|
||
"- ``a.shape -> (3, 3)``\n",
|
||
"\n",
|
||
"Now we hit rule 3–the final shapes do not match, so these two arrays are incompatible, as we can observe by attempting this operation:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"ename": "ValueError",
|
||
"evalue": "operands could not be broadcast together with shapes (3,2) (3,) ",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
|
||
"\u001b[0;32m<ipython-input-13-9e16e9f98da6>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mM\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
||
"\u001b[0;31mValueError\u001b[0m: operands could not be broadcast together with shapes (3,2) (3,) "
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"M + a"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Note the potential confusion here: you could imagine making ``a`` and ``M`` compatible by, say, padding ``a``'s shape with ones on the right rather than the left.\n",
|
||
"But this is not how the broadcasting rules work!\n",
|
||
"That sort of flexibility might be useful in some cases, but it would lead to potential areas of ambiguity.\n",
|
||
"If right-side padding is what you'd like, you can do this explicitly by reshaping the array (we'll use the ``np.newaxis`` keyword introduced in [The Basics of NumPy Arrays](02.02-The-Basics-Of-NumPy-Arrays.ipynb)):"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"(3, 1)"
|
||
]
|
||
},
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"a[:, np.newaxis].shape"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([[ 1., 1.],\n",
|
||
" [ 2., 2.],\n",
|
||
" [ 3., 3.]])"
|
||
]
|
||
},
|
||
"execution_count": 15,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"M + a[:, np.newaxis]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Also note that while we've been focusing on the ``+`` operator here, these broadcasting rules apply to *any* binary ``ufunc``.\n",
|
||
"For example, here is the ``logaddexp(a, b)`` function, which computes ``log(exp(a) + exp(b))`` with more precision than the naive approach:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([[ 1.31326169, 1.31326169],\n",
|
||
" [ 1.69314718, 1.69314718],\n",
|
||
" [ 2.31326169, 2.31326169]])"
|
||
]
|
||
},
|
||
"execution_count": 16,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"np.logaddexp(M, a[:, np.newaxis])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"For more information on the many available universal functions, refer to [Computation on NumPy Arrays: Universal Functions](02.03-Computation-on-arrays-ufuncs.ipynb)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Broadcasting in Practice"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Broadcasting operations form the core of many examples we'll see throughout this book.\n",
|
||
"We'll now take a look at a couple simple examples of where they can be useful."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Centering an array"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"In the previous section, we saw that ufuncs allow a NumPy user to remove the need to explicitly write slow Python loops. Broadcasting extends this ability.\n",
|
||
"One commonly seen example is when centering an array of data.\n",
|
||
"Imagine you have an array of 10 observations, each of which consists of 3 values.\n",
|
||
"Using the standard convention (see [Data Representation in Scikit-Learn](05.02-Introducing-Scikit-Learn.ipynb#Data-Representation-in-Scikit-Learn)), we'll store this in a $10 \\times 3$ array:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"X = np.random.random((10, 3))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We can compute the mean of each feature using the ``mean`` aggregate across the first dimension:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([ 0.53514715, 0.66567217, 0.44385899])"
|
||
]
|
||
},
|
||
"execution_count": 18,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"Xmean = X.mean(0)\n",
|
||
"Xmean"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"And now we can center the ``X`` array by subtracting the mean (this is a broadcasting operation):"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"X_centered = X - Xmean"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"To double-check that we've done this correctly, we can check that the centered array has near zero mean:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([ 2.22044605e-17, -7.77156117e-17, -1.66533454e-17])"
|
||
]
|
||
},
|
||
"execution_count": 20,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"X_centered.mean(0)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"To within machine precision, the mean is now zero."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Plotting a two-dimensional function"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"One place that broadcasting is very useful is in displaying images based on two-dimensional functions.\n",
|
||
"If we want to define a function $z = f(x, y)$, broadcasting can be used to compute the function across the grid:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# x and y have 50 steps from 0 to 5\n",
|
||
"x = np.linspace(0, 5, 50)\n",
|
||
"y = np.linspace(0, 5, 50)[:, np.newaxis]\n",
|
||
"\n",
|
||
"z = np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We'll use Matplotlib to plot this two-dimensional array (these tools will be discussed in full in [Density and Contour Plots](04.04-Density-and-Contour-Plots.ipynb)):"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"%matplotlib inline\n",
|
||
"import matplotlib.pyplot as plt"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\nrQAAAABJRU5ErkJggg==\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x10becee48>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"plt.imshow(z, origin='lower', extent=[0, 5, 0, 5],\n",
|
||
" cmap='viridis')\n",
|
||
"plt.colorbar();"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"The result is a compelling visualization of the two-dimensional function."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!--NAVIGATION-->\n",
|
||
"< [Aggregations: Min, Max, and Everything In Between](02.04-Computation-on-arrays-aggregates.ipynb) | [Contents](Index.ipynb) | [Comparisons, Masks, and Boolean Logic](02.06-Boolean-Arrays-and-Masks.ipynb) >"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"anaconda-cloud": {},
|
||
"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.4.3"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 0
|
||
}
|