From 16a01bed33db534fb789eaafaa27168eb8566e65 Mon Sep 17 00:00:00 2001 From: David Rotermund <54365609+davrot@users.noreply.github.com> Date: Thu, 14 Dec 2023 17:57:00 +0100 Subject: [PATCH] Create README.md Signed-off-by: David Rotermund <54365609+davrot@users.noreply.github.com> --- numpy/advanced_indexing/README.md | 79 +++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 numpy/advanced_indexing/README.md diff --git a/numpy/advanced_indexing/README.md b/numpy/advanced_indexing/README.md new file mode 100644 index 0000000..26cdf22 --- /dev/null +++ b/numpy/advanced_indexing/README.md @@ -0,0 +1,79 @@ +# Advanced Indexing +{:.no_toc} + + + +## The goal + +Beside slicing there is something called advanced indexing + +Questions to [David Rotermund](mailto:davrot@uni-bremen.de) + +## Boolean Array​ + +We can use Boolean arrays for more complicate indexing: + +```python +import numpy as np + +a = np.arange(1,10).reshape(3,3) +b = np.zeros_like(a) + +b[a.sum(axis=1) > 6, :] = 1 + +print(a) +print() +print(b) +``` + +Output: + +```python +[[1 2 3] + [4 5 6] + [7 8 9]] + +[[0 0 0] + [1 1 1] + [1 1 1]] +``` + +Behind the curtains more or less this happens:​ + +```python +import numpy as np + +a = np.arange(1, 10).reshape(3, 3) +b = np.zeros_like(a) + +temp_0 = a.sum(axis=1) +temp_1 = temp_0 > 6 +temp_2 = np.nonzero(temp_1) +b[temp_2] = 1 + +print(temp_0) +print() +print(temp_1) +print() +print(temp_2) +print() +print(b) +``` + +Output: + +```python +[ 6 15 24] + +[False True True] + +(array([1, 2]),) + +[[0 0 0] + [1 1 1] + [1 1 1]] +``` +