{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "
\n", "\n", "# Exploratory Computing with Python\n", "*Developed by Mark Bakker*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Notebook 2: Arrays\n", "\n", "In this notebook, we will do math on arrays using functions of the `numpy` package. A nice overview of `numpy` functionality can be found [here](https://docs.scipy.org/doc/numpy/user/quickstart.html). We will also make plots. We start by telling the Jupyter Notebooks to put all graphs inline. Then we import the `numpy` package and call it `np`, and we import the plotting part of the `matplotlib` package and call it `plt`. We will add these three lines at the top of all upcoming notebooks as we will always be using `numpy` and `matplotlib`. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### One-dimensional arrays\n", "There are many ways to create arrays. For example, you can enter the individual elements of an array" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 1, 7, 2, 12])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.array([1, 7, 2, 12])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the `array` function takes one sequence of points between square brackets. \n", "Another function to create an array is `np.ones(shape)`, which creates an array of the specified `shape` filled with the value 1. \n", "There is an analogous function `np.zeros(shape)` to create an array filled with the value 0 (which can also be achieved with `0 * np.ones(shape)`). Next to the already mentioned `np.linspace` function there is the `np.arange(start, end, step)` \n", "function, which creates an array starting at `start`, taking steps equal to `step` and stopping *before* it reaches `end`. If you don't specify the `step`, \n", "it is set equal to 1. If you only specify one input value, it returns a sequence starting at 0 and incrementing by 1 until the specified value is reached (but again, it stops before it reaches that value)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1 2 3 4 5 6]\n", "[0 1 2 3 4]\n" ] } ], "source": [ "print(np.arange(1, 7)) # Takes default steps of 1 and doesn't include 7\n", "print(np.arange(5)) # Starts at 0 end ends at 4, giving 5 numbers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recall that comments in Python are preceded by a `#`. \n", "Arrays have a dimension. So far we have only used one-dimensional arrays. \n", "Hence the dimension is 1. \n", "For one-dimensional arrays, you can also compute the length (which is part of Python and not `numpy`), which returns the number of values in the array" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "number of dimensions of x: 1\n", "length of x: 4\n" ] } ], "source": [ "x = np.array([1, 7, 2, 12])\n", "print('number of dimensions of x:', np.ndim(x))\n", "print('length of x:', len(x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The individual elements of an array can be accessed with their index. Indices start at 0. \n", "This may require a bit of getting used to. It means that the first value in the array has index 0. The index of an array is specified using square brackets." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "array x: [20 21 22 23 24 25 26 27 28 29]\n", "value with index 0: 20\n", "value with index 5: 25\n" ] } ], "source": [ "x = np.arange(20, 30)\n", "print('array x:', x)\n", "print('value with index 0:', x[0])\n", "print('value with index 5:', x[5])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A range of indices may be specified using the colon syntax:\n", "`x[start:end_before]` or `x[start:end_before:step]`. If the `start` isn't specified, 0 will be used. If the step isn't specified, 1 will be used. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[20 21 22 23 24 25 26 27 28 29]\n", "[20 21 22 23 24]\n", "[20 21 22 23 24]\n", "[23 24 25 26]\n", "[22 24 26 28]\n" ] } ], "source": [ "x = np.arange(20, 30)\n", "print(x)\n", "print(x[0:5])\n", "print(x[:5]) # same as previous one\n", "print(x[3:7])\n", "print(x[2:9:2]) # step is 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also start at the end and count back. Generally, the index of the end is not known. You can find out how long the array is and access the last value by typing `x[len(x) - 1]` but it would be inconvenient to have to type `len(arrayname)` all the time. Luckily, there is a shortcut: `x[-1]` is the same as `x[len(x) - 1]` and represents the last value in the array. For example:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0 10 20 30 40 50 60 70 80 90]\n", "90\n", "90\n", "[90 80 70 60 50 40 30 20 10 0]\n" ] } ], "source": [ "xvalues = np.arange(0, 100, 10)\n", "print(xvalues)\n", "print(xvalues[len(xvalues) - 1]) # last value in array\n", "print(xvalues[-1]) # much shorter\n", "print(xvalues[-1::-1]) # start at the end and go back with steps of -1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can assign one value to a range of an array by specifying a range of indices, \n", "or you can assign an array to a range of another array, as long as the ranges have the same length. In the last example below, the first 5 values of `x` (specified as `x[0:5]`) are given the values `[40, 42, 44, 46, 48]`." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[20. 20. 20. 20. 20. 20. 20. 20. 20. 20.]\n", "[40. 40. 40. 40. 40. 20. 20. 20. 20. 20.]\n", "[40. 42. 44. 46. 48. 20. 20. 20. 20. 20.]\n" ] } ], "source": [ "x = 20 * np.ones(10)\n", "print(x)\n", "x[0:5] = 40\n", "print(x)\n", "x[0:5] = np.arange(40, 50, 2)\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 1, Arrays and indices\n", "Create an array of zeros with length 20. Change the first 5 values to 10. Change the next 10 values to a sequence starting at 12 and increasig with steps of 2 to 30 (do this with one command). Set the final 5 values to 30. Plot the value of the array on the $y$-axis vs. the index of the array on the $x$-axis. Draw vertical dashed lines at $x=4$ and $x=14$ (i.e., the section between the dashed lines is where the line increases from 10 to 30). Set the minimum and maximum values of the $y$-axis to 8 and 32 using the `ylim` command." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer for Exercise 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Arrays, Lists, and Tuples\n", "A one-dimensional array is a sequence of values that you can do math on. Next to an array, Python has several other data types that can store a sequence of values. The first one is called a `list` and is entered between square brackets. The second one is a tuple (you are right, strange name), and it is entered with parentheses. The difference is that you can change the values in a list after you create them, and you can not do that with a tuple. Other than that, for now you just need to remember that they exist, and that you *cannot* do math with either lists or tuples. When you do `2 * alist`, where `alist` is a list, you don't multiply all values in `alist` with the number 2. What happens is that you create a new list that contains `alist` twice (so it adds them back to back). The same holds for tuples. That can be very useful, but not when your intent is to multiply all values by 2. In the example below, the first value in a list is modified. Try to modify one of the values in `btuple` below and you will see that you get an error message:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "alist [1, 2, 3]\n", "btuple (10, 20, 30)\n", "modified alist [7, 2, 3]\n" ] } ], "source": [ "alist = [1, 2, 3]\n", "print('alist', alist)\n", "btuple = (10, 20, 30)\n", "print('btuple', btuple)\n", "alist[0] = 7 # Since alist is a list, you can change values \n", "print('modified alist', alist)\n", "#btuple[0] = 100 # Will give an error\n", "#print(2 * alist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lists and tuples are versatile data types in Python. We already used lists without realizing it when we created our first array with the command `np.array([1, 7, 2, 12])`. What we did is we gave the `array` function one input argument: the list `[1, 7, 2, 12]`, and the `array` function returned a one-dimensional array with those values. Lists and tuples can consist of a sequences of pretty much anything, not just numbers. In the example given below, `alist` contains 5 *things*: the integer 1, the float 20.0, the word `python`, an array with the values 1,2,3, and finally, the function `len`. The latter means that `alist[4]` is actually the function `len`. That function can be called to determine the length of an array as shown below. The latter may be a bit confusing, but it is cool behavior if you take the time to think about it." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 20.0, 'python', array([1, 2, 3]), ]\n", "1\n", "python\n", "3\n" ] } ], "source": [ "alist = [1, 20.0, 'python', np.array([1,2,3]), len]\n", "print(alist)\n", "print(alist[0])\n", "print(alist[2])\n", "print(alist[4](alist[3])) # same as len(np.array([1,2,3]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Two-dimensional arrays\n", "Arrays may have arbitrary dimensions (as long as they fit in your computer's memory). We will make frequent use of two-dimensional arrays. They can be created with any of the aforementioned functions by specifying the number of rows and columns of the array. Note that the number of rows and columns must be a tuple (so they need to be between parentheses), as the functions expect only one input argument for the shape of the array, which may be either one number or a tuple of multiple numbers." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1. 1. 1. 1.]\n", " [1. 1. 1. 1.]\n", " [1. 1. 1. 1.]]\n" ] } ], "source": [ "x = np.ones((3, 4)) # An array with 3 rows and 4 columns\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Arrays may also be defined by specifying all the values in the array. The `array` function gets passed one list consisting of separate lists for each row of the array. In the example below, the rows are entered on different lines. That may make it easier to enter the array, but it is not required. You can change the size of an array to any shape using the `reshape` function as long as the total number of entries doesn't change. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[4 2 3 2]\n", " [2 4 3 1]\n", " [0 4 1 3]]\n", "[[4 2 3 2 2 4]\n", " [3 1 0 4 1 3]]\n", "[[4 2 3 2 2 4 3 1 0 4 1 3]]\n" ] } ], "source": [ "x = np.array([[4, 2, 3, 2],\n", " [2, 4, 3, 1],\n", " [0, 4, 1, 3]])\n", "print(x)\n", "print(np.reshape(x, (2, 6))) # 2 rows, 6 columns\n", "print(np.reshape(x, (1, 12))) # 1 row, 12 columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The index of a two-dimensional array is specified with two values, first the row index, then the column index." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[100. 0. 0. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 200. 200. 200. 200.]\n", " [ 0. 0. 0. 0. 0. 400. 400. 400.]]\n" ] } ], "source": [ "x = np.zeros((3, 8))\n", "x[0, 0] = 100\n", "x[1, 4:] = 200 # Row with index 1, columns starting with 4 to the end\n", "x[2, -1:4:-1] = 400 # Row with index 2, columns counting back from the end with steps of 1 and stop before reaching index 4\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Arrays are not matrices\n", "Now that we talk about the rows and columns of an array, the math-oriented reader may think that arrays are matrices, or that one-dimensional arrays are vectors. It is crucial to understand that *arrays are not vectors or matrices*. The multiplication and division of two arrays is term by term" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "array a: [ 4 8 12 16]\n", "array b: [2 2 4 4]\n", "a * b : [ 8 16 48 64]\n", "a / b : [2. 4. 3. 4.]\n" ] } ], "source": [ "a = np.arange(4, 20, 4)\n", "b = np.array([2, 2, 4, 4])\n", "print('array a:', a)\n", "print('array b:', b)\n", "print('a * b :', a * b) # term by term multiplication\n", "print('a / b :', a / b) # term by term division" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 2, Two-dimensional array indices\n", "For the array `x` shown below, write code to print: \n", "\n", "* the first row of `x`\n", "* the first column of `x`\n", "* the third row of `x`\n", "* the last two columns of `x`\n", "* the 2 by 2 block of values in the upper right-hand corner of `x`\n", "* the 2 by 2 block of values at the center of `x`\n", "\n", "`x = np.array([[4, 2, 3, 2],\n", " [2, 4, 3, 1],\n", " [2, 4, 1, 3],\n", " [4, 1, 2, 3]])`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer for Exercise 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualizing two-dimensional arrays\n", "Two-dimensonal arrays can be visualized with the `plt.matshow` function. In the example below, the array is very small (only 4 by 4), but it illustrates the general principle. A colorbar is added as a legend. The ticks in the colorbar are specified to be 2, 4, 6, and 8. Note that the first row of the array (with index 0), is plotted at the top, which corresponds to the location of the first row in the array." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[8 4 6 2]\n", " [4 8 6 2]\n", " [4 8 2 6]\n", " [8 2 4 6]]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAFdCAYAAAADjBo0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAF4pJREFUeJzt3X9sleXdx/HPoa6nKOecDV2Rpgds4ub4MfzRkj1FJKhbn/TRhv6xX4ljnbo8IxQmI1kGug2zRY5miQ9mzGqNYVs2aP9wFf4QZpONVuLIaKWD8AfGSezJZocs4xzo9LCe+3r+OG23Wqi9bnqdc+7T9yu5Ys6d+8c3t+F8+71+nZAxxggAMOvNKXQAAIDiQEIAAEgiIQAARpEQAACSSAgAgFEkBACAJBICAGAUCQEAIImEAAAYRUIAAEgiIejZZ59VTU2NKioqVFtbq9dee63QIRWd3t5eNTU1qaqqSqFQSC+//HKhQypKiURCK1euVCQSUWVlpZqbm3X69OlCh1WU2tratGLFCkWjUUWjUdXX1+vgwYOFDmvWm9UJobOzU1u2bNFjjz2m48eP66677lJjY6MGBwcLHVpRGR4e1q233qrdu3cXOpSi1tPTo9bWVh09elTd3d0aGRlRQ0ODhoeHCx1a0amurtaTTz6pvr4+9fX16Z577tG6det06tSpQoc2q4Vm8+Z2n/vc53THHXeora1t/NiSJUvU3NysRCJRwMiKVygUUldXl5qbmwsdStF77733VFlZqZ6eHq1Zs6bQ4RS9+fPn6yc/+YkefvjhQocya83aCuHSpUvq7+9XQ0PDhOMNDQ16/fXXCxQVSkkqlZKU+6LDlWWzWXV0dGh4eFj19fWFDmdWu6bQARTKuXPnlM1mtWDBggnHFyxYoKGhoQJFhVJhjNHWrVu1evVqLV++vNDhFKWTJ0+qvr5eH3zwgebNm6euri4tXbq00GHNarM2IYwJhUITPhtjJh0DbG3atEknTpzQkSNHCh1K0brllls0MDCg8+fP66WXXlJLS4t6enpICgU0axPCDTfcoLKysknVwNmzZydVDYCNzZs368CBA+rt7VV1dXWhwyla5eXluvnmmyVJdXV1OnbsmJ555hk9//zzBY5s9pq1Ywjl5eWqra1Vd3f3hOPd3d1atWpVgaJCkBljtGnTJv3mN7/R7373O9XU1BQ6pEAxxiiTyRQ6jFlt1lYIkrR161atX79edXV1qq+vV3t7uwYHB7Vhw4ZCh1ZULl68qLfeemv885kzZzQwMKD58+dr0aJFBYysuLS2tmrv3r3av3+/IpHIePUZi8U0d+7cAkdXXB599FE1NjYqHo/rwoUL6ujo0OHDh3Xo0KFChza7mVnuZz/7mVm8eLEpLy83d9xxh+np6Sl0SEXn97//vZE0qbW0tBQ6tKJyuXckyezZs6fQoRWdhx56aPzf3Sc/+Ulz7733mldffbXQYc16s3odAgDg32btGAIAYCISAgBAEgkBADCKhAAAkERCAACMIiEAACSRECRJmUxGjz/+OKskPwLvafp4V9PDeyourEOQlE6nFYvFlEqlFI1GCx1O0eI9TR/vanp4TzNjZGREjz/+uH79619raGhICxcu1De+8Q19//vf15w50/+7f1ZvXQEApeCpp57Sc889p1/84hdatmyZ+vr69OCDDyoWi+mRRx6Z9n1ICAAQcH/4wx+0bt063XfffZKkm266Sfv27VNfX5/VffKeEDzP01//+ldFIpGi+d2BdDo94b+4PN7T9PGupqcY35MxRhcuXFBVVZVVd8uVfPDBB7p06ZLvWD78PRkOhxUOhyccW716tZ577jm9+eab+vSnP60//elPOnLkiHbt2mX9wLxKJpNX3ASMRqPRiqUlk8mr/r57//33zY2VZb5jmDdv3qRjO3bsmPQcz/PMtm3bTCgUMtdcc40JhUJm586d1vHmvUKIRCKSpHfeuEnReUxymsqaBD82Pl0fu+9coUMIhOgX3y50CEVvRP/SEb0y/l11NS5duqShs1md6V+saMTu+y59wVNN7TtKJpMTBtw/XB1IUmdnp371q19p7969WrZsmQYGBrRlyxZVVVWppaVl2s/Me0IYK3+i8+ZYv6DZpqy8otAhBEbZdZP/kWCya0IfK3QIxc/k/jOTXdrXzcs1G9nROKLR6EfOwPrud7+rbdu26atf/aok6bOf/azeeecdJRKJ4k4IADDbeDLyxjKNxTXT9c9//nPSeEdZWZk8z7N6JgkBAAKuqalJTzzxhBYtWqRly5bp+PHjevrpp/XQQw9Z3YeEAACOefJk97e6rK746U9/qh/84AfauHGjzp49q6qqKn3rW9/SD3/4Q6tnkhAAwLGsMcpabgphc34kEtGuXbvsp5l+CAkBABxz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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.array([[8, 4, 6, 2],\n", " [4, 8, 6, 2],\n", " [4, 8, 2, 6],\n", " [8, 2, 4, 6]])\n", "plt.matshow(x)\n", "plt.colorbar(ticks=[2, 4, 6, 8], shrink=0.8)\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The colors that are used are defined in the default color map (it is called `viridis`), which maps the highest value to yellow, the lowest value to purple and the numbers in between varying between blue and green. An explanation of the advantages of `viridis` can be seen [here](https://youtu.be/xAoljeRJ3lU). If you want other colors, you can choose one of the other color maps with the `cmap` keyword argument. To find out all the available color maps, go \n", "[here](http://matplotlib.org/users/colormaps.html). For example, setting the color map to `rainbow` gives" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.matshow(x, cmap='rainbow')\n", "plt.colorbar(ticks=np.arange(2, 9, 2), shrink=0.8);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 3, Create and visualize an array\n", "Create an array of size 10 by 10. Set the upper left-hand quadrant of the array should to 4, the upper right-hand quadrant to 3, the lower right-hand quadrant t0 2 and the lower left-hand quadrant to 1. First create an array of 10 by 10 using the `zeros` command, then fill each quadrant by specifying the correct index ranges. Visualize the array using `matshow`. It should give a red, yellow, light blue and dark blue box (clock-wise starting from upper left) when you use the `jet` colormap." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer for Exercise 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 4, Create and visualize a slightly fancier array\n", "Consider the image shown below, which roughly shows the letters TU. You are asked to create an array that represents the same TU. First create a zeros array of 11 rows and 17 columns. Give the background value 0, the letter T value -1, and the letter U value +1. Use the `jet` colormap. \n", "\n", "![](tufig.png)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer to Exercise 4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using conditions on arrays\n", "If you have a variable, you can check whether its value is smaller or larger than a certain other value. This is called a *conditional* statement.\n", "For example:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a < 2: False\n", "a > 2: True\n" ] } ], "source": [ "a = 4\n", "print('a < 2:', a < 2)\n", "print('a > 2:', a > 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The statement `a < 2` returns a variable of type boolean, which means it can either be `True` or `False`. Besides smaller than or larger than, there are several other conditions you can use:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the value of a is 4\n", "a < 4: False\n", "a <= 4: True\n", "a == 4: True\n", "a >= 4: True\n", "a > 4: False\n", "a != 4: False\n" ] } ], "source": [ "a = 4\n", "print('the value of a is', a)\n", "print('a < 4: ', a < 4)\n", "print('a <= 4:', a <= 4) # a is smaller than or equal to 4\n", "print('a == 4:', a == 4) # a is equal to 4. Note that there are 2 equal signs\n", "print('a >= 4:', a >= 4) \n", "print('a > 4: ', a > 4)\n", "print('a != 4:', a != 4) # a is not equal to 4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is important to understand the difference between one equal sign like `a = 4` and two equal signs like `a == 4`. One equal sign means assignment. Whatever is on the right side of the equal sign is assigned to what is on the left side of the equal sign. Two equal signs is a comparison and results in either `True` (when both sides are equal) or `False`." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n", "False\n", "\n" ] } ], "source": [ "print(4 == 4)\n", "a = 4 == 5\n", "print(a)\n", "print(type(a))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also perform comparison statements on arrays, and it will return an array of booleans (`True` and `False` values) for each value in the array. For example let's create an array and find out what values of the array are below 3:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4]\n", "[ True True True False False]\n" ] } ], "source": [ "data = np.arange(5)\n", "print(data)\n", "print(data < 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The statement `data < 3` returns an array of type `boolean` that has the same length as the array `data` and for each item in the array it is either `True` or `False`. The cool thing is that this array of `True` and `False` values can be used to specify the indices of an array:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4]\n", "[0 1 4]\n" ] } ], "source": [ "a = np.arange(5)\n", "print(a)\n", "print(a[[True, True, False, False, True]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When the indices of an array are specified with a boolean array, only the values of the array where the boolean array is `True` are selected. This is a very powerful feature. For example, all values of an array that are less than, for example, 3 may be obtained by specifying a condition as the indices." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the total array: [0 1 2 3 4]\n", "values less than 3: [0 1 2]\n" ] } ], "source": [ "a = np.arange(5)\n", "print('the total array:', a)\n", "print('values less than 3:', a[a < 3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we want to replace all values that are less than 3 by, for example, the value 10, use the following short syntax:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4]\n", "[10 10 10 3 4]\n" ] } ], "source": [ "a = np.arange(5)\n", "print(a)\n", "a[a < 3] = 10\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 5, Replace high and low values in an array\n", "Create an array for variable $x$ consisting of 100 values from 0 to 20. Compute $y=\\sin(x)$ and plot $y$ vs. $x$ with a blue line. Next, replace all values of $y$ that are larger than 0.5 by 0.5, and all values that are smaller than $-$0.75 by $-$0.75, and plot the modified $y$ values vs. $x$ using a red line on the same graph. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer to Exercise 5\n", "\n", "### Exercise 6, Change marker color based on data value\n", "Create an array for variable $x$ consisting of 100 points from 0 to 20 and compute $y=\\sin(x)$. Plot a blue dot for every $y$ that is larger than zero, and a red dot otherwise" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer to Exercise 6" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Select indices based on multiple conditions\n", "Multiple conditions can be given as well. When two conditions both have to be true, use the `&` symbol. When at least one of the conditions needs to be true, use the '|' symbol (that is the vertical bar). For example, let's plot $y=\\sin(x)$ and plot blue markers when $y>0.7$ or $y<-0.5$ (using one `plot` statement), and a red marker when $-0.5\\le y\\le 0.7$. Note that when there are multiple conditions, they need to be between parentheses." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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9OnTOnDggPr27Subb235GHG73SosLNS+fftSYp0rzte6UulcJc7X6jhfazAMQ8eOHVN+fr569Ag/yiYle3B69OihgoKCuP4bWVlZlvql6gzna12pdK4S52t1nK/5ddZz48MgYwAAYDkEOAAAwHIIcGLMbrfrwQcflN1u7+6mJATna12pdK4S52t1nG/qSclBxgAAwNrowQEAAJZDgAMAACyHAAcAAFgOAQ4AALAcApwzsGTJEg0YMECZmZkqLi7WO++8E7b+xo0bVVxcrMzMTF1wwQV6/vnnE9TSrqmqqtJll12mvn37ql+/frrxxhu1e/fusPvU19fLZrN12P785z8nqNVnbtGiRR3anZubG3Yfs17boqKioNfp9ttvD1rfbNd106ZNuv7665Wfny+bzabf/va3Ae8bhqFFixYpPz9fvXr10rhx4/TJJ590etyamhoNHjxYdrtdgwcP1urVq+N0BtEJd75tbW269957demll6pPnz7Kz8/XrbfeqgMHDoQ95rJly4Je8xMnTsT5bDrX2fWdPXt2h3aXlJR0elwzXl9JQa+TzWbTz372s5DHTObrGysEOFFatWqVKisr9cADD6ihoUFjx47VpEmT1NzcHLR+U1OTrr32Wo0dO1YNDQ26//77deedd6qmpibBLY/exo0bdfvtt2vr1q2qq6vTqVOnVFZWpq+++qrTfXfv3q2Wlhb/dtFFFyWgxV03ZMiQgHZ/9NFHIeua+dq+//77AedZV1cnSbrpppvC7meW6/rVV19p2LBhevbZZ4O+/9hjj+mJJ57Qs88+q/fff1+5ubm65ppr/OvUBbNlyxaVl5eroqJCO3fuVEVFhaZPn65t27bF6zQiFu58//GPf+iDDz7QT37yE33wwQeqra3VX/7yF91www2dHjcrKyvgere0tCgzMzMepxCVzq6vJE2cODGg3WvXrg17TLNeX0kdrtHLL78sm82m73znO2GPm6zXN2YMRGXUqFHGvHnzAsoGDRpk3HfffUHr/+hHPzIGDRoUUPbv//7vRklJSdzaGC8HDx40JBkbN24MWWfDhg2GJOPIkSOJa1iMPPjgg8awYcMirm+lazt//nzjwgsvNE6fPh30fTNfV0nG6tWr/T+fPn3ayM3NNRYvXuwvO3HihOFwOIznn38+5HGmT59uTJw4MaBswoQJxowZM2Le5q5of77B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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 6 * np.pi, 50)\n", "y = np.sin(x)\n", "plt.plot(x[(y > 0.7) | (y < -0.5)], y[(y > 0.7) | (y < -0.5)], 'bo')\n", "plt.plot(x[(y > -0.5) & (y < 0.7)], y[(y > -0.5) & (y < 0.7)], 'ro');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 7, Multiple conditions \n", "The file `xypoints.dat` contains 1000 randomly chosen $x,y$ locations of points; both $x$ and $y$ vary between -10 and 10. Load the data using `loadtxt`, and store the first row of the array in an array called `x` and the second row in an array called `y`. First, plot a red dot for all points. On the same graph, plot a blue dot for all $x,y$ points where $x<-2$ and $-5\\le y \\le 0$. Finally, plot a green dot for any point that lies in the circle with center $(x_c,y_c)=(5,0)$ and with radius $R=5$. Hint: it may be useful to compute a new array for the radial distance $r$ between any point and the center of the circle using the formula $r=\\sqrt{(x-x_c)^2+(y-y_c)^2}$. Use the `plt.axis('equal')` command to make sure the scales along the two axes are equal and the circular area looks like a circle." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer to Exercise 7" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 8, Fix the error \n", "In the code below, it is meant to give the last 5 values of the array `x` the values [50, 52, 54, 56, 58] and print the result to the screen, but there are some errors in the code. Remove the comment markers and run the code to see the error message. Then fix the code and run it again." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "#x = np.ones(10)\n", "#x[5:] = np.arange(50, 62, 1)\n", "#print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer to Exercise 8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Answers to the exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Answer to Exercise 1" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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klq1anXS/TRp0qSTrh9I+3XNmjUaPny40tPT5XA49MYbb9R43hij6dOnKz09XTExMRo0aJA2b9582vddunSpOnXqJKfTqU6dOmn58uUWbUHd1La9lZWVeuCBB9S1a1fFxcUpPT1d//Vf/6V9+/bV+p4LFiw46f4uLy+3eGtqd7p9O378+J9l7tu372nf1x/37em29WT7x+Fw6Kmnnjrle/rrfrVSUDUfS5Ys0dSpU/XII48oJydHF198sYYOHardu3efdP28vDxdddVVuvjii5WTk6OHH35Yd955p5YuXerj5HWzevVqTZo0SZ9//rlWrFihqqoqDRkypMZkUKeSm5ur/fv3e7/atWvng8Rnr3PnzjVyb9q06ZTrBup+laR169bV2M4VK1ZIkm688cZaXxcI+9Xlcql79+6aM2fOSZ9/8sknNXv2bM2ZM0fr1q1TamqqLr/8chUXF5/yPT/77DPddNNNuvXWW/XVV1/p1ltv1ahRo/TFF19YtRlnrLbtLS0tVXZ2tn77298qOztby5Yt03fffadrrrnmtO+bmJhYY1/v379f0dHRVmzCGTvdvpWkK6+8skbmd999t9b39Nd9e7pt/em++cc//iGHw6Hrr7++1vf1x/1qKRNEzj//fHPHHXfUeKxjx47mwQcfPOn6999/v+nYsWONx26//XbTt29fyzJaoaCgwEgyq1evPuU6K1euNJLM0aNHfResgTz66KOme/fuZ7x+sOxXY4y56667TJs2bYzH4znp84G6XyWZ5cuXe7/3eDwmNTXVPPHEE97HysvLTVJSknnxxRdP+T6jRo0yV155ZY3HrrjiCnPzzTc3eOaz8dPtPZkvv/zSSDK7du065Trz5883SUlJDRuugZ1sW8eNG2euvfbaOr1PIOzbM9mv1157rbnkkktqXScQ9mtDC5ojHxUVFdqwYYOGDBlS4/EhQ4Zo7dq1J33NZ5999rP1r7jiCq1fv16VlZWWZW1ohYWFkqQmTZqcdt2ePXsqLS1Nl156qVauXGl1tAazbds2paenq3Xr1rr55pu1Y8eOU64bLPu1oqJCCxcu1C9+8YvTTrIYqPv1hLy8POXn59fYb06nUwMHDjxl/Uqn3te1vcZfFRYWyuFwqFGjRrWuV1JSoszMTLVo0UJXX321cnJyfBPwLK1atUrJyclq3769fvWrX6mgoKDW9YNh3x44cEDvvPOOfvnLX5523UDdr/UVNM3HoUOHVF1drZSUlBqPp6SkKD8//6Svyc/PP+n6VVVVOnTokGVZG5IxRtOmTdNFF12kLl26nHK9tLQ0/fWvf9XSpUu1bNkydejQQZdeeqnWrFnjw7T1c8EFF+ill17S+++/r7/97W/Kz89X//79dfjw4ZOuHwz7VZLeeOMNHTt2TOPHjz/lOoG8X3/sRI3WpX5PvK6ur/FH5eXlevDBBzV69OhaJx7r2LGjFixYoLfeekuLFy9WdHS0LrzwQm3bts2Haetu6NChWrRokT766CM9/fTTWrdunS655BK53e5TviYY9u0///lPJSQkaOTIkbWuF6j79Wz43ay2Z+un/yEaY2r9r/Fk65/scX81efJkff311/rkk09qXa9Dhw7q0KGD9/t+/fppz549+tOf/qQBAwZYHfOsDB061LvctWtX9evXT23atNE///lPTZs27aSvCfT9Kkl///vfNXToUKWnp59ynUDerydT1/qt72v8SWVlpW6++WZ5PB698MILta7bt2/fGhdqXnjhhcrKytLzzz+v5557zuqo9XbTTTd5l7t06aLevXsrMzNT77zzTq1/mAN93/7jH//QmDFjTnvtRqDu17MRNEc+mjVrpvDw8J91xQUFBT/rnk9ITU096foRERFq2rSpZVkbypQpU/TWW29p5cqVatGiRZ1f37dv34DsrOPi4tS1a9dTZg/0/SpJu3bt0ocffqj//u//rvNrA3G/nrh7qS71e+J1dX2NP6msrNSoUaOUl5enFStW1Hm69bCwMPXp0yfg9ndaWpoyMzNrzR3o+/bjjz9Wbm5uvWo4UPdrXQRN8xEVFaVevXp57w44YcWKFerfv/9JX9OvX7+frf/BBx+od+/eioyMtCzr2TLGaPLkyVq2bJk++ugjtW7dul7vk5OTo7S0tAZOZz23262tW7eeMnug7tcfmz9/vpKTkzVs2LA6vzYQ92vr1q2VmppaY79VVFRo9erVp6xf6dT7urbX+IsTjce2bdv04Ycf1qsxNsZo48aNAbe/Dx8+rD179tSaO5D3rXT8yGWvXr3UvXv3Or82UPdrndh1pasVXnnlFRMZGWn+/ve/my1btpipU6eauLg4s3PnTmOMMQ8++KC59dZbvevv2LHDxMbGmrvvvtts2bLF/P3vfzeRkZHm9ddft2sTzsiECRNMUlKSWbVqldm/f7/3q7S01LvOT7f1mWeeMcuXLzffffed+eabb8yDDz5oJJmlS5fasQl1cs8995hVq1aZHTt2mM8//9xcffXVJiEhIej26wnV1dWmZcuW5oEHHvjZc4G8X4uLi01OTo7Jyckxkszs2bNNTk6O9+6OJ554wiQlJZlly5aZTZs2mVtuucWkpaWZoqIi73vceuutNe5e+/TTT014eLh54oknzNatW80TTzxhIiIizOeff+7z7fup2ra3srLSXHPNNaZFixZm48aNNerY7XZ73+On2zt9+nTz3nvvme+//97k5OSY2267zURERJgvvvjCjk30qm1bi4uLzT333GPWrl1r8vLyzMqVK02/fv3MOeecE5D79nS/x8YYU1hYaGJjY828efNO+h6Bsl+tFFTNhzHGzJ0712RmZpqoqCiTlZVV4/bTcePGmYEDB9ZYf9WqVaZnz54mKirKtGrV6pS/LP5E0km/5s+f713np9s6a9Ys06ZNGxMdHW0aN25sLrroIvPOO+/4Pnw93HTTTSYtLc1ERkaa9PR0M3LkSLN582bv88GyX094//33jSSTm5v7s+cCeb+euC34p1/jxo0zxhy/3fbRRx81qampxul0mgEDBphNmzbVeI+BAwd61z/htddeMx06dDCRkZGmY8eOftN41ba9eXl5p6zjlStXet/jp9s7depU07JlSxMVFWWaN29uhgwZYtauXev7jfuJ2ra1tLTUDBkyxDRv3txERkaali1bmnHjxpndu3fXeI9A2ben+z02xpi//OUvJiYmxhw7duyk7xEo+9VKDmP+70o8AAAAHwiaaz4AAEBgoPkAAAA+RfMBAAB8iuYDAAD4FM0HAADwKZoPAADgUzQfAADAp2g+AACAT9F8AAAAn6L5AAAAPkXzAQAAfIrmAwAA+NT/A+h0ioCpDfQmAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.zeros(20)\n", "x[:5] = 10\n", "x[5:15] = np.arange(12, 31, 2)\n", "x[15:] = 30\n", "plt.plot(x)\n", "plt.plot([4, 4], [8, 32],'k--')\n", "plt.plot([14, 14], [8, 32],'k--')\n", "plt.ylim(8, 32);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Back to Exercise 1\n", "\n", "Answer to Exercise 2" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the first row of x\n", "[4 2 3 2]\n", "the first column of x\n", "[4 2 2 4]\n", "the third row of x\n", "[2 4 1 3]\n", "the last two columns of x\n", "[[3 2]\n", " [3 1]\n", " [1 3]\n", " [2 3]]\n", "the four values in the upper right hand corner\n", "[[3 2]\n", " [3 1]]\n", "the four values at the center of x\n", "[[4 3]\n", " [4 1]]\n" ] } ], "source": [ "x = np.array([[4, 2, 3, 2],\n", " [2, 4, 3, 1],\n", " [2, 4, 1, 3],\n", " [4, 1, 2, 3]])\n", "print('the first row of x')\n", "print(x[0])\n", "print('the first column of x')\n", "print(x[:, 0])\n", "print('the third row of x')\n", "print(x[2])\n", "print('the last two columns of x')\n", "print(x[:, -2:])\n", "print('the four values in the upper right hand corner')\n", "print(x[:2, 2:])\n", "print('the four values at the center of x')\n", "print(x[1:3, 1:3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Back to Exercise 2\n", "\n", "Answer to Exercise 3" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[4. 4. 4. 4. 4. 3. 3. 3. 3. 3.]\n", " [4. 4. 4. 4. 4. 3. 3. 3. 3. 3.]\n", " [4. 4. 4. 4. 4. 3. 3. 3. 3. 3.]\n", " [4. 4. 4. 4. 4. 3. 3. 3. 3. 3.]\n", " [4. 4. 4. 4. 4. 3. 3. 3. 3. 3.]\n", " [1. 1. 1. 1. 1. 2. 2. 2. 2. 2.]\n", " [1. 1. 1. 1. 1. 2. 2. 2. 2. 2.]\n", " [1. 1. 1. 1. 1. 2. 2. 2. 2. 2.]\n", " [1. 1. 1. 1. 1. 2. 2. 2. 2. 2.]\n", " [1. 1. 1. 1. 1. 2. 2. 2. 2. 2.]]\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.zeros((10, 10))\n", "x[:5, :5] = 4\n", "x[:5, 5:] = 3\n", "x[5:, 5:] = 2\n", "x[5:, :5] = 1\n", "print(x)\n", "plt.matshow(x, cmap='jet')\n", "plt.colorbar(ticks=[1, 2, 3, 4], shrink=0.8);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Back to Exercise 3\n", "\n", "Answer to Exercise 4" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [ 0. -1. -1. -1. -1. -1. -1. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0.]\n", " [ 0. -1. -1. -1. -1. -1. -1. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0.]\n", " [ 0. 0. 0. -1. -1. 0. 0. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0.]\n", " [ 0. 0. 0. -1. -1. 0. 0. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0.]\n", " [ 0. 0. 0. -1. -1. 0. 0. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0.]\n", " [ 0. 0. 0. -1. -1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 0.]\n", " [ 0. 0. 0. -1. -1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 1. 0. 0.]\n", " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]\n" ] }, { "data": { "image/png": "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cQMAADAExQ0AAMAQFDcAAABDUNwAAAAMQXEDAAAwBMUNAADAEBQ3AAAAQ1DcAAAADEFxAwAAMITtxW3evHnyeDyttszMTLvHAAAAJJxkJ046aNAgbdy4MfY6KSnJiTEAAAAJxZHilpyczCobAACAzRy5x23v3r3y+/3Kzc3V1KlT9eGHH/7LY6PRqCKRSKsNAAAAbdle3K699lq9+OKLqqys1NKlS3X06FGNHDlSx44da/f4YDAon88X2wKBgN2RAAAAOgXbi1thYaG++c1vasiQIRo3bpxef/11SdKKFSvaPb6srEzhcDi2hUIhuyMBAAB0Co7c43ambt26aciQIdq7d2+7P/d6vfJ6vU7HAAAAMJ7j3+MWjUb1/vvvKysry+lRAAAAnZrtxe373/++qqurtX//fm3btk3f+ta3FIlEVFRUZPcoAACAhGL7W6WHDh3S7bffro8//liXXHKJrrvuOm3dulU5OTl2jwIAAEgothe31atX231KAAAAiGeVAgAAGIPiBgAAYAiKGwAAgCEobgAAAIaguAEAABiC4gYAAGAIihsAAIAhKG4AAACGoLgBAAAYguIGAABgCIobAACAIShuAAAAhqC4AQAAGILiBgAAYAiKGwAAgCEobgAAAIaguAEAABiC4gYAAGAIihsAAIAhKG4AAACGoLgBAAAYguIGAABgCIobAACAIRwpbh999JHuvPNO9ejRQxdeeKGuuuoq7dixw4lRAAAACSPZ7hMeP35co0aN0tixY/XGG28oIyNDf/nLX/SlL33J7lEAAAAJxfbi9vTTTysQCGj58uWxfX369LF7DAAAQMKx/a3SV199VXl5ebrtttuUkZGh4cOHa+nSpf/y+Gg0qkgk0moDAABAW7YXtw8//FDl5eXq37+/KisrNXPmTD300EN68cUX2z0+GAzK5/PFtkAgYHckAACATsH24tbc3Kyrr75aCxYs0PDhw3XffffpO9/5jsrLy9s9vqysTOFwOLaFQiG7IwEAAHQKthe3rKwsXXnlla32XXHFFTp48GC7x3u9XqWnp7faAAAA0JbtxW3UqFH64IMPWu3bs2ePcnJy7B4FAACQUGwvbg8//LC2bt2qBQsWaN++fVq1apUqKipUXFxs9ygAAICEYntxu+aaa7R27Vq9/PLLGjx4sJ566iktXrxYd9xxh92jAAAAEort3+Mm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LVqkJUuWqKamRpmZmbr55pvV0NDwfw4LAACQyJK/6L9QWFiowsLCdn9mWZYWL16suXPnatKkSZKkFStWqFevXlq1apXuu+++/1taAACABGbrPW779+/X0aNHVVBQENvn9Xo1ZswYvf322+3+O9FoVJFIpNUGAACAtmwtbkePHpUk9erVq9X+Xr16xX72ecFgUD6fL7YFAgE7IwEAAHQajnyq1OPxtHptWVabfS3KysoUDodjWygUciISAACA8b7wPW5nk5mZKemfK29ZWVmx/fX19W1W4Vp4vV55vV47YwAAAHRKtq645ebmKjMzU1VVVbF9p06dUnV1tUaOHGnnKAAAgITzhVfcTpw4oX379sVe79+/X7W1terevbuys7NVUlKiBQsWqH///urfv78WLFigCy+8UNOmTbM1OAAAQKL5wsVt+/btGjt2bOx1aWmpJKmoqEi/+tWv9IMf/ECffvqp7r//fh0/flzXXnutNmzYoLS0NPtSAwAAJCCPZVlWvEOcKRKJyOfzaXa4VN507n0DAACdWzQS1U98ixQOh5Wenn7WY3lWKQAAgCEobgAAAIaguAEAABiC4gYAAGAIihsAAIAhKG4AAACGoLgBAAAYguIGAABgCIobAACAIb7wI6+c1vIgh2gkGuckAAAAzmvpPOfzMKsO98irQ4cOKRAIxDsGAACAq0KhkHr37n3WYzpccWtubtbhw4eVlpYmj8fzvzpHJBJRIBBQKBQ65zO/nEQOcnTkDOQghwk5OkIGcpDD6QyWZamhoUF+v18XXHD2u9g63FulF1xwwTnb5vlKT0+P618ocpDDhAzkIIcJOTpCBnKQw8kMPp/vvI7jwwkAAACGoLgBAAAYolMWN6/XqyeeeEJer5cc5OiQOTpCBnKQw4QcHSEDOcjRkTJ0uA8nAAAAoH2dcsUNAACgM6K4AQAAGILiBgAAYAiKGwAAgCEobgAAAIaguAEAABiC4gYAAGAIihsAAIAh/h/IV8w33gidMwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.zeros((11, 17))\n", "x[2:4, 1:7] = -1\n", "x[2:9, 3:5] = -1\n", "x[2:9, 8:10] = 1\n", "x[2:9, 13:15] = 1\n", "x[7:9, 10:13] = 1\n", "print(x)\n", "plt.matshow(x, cmap='jet')\n", "plt.yticks(range(11, -1, -1))\n", "plt.xticks(range(0, 17));\n", "plt.ylim(10.5, -0.5)\n", "plt.xlim(-0.5, 16.5);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Back to Exercise 4\n", "\n", "Answer to Exercise 5" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 20, 100)\n", "y = np.sin(x)\n", "plt.plot(x, y, 'b')\n", "y[y > 0.5] = 0.5\n", "y[y < -0.75] = -0.75\n", "plt.plot(x, y, 'r');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Back to Exercise 5\n", "\n", "Answer to Exercise 6" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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vvgi3njjDTz33HPo6upCYWEhTpw4IVter8cPAF5++WWcOnUKixYtClhGb8evP89vTsnv0fM9pd/RijNnzuD+++/HwoULg05gmJubi40bN+LVV19FbW0tUlJSMG3aNBw5ciSGWxue2bNnY9OmTXjzzTfx61//Gm+//Ta+/e1vo6enJ+B39HwMX3jhBQwdOhQlJSVBy2nxGMrdF7T8OzTlbOKDNfBpWAgR9AlZrrzcci1ZunQp3n33Xfz5z38OWm7s2LEYO3as9++CggJ0dHTgV7/6Fa655hq1N1Ox2bNne/974sSJKCgowOWXX44XXngBy5cvl/2OHo8fAKxbtw6zZ89GVlZWwDJ6O35ylP4eI/1OvPX19WH+/Pk4d+4c1q5dG7Rsfn6+T0PdadOmYfLkyXjiiSfw+OOPq72pipSVlXn/e8KECbjqqqswatQovPbaa0GDAD0eQwBYv349br/99pBtabR4DIPdF7T4O2QNjgJpaWlISEjwizCPHTvmF4l6ZGRkyJYfMmQIhg8frtq2DsaPfvQjvPrqq2hoaIDNZlP8/fz8fE0+Kcq58MILMXHixIDbq8fjBwCffPIJdu3ahe9///uKv6uX4+fp/abk9+j5ntLvxFtfXx/mzZsHh8OB+vr6oLU3cs477zxcffXVujiumZmZGDVqVNBt1eMxBIC9e/fi8OHDEf0u430MA90XtPw7ZICjQFJSEvLy8rw9Uzzq6+tRWFgo+52CggK/8jt37sRVV12FxMRE1bY1EkIILF26FHa7HW+++SZGjx4d0XpaW1uRmZkZ5a1TR09PDw4dOhRwe/V0/PrbsGEDRowYge985zuKv6uX4zd69GhkZGT4HJ/e3l7s3r074O8RCHxMg30nnjzBzZEjR7Br166IAmshBNra2nRxXE+cOIGOjo6g26q3Y+ixbt065OXl4corr1T83Xgdw1D3BU3/DqPWXNkkNm/eLBITE8W6devEX/7yF1FZWSkuvPBCcfToUSGEEPfff78oLy/3lv/444/FBRdcIO655x7xl7/8Raxbt04kJiaKrVu3xmsXAvrhD38orFaraGxsFE6n0/v66quvvGUG7t9vfvMbsW3bNvHRRx+J999/X9x///0CgKirq4vHLoR07733isbGRvHxxx+LlpYWMWfOHDF06FBDHD8Pt9stLr30UnHffff5faa343f69GnR2toqWltbBQDx2GOPidbWVm8PokceeURYrVZht9vFe++9JxYsWCAyMzNFd3e3dx3l5eU+vRz/93//VyQkJIhHHnlEHDp0SDzyyCNiyJAhoqWlJeb7J0Twfezr6xM333yzsNlsoq2tzed32dPT413HwH1ctWqV2LFjh/jrX/8qWltbxb//+7+LIUOGiH379mlq/06fPi3uvfde0dTUJBwOh2hoaBAFBQVi5MiRhjmGHi6XS1xwwQXiqaeekl2HVo9hOPcFrf4OGeBE4Le//a0YNWqUSEpKEpMnT/bpRn3nnXeKa6+91qd8Y2OjmDRpkkhKShI5OTkBT/B4AyD72rBhg7fMwP179NFHxeWXXy5SUlLExRdfLL71rW+J1157LfYbH6aysjKRmZkpEhMTRVZWligpKREffPCB93M9Hz+PN954QwAQhw8f9vtMb8fP04194OvOO+8UQkhdVB966CGRkZEhkpOTxTXXXCPee+89n3Vce+213vIef/jDH8TYsWNFYmKiyM3NjWtAF2wfHQ5HwN9lQ0ODdx0D97GyslJceumlIikpSVxyySWiuLhYNDU1xX7nRPD9++qrr0RxcbG45JJLRGJiorj00kvFnXfeKdrb233Woedj6PHMM8+I888/X5w6dUp2HVo9huHcF7T6O7T8cweIiIiIDINtcIiIiMhwGOAQERGR4TDAISIiIsNhgENERESGwwCHiIiIDIcBDhERERkOAxwiIiIyHAY4REREZDgMcIiIiMhwGOAQERGR4TDAISIiIsNhgENERESG8/8BtH0EIDrM1PkAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 20, 100)\n", "y = np.sin(x)\n", "plt.plot(x[y > 0], y[y > 0], 'bo')\n", "plt.plot(x[y <= 0], y[y <= 0], 'ro');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Back to Exercise 6\n", "\n", "Answer to Exercise 7" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, y = np.loadtxt('xypoints.dat')\n", "plt.plot(x, y, 'ro')\n", "plt.plot(x[(x < -2) & (y >= -5) & (y < 0)], y[(x < -2) & (y >= -5) & (y < 0)], 'bo')\n", "r = np.sqrt((x - 5) ** 2 + y ** 2)\n", "plt.plot(x[r < 5], y[r < 5], 'go')\n", "plt.axis('scaled');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Back to Exercise 7\n", "\n", "Answer to Exercise 8" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1. 1. 1. 1. 1. 50. 52. 54. 56. 58.]\n" ] } ], "source": [ "x = np.ones(10)\n", "x[5:] = np.arange(50, 60, 2)\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Back to Exercise 8" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.13.5" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false }, "widgets": { "state": {}, "version": "1.1.2" } }, "nbformat": 4, "nbformat_minor": 4 }