NumPy module in Python is a powerful library that is used extensively in data manipulation and scientific computing. In this article, we will look how to create NumPy Arrays and some of its basic attributes.
What is NumPy?
NumPy, stands for Numerical Python, and it is an open-source library that provides support for large, multi-dimensional arrays and matrices, along with a collection of mathematical functions to operate on these arrays. With NumPy, complex mathematical operations and manipulations can become very easy.
Creating NumPy Arrays
Arrays are the central data structure of the NumPy library. Let’s look into the process of creating these arrays.
Creating One-Dimensional Arrays
A one-dimensional array is like a list in Python, but with superpowers. It’s designed to handle numerical computation efficiently. Let’s see an example, where we will create a NumPy Array from a list
import numpy as np # Create a Python list listOfNumbers = [2, 3, 4] # Convert list to a NumPy array arr = np.array(listOfNumbers) # Display the array print(arr)
[2 3 4]
This code snippet creates a one-dimensional NumPy array from a Python list. We have imported the NumPy module with the alias
np. So, we can use
np instead of word
numpy while accessing the functions.
Checking the Data Type of NumPy Array
To confirm that we’ve created a NumPy array, we can use the
- numpy.append() – Python
- Create an empty 2D Numpy Array / matrix and append rows or columns in python
- Python: numpy.flatten() – Function Tutorial with examples
- Convert NumPy Array to Pandas Dataframe
The output will confirm that
arr is of type
numpy.ndarray, which stands for ‘n-dimensional array’.
Creating Two-Dimensional NumPy Arrays
We can also create 2D NumPy arrays, and use them as matrices. Here’s how we can create a 2D array from nested lists:
# Create a 2D array from a list of lists arr2D = np.array([[12, 34, 67], [42, 10,-33], [11, 12, 22]]) # Display the 2D array print(arr2D)
[[ 12 34 67] [ 42 10 -33] [ 11 12 22]]
In this 2D array, each inner nest list is converted into a row within the NumPy array.
Data Types in NumPy Arrays
NumPy supports a greater variety of numerical data types than Python does. This is important because the data type determines how the data is stored in memory, how subsequent calculations are performed on that data, and how the data is interpreted when being read. Common data types in NumPy include:
Upcasting of Data Types in NumPy Array
NumPy arrays are homogeneous, which means they strive to have all elements of the same data type only. If you mix data types, NumPy will upcast if possible (e.g., integers will be upcast to floats if floats are present in the list).
If you provide multiple types in a NumPy array, NumPy will automatically upcast the data types to the highest precision present. Here’s an example of upcasting:
import numpy as np # Integers and floats are mixed, # so NumPy upcasts integers to floats arr1 = np.array([1, 2.5, 4]) print(arr1.dtype) # Output: float64 # Integers and boolean are mixed, # So NumPy upcasts boolean to integers arr2 = np.array([1, False, 3]) print(arr2.dtype) # Output: int64
Explicitly Setting the Data Type of NumPy Array
You can explicitly set the type of the array elements using the
import numpy as np # Create an array with data type float arr = np.array([11, 22, 33], dtype=float) # Display the array with type print(arr)
[11. 22. 33.]
Although we supplied a list of integers, but NumPy array
arr was created with elements of float type only. It is because we explicitly passed the
dtype parameter with value
NumPy Arrays with Different Data Types
If you try to create an array with different data types, such as strings and numbers, NumPy will convert them to the same data type, selecting the one that can represent all the elements, typically strings:
import numpy as np # Create an array with mixed data types arr = np.array(['Sample', True, 24, 10.6]) # Display the array print(arr)
['Sample' 'True' '24' '10.6']
This array will contain all string values because strings can represent both text and numbers.
NumPy can easily handle multi-dimensional arrays. Let’s see how to create a 3-dimensional array:
import numpy as np # Create a 3D array arr3D =np.array([[[11, 32, 23], [24, 45, 36]], [[17, 18, 29], [11, 12, 32]] ]) # Display the 3D array print(arr3D)
[[[11 32 23] [24 45 36]] [[17 18 29] [11 12 32]]]
This array is composed of two 2D arrays, each containing two rows and three columns.
NumPy Array Attributes and Methods
NumPy arrays come with attributes and methods that allow us to inspect and manipulate them. Although we’ll explore these in detail in our next session, let’s look at a couple of attributes:
ndim: This tells you the number of dimensions of the array.
shape: This gives you the size of the array in each dimension.
Let’s check the attributes of our 2D array:
import numpy as np # Create a 2D array from a list of lists arr2D = np.array([[12, 34, 67], [42, 10,-33], [11, 12, 22], [23, 24, 25]]) # Display the 2D array print(arr2D) print(arr2D.ndim) # Output: 2 print(arr2D.shape) # Output: (4, 3)
[[ 12 34 67] [ 42 10 -33] [ 11 12 22] [ 23 24 25]] 2 (4, 3)
In this introduction of NumPy Arrays, we’ve learned how to create NumPy arrays of various dimensions and set their data types. We’ve also glimpsed the power of array attributes, we will cover them more extensively in our next artcile.