NumPy Exercises, Practice, Solution


NumPy is a Python package providing fast, flexible, and expressive data structures designed to make working with 'relationa' or 'labeled' data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python.

The best way we learn anything is by practice and exercise questions. Here you have the opportunity to practice the NumPy concepts by solving the exercises starting from basic to more complex exercises. A sample solution is provided for each exercise. It is recommended to do these exercises by yourself first before checking the solution.

Hope, these exercises help you to improve your NumPy coding skills. Currently, following sections are available, we are working hard to add more exercises .... Happy Coding!

List of NumPy Exercises:

NumPy Basics

Operator Description
np.array([1,2,3]) 1d array
np.array([(1,2,3),(4,5,6)]) 2d array
np.arange(start,stop,step) range array


Operator Description
np.linspace(0,2,9) Add evenly spaced values btw interval to array of length
np.zeros((1,2)) Create and array filled with zeros
np.ones((1,2)) Creates an array filled with ones
np.random.random((5,5)) Creates random array
np.empty((2,2)) Creates an empty array


Syntax Description
array.shape Dimensions (Rows,Columns)
len(array) Length of Array
array.ndim Number of Array Dimensions
array.dtype Data Type
array.astype(type) Converts to Data Type
type(array) Type of Array


Operators Description
np.copy(array) Creates copy of array
other = array.copy() Creates deep copy of array
array.sort() Sorts an array
array.sort(axis=0) Sorts axis of array

Array Manipulation

Adding or Removing Elements

Operator Description
np.append(a,b) Append items to array
np.insert(array, 1, 2, axis) Insert items into array at axis 0 or 1
np.resize((2,4)) Resize array to shape(2,4)
np.delete(array,1,axis) Deletes items from array

Combining Arrays

Operator Description
np.concatenate((a,b),axis=0) Concatenates 2 arrays, adds to end
np.vstack((a,b)) Stack array row-wise
np.hstack((a,b)) Stack array column wise

Splitting Arrays

Operator Description
numpy.split() Split an array into multiple sub-arrays.
np.array_split(array, 3) Split an array in sub-arrays of (nearly) identical size
numpy.hsplit(array, 3) Split the array horizontally at 3rd index


Operator Description
other = ndarray.flatten() Flattens a 2d array to 1d
array = np.transpose(other)
Transpose array
inverse = np.linalg.inv(matrix) Inverse of a given matrix



Operator Description
x + y
x - y
x / y
x @ y
np.sqrt(x) Square Root
np.sin(x) Element-wise sine
np.cos(x) Element-wise cosine
np.log(x) Element-wise natural log
np.dot(x,y) Dot product
np.roots([1,0,-4]) Roots of a given polynomial coefficients


Operator Description
== Equal
!= Not equal
< Smaller than
> Greater than
<= Smaller than or equal
>= Greater than or equal
np.array_equal(x,y) Array-wise comparison

Basic Statistics

Operator Description
np.mean(array) Mean
np.median(array) Median
array.corrcoef() Correlation Coefficient
np.std(array) Standard Deviation


Operator Description
array.sum() Array-wise sum
array.min() Array-wise minimum value
array.max(axis=0) Maximum value of specified axis
array.cumsum(axis=0) Cumulative sum of specified axis

Slicing and Subsetting

Operator Description
array[i] 1d array at index i
array[i,j] 2d array at index[i][j]
array[i<4] Boolean Indexing, see Tricks
array[0:3] Select items of index 0, 1 and 2
array[0:2,1] Select items of rows 0 and 1 at column 1
array[:1] Select items of row 0 (equals array[0:1, :])
array[1:2, :] Select items of row 1
[comment]: <> ( array[1,...]
array[ : :-1] Reverses array

[ Want to contribute to Python Pandas exercises? Send your code (attached with a .zip file) to us at w3resource[at]yahoo[dot]com. Please avoid copyrighted materials.]

Test your Python skills with w3resource's quiz

Python: Tips of the Day

Python: Dictionary As Arguments Using **arguments

It allows you to pass varying number of keyword arguments to a function.
You can also pass in dictionary values as keyword arguments:

def myfunc(arguments):
  return arguments['key']