In this article, we are going to learn basics about, what is Python NumPy Library and how to create arrays in NumPy.
Introduction to Python NumPy Library
NumPy
stands for Numerical Python. It has many inbuilt Mathematical functions for fast calculations without writing loops. NumPy functions are usually 10 to 100 times efficient than native Python counterparts. For example, consider the below code.
import numpy as np
a=np.arange(100000)
b=list(range(100000))
%time for _ in range(1000): c=a+5
%time for _ in range(1000): d=[x+5 for x in b]
Output:
Wall time: 59.8 ms
Wall time: 5.91 s
We can see that NumPy arrays took 59.8 ms, whereas, native Python list took 5910 ms.
This happens because the Numpy array is densely packed in memory due to its homogeneous type, it also frees the memory faster. Whereas the native Python Lists are heterogeneous in nature, which means, you can store any data type elements in Python List.
1. Creation of NumPy arrays
NumPy arrays are of type ndarray
we can create NumPy arrays in various ways.
1.1 np.arange
np.arange
function creates NumPy arrays given (start,stop,step) as a parameter. All of the parameters are optional. It just works like range function in Python. Consider the below example for a quick understanding.
import numpy as np
a=np.arange(4)
print("NumPy array is",a)
print("Type of NumPy array is ",type(a))
Output:
NumPy array is [0 1 2 3]
Type of NumPy array is 'numpy.ndarray'
1.2 np.array
Given a native Python list as a parameter to np.array
function, it creates ndarray
out of it. It converts native Python list to ndarray.
import numpy as np
l=[1,2,3,4]
print('l is ',l)
print('type(l) is ',type(l))
a=np.array(l)
print('a is ',a)
print('type(a) is ',type(a))
Output:
l is [1, 2, 3, 4]
type(l) is 'list'
a is [1 2 3 4]
type(a) is 'numpy.ndarray'
1.3 np.random
We can generate NumPy arrays of random numbers using 2 functions i.e np.random.randn
which creates NumPy arrays which follow the standard normal distribution. Another function is np.random.rand
which creates random numbers between 0 and 1. Both of the functions take shape of ndarray as a parameter. The shape of ndarray means dimensions of ndarray.
import numpy as np
a=np.random.rand(2,3)
print('a is ',a)
b=np.random.randn(2,3)
print('b is ',b)
Output:
a is [[0.84007998 0.68697637 0.18478619]
[0.62999256 0.36127338 0.77176328]]
b is [[-2.0411092 -0.76434655 0.83364755]
[-0.81265267 0.40939792 -1.98997584]]
2. Basic functions in NumPy
2.1. ndim
ndim
function returns the number of dimensions of ndarray.
import numpy as np
a=np.random.rand(2,3)
print('a is ',a)
print('Number of dimensions of ndarray a are',a.ndim)
Output:
a is [[0.89955932 0.44864809 0.82538467]
[0.24063851 0.74021459 0.30311691]]
Number of dimensions of ndarray a are 2
2.2. shape
shape
function returns the dimensions of ndarray.
import numpy as np
a=np.random.rand(2,3)
print('a is ',a)
print('Dimensions of ndarray a are',a.shape)
Output:
a is [[0.87329951 0.96582738 0.07259562]
[0.94085258 0.39460208 0.97039398]]
Dimensions of ndarray a are (2, 3)
2.3. dtype
dtype
function returns the data type of ndarray.
import numpy as np
a=np.random.rand(2,3)
print('a is ',a)
print('Data type of ndarray a is',a.dtype)
Output:
a is [[0.53457247 0.65259818 0.38042279]
[0.11895136 0.10993727 0.68071357]]
Data type of ndarray a is float64
2.4. size
ndarray.size
returns the total number of elements of the array. This is equal to the product of the elements of shape.
import numpy as np
a=np.random.rand(2,3)
print('a is ',a)
print('Number of elements in ndarray a is',a.size)
Output:
a is [[0.63950041 0.82499852 0.85583265]
[0.33566962 0.87589146 0.80804273]]
Number of elements in ndarray a is 6
3. Reference:
Happy Learning 🙂