NumPy Indexing and Selection
In this lecture we will discuss how to select elements or groups of elements from an array.
import numpy as np
#Creating sample arrayarr = np.arange(0,11)#Showarr
Bracket Indexing and Selection
The simplest way to pick one or some elements of an array looks very similar to python lists:
#Get values in a rangearr[1:5]#Get values in a rangearr[0:5]
Broadcasting
Numpy arrays differ from a normal Python list because of their ability to broadcast:
#Setting a value with index range (Broadcasting)arr[0:5]=100#Showarr
# Reset array, we'll see why I had to reset in a momentarr = np.arange(0,11)#Showarr
#Important notes on Slicesslice_of_arr = arr[0:6]#Show sliceslice_of_arr
#Change Sliceslice_of_arr[:]=99#Show Slice againslice_of_arr
Now notice that the changes also occur in our original array!
arr
The Data is not copied, it's a view of the original array! This avoids memory problems!
#To get a copy, need to be explicitarr_copy = arr.copy()arr_copy
Indexing a 2D array (matrices)
The general format isarr_2d[row][col] orarr_2d[row,col]. I recommend usually using the comma notation for clarity.
arr_2d = np.array(([5,10,15],[20,25,30],[35,40,45]))#Showarr_2d
#Indexing rowarr_2d[1]
# Format is arr_2d[row][col] or arr_2d[row,col]# Getting individual element valuearr_2d[1][0]
# Getting individual element valuearr_2d[1,0]
# 2D array slicing#Shape (2,2) from top right cornerarr_2d[:2,1:]
#Shape bottom rowarr_2d[2]
#Shape bottom rowarr_2d[2,:]
Fancy Indexing
Fancy indexing allows one to select entire rows or columns out of order. To show this, let's quickly build out a NumPy Array:
#Set up matrixarr2d = np.zeros((10,10))
#Length of arrayarr_length = arr2d.shape[1]
#Set up arrayfor i in range(arr_length): arr2d[i] = iarr2d
Fancy indexing allows the following
arr2d[[2,4,6,8]]
#Allows in any orderarr2d[[6,4,2,7]]
More Indexing
Indexing a 2D Matrix can be a bit confusing at first, especially when you start to add in step size.
Selection
Let's briefly go over how to use brackets for selection based off of comparison operators.
arr = np.arange(1,11)arr
arr > 4
bool_arr = arr>4
bool_arr
arr[bool_arr]
arr[arr>2]
x = 2arr[arr>x]
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse