Python list has been doing a wonderful job in the as a data collection where it is mutable, able to add, change and delete values from the list. It allows us to hold data with different data types.
numpy package is one of the fundamental package for scientific computing with Python. It is often being used to carry out mathematical operation to entire collections and allows us to perform the computation fast. The installation of the numpy is easily done by going to the command line or the terminal and type the following command:
pip3 install numpy
A simple kick start in the given exercise from the online learning course on using numpy package, it requires us to import the numpy package and use the array. The workaround as below:
# Create list baseball baseball = [180, 210, 210, 188, 120, 92, 100, 246] # Import the numpy package as np import numpy as np # Create a numpy array from baseball: np_baseball np_baseball = np.array(baseball) # Print out type of np_baseball print(type(np_baseball))
With a random number in a baseball list, then import the numpy and create a new variable, called np_baseball to hold a numpy array and lastly, print out the type of variable, np_baseball. The output of the above code:
Numpy array cannot contain elements with different data types, unlike Python List. If you try to build such list in numpy array, some of the elements’ types are changed to end up with a homogeneous list. It calls coercion.
Secondly, the operator “+”, “-” and etc which we used along with Python List, are now having different meaning for numpy array.
Moving on, there is something quite interesting to be shared here, for numpy package, we can also use boolean numpy arrays. Cool, right? Let’s see the example given by the online learning website, simple one.
#first set of code, accessing 2nd element using list and numpy array. #the output is 9. x = [4 , 9 , 6, 3, 1] x import numpy as np y = np.array(x) y #second set of code, check the condition if y's value > 5, and print out the value. high = y > 5 y[high]
I ran the above code in the Jupyter notebook and the result showed as below. I ran the  before .
Then in the exercise, I required to create a boolean numpy array which will contain True and False values depend on the condition of player’s BMI < 21 and create a variable to hold the above result. Lastly, print out a numpy array with BMI’s values of all players whose BMI < 21. The keyword here is the usage of square brackets to do a selections on the BMI array.
My source code as below:
# height and weight are available as a regular lists # Import numpy import numpy as np # Calculate the BMI: bmi np_height_m = np.array(height_in) * 0.0254 np_weight_kg = np.array(weight_lb) * 0.453592 bmi = np_weight_kg / np_height_m ** 2 # Create the light array light = np.array(bmi < 21) # Print out light print(light) # Print out BMIs of all baseball players whose BMI is below 21 light = bmi < 21 print(bmi[light]) #output of the 2 prints. [False False False ..., False False False] [ 20.54255679 20.54255679 20.69282047 20.69282047 20.34343189 20.34343189 20.69282047 20.15883472 19.4984471 20.69282047 20.9205219 ]
Both the y[high] and bmi[light] list the elements that matched the conditions given in the codes.
Summary of the day:
- numpy package
- boolean numpy array