Have you ever experienced that feeling of anxiety when you have an interview in a few days? Or are you currently thinking of how to do well in your machine learning or data science interviews? Or are you wondering how to ace NumPy questions? In this article, we are going to dicuss the NumPy Interview Questions in this article over here.

There is absolutely no doubt that interviews can be quite intimidating, especially when you are appearing for an interview for the first time or, unfortunately, you did not perform very well during your previous interview. However, you are not alone on this journey. We have you in mind and have put together a well-researched interview question you are likely to face during NumPy interviews. We do not only ask the questions but will also take you through a step-by-step approach to solving them. I hope you will find this article helpful and enjoy it.

A lot of work we do in data science and machine learning is obviously manipulating data. So there are quite a lot of libraries that are used. Notable among these libraries include:

- Numpy
- Sciki-learn
- Scipy
- PyTorch
- Pandas
- Matplolib
- Tensorflow
- Keras

However, the objective of this article is to look at one of the fundamental libraries known as NumPy, identify some sample interview questions recruiters ask, and how we can solve them. To begin, let us understand what NumPy is.

**What Is Numpy?**

NumPy is a library or module in python for scientific computing. It is basically **Num**erical **Py**thon, abbreviated as NumPy. NumPy contains a lot of things. It contains powerful N-Dimensional arrays and tools integrating with C, C++ programming language. It is also very useful in linear algebra, Fourier transform, and random number capabilities. The goal of NumPy is to efficiently manipulate large arrays or large collections of data or matrices. NumPy arrays are more powerful and faster than pure python lists. Without them, working on large datasets will be very slow. The core of NumPy is the C programming language because C is a compiled language. It makes NumPy very efficient.

**Sample NumPy Interview Questions**

Before we look at sample interview questions, let us understand what Arrays are. This is because the NumPy library is used for working on data stored as arrays.

A data structure that can hold many values, all of the **same data type,** is an Array. An array is a series of storage locations to hold data. Each storage location is about the same size for the particular data type the array is intended to store. Therefore, the use of arrays allows for a variable to be assigned more than one value at a time such that a subscript references each value of the variable. For example, suppose there are 1000 values representing students’ ages. It would be very tedious to assign each student’s age a unique symbolic or variable name. The best way of handling this is to assign all the ages a common name and then use a subscript to refer to any age (element) at any particular time. The main advantages of the use of arrays are that arrays are very simple and are quite fast. However, the problem with arrays is that you must specify the size of the array at construction time or in advance.

**Question 1: Why would you use Numpy instead of a list?**

**Solution To Question 1: **

**Save Coding time**

No for loops: many vector and matrix operations save coding time. You do not have to iterate through an array to apply a mathematical operation to each element of the array. You can do it with a single line of code.

Example:

**Using Python List**

for i in range (len (my_list)):

my_list[i] *= 3

**Using Numpy Array**

my_array *=3

**Faster Execution**

It uses a single type for each field to avoid type checking and also uses contiguous blocks of memory.

**Uses Less Memory**

A python list is an array of pointers to python objects that are stored somewhere else in memory. So it has a list of pointers that each take up 4 bytes plus the object, which is stored in memory with metadata associated with each object. Numpy array does not use pointers. So the type and item size are the same for each column in the array, and it also has really compact data types.

**In Summary: **Numpy requires less memory and it is very convenient to work with compared to the list. Moreover, it is actually very fast when compared with a list as explained earlier.

**Question 2:** **Given an array a = [[1,2,3],[3,4,5],[23, 45,1]** **find the sum of every row in array a.**

**Solution To Question 2: **

To solve the above problem, we first have to understand what the question required of us. If two subscripts reference array elements, then we have a two-dimensional array. By three subscripts, we have a three-dimensional array, etc. For 2 dimensional arrays, the elements of the arrays are stored in rows and columns. Setting the axis to 1 will calculate the sum of elements in a row. The question requires the sum of the elements in the row positions.

import numpy as np

a = [[1,2,3], [3,4,5], [23, 45,1]

Print (a.sum(axis=1))

Conversely, for column sum,

a = [[1,2,3], [3,4,5], [23, 45,1]

Print (a.sum(axis=0))

This should print [27, 51, 9]

**Question 3**: **How do you create a three-dimensional (3D) array in NumPy?**

**Solution To Question 3:**

A three-dimensional array is an array which organizes and accesses data with three (3) indexes ie [x,y,z].

Below are the steps to create a three-dimensional array:

num3 = [[ [1,2,3], [5,6,7], [9,10,11] ]]

num3= np.array(num3)

print(“The out the three-dimensional array is : “ , num3)

**Question 4**: **How do you calculate the memory size occupied by a NumPy array? Given an array a= [14, 98, 87]. Find the memory size it occupies.**

**Solution To Question 4:**

The elements of the array are integers. From the data types and sizes table, an integer data type has a size of 4 bytes. This implies the element 14 occupies 4 bytes, 98 also occupies 4 bytes, and finally, the last element, 87, will also occupy 4 bytes. Therefore the total size of memory the array occupies is 12 bytes. Imagine the array has large data sets of integer. It will be tedious to do this manually.

However, NumPy has some attributes such as **size, item size and nbytes** to help solve this problem.

**Size**attribute:**size**attribute returns the total number of elements in a NumPy array.**itemsize**attribute: the**itemsize**returns the memory size*bytes*of an individual element in the NumPy array.**nbytes**attribute: the**nbytes**attribute will return the total bytes of all the elements in the NumPy array.

With these attributes, the problem can be solved using two methods or approaches.

**Approach 1:**

a= [14, 98, 87].

import numpy as np

import sys

print(sys.getsizeof(a)* len(a))

or

a= np.array([14,98,87])

print(“The size in bytes of one element in array: “, a.itemsize)

print(“The size of array: “, a.size)

print(“The bytes of all elements in a: “, a.size * a.itemsize)

**Approach 2:**

We will use the nbytes attribute**.**

import numpy as np

a= np.array([14,98,87])

print(“The total size of space or memory the array occupies: “, a.nbytes)

**Question 5: What are the Applications of Numpy?**

**Solution To Question 5:**

Basic applications of NumPy include:

- It is used for plotting (Matplotlib)
- The backend to many different applications.
- You can actually store images through NumPy.
- Machine learning: Numpy is pretty important for machine learning applications both directly and indirectly. One of the key libraries or key concepts you learn in machine learning is Tensors. Tensor libraries are pretty similar to Numpy libraries. So knowing NumPy can help you do some cool stuff in machine learning.

**Question 6: How do you get the dimension of a Numpy array? Take an example of array a= [1,2,3]?**

**Solution To Question 6:**

The dimension of an array is referred to as a Rank in Numpy or the number of axes the array has. Thus, to get the dimension for the given array, **a.ndim **will return the dimension, which is 1.

**Question 7: What is the difference between range() and arange() functions in Python?**

**Solution To Question 7:**

The main difference is that the ** arange** function is a built function in the python class that helps generate a sequence of integer values within a certain range. However, the

**function is a built-in function in the python library called Numpy, and so to use the arange function, you will have to install the NumPy package. Both range and arange functions take the same parameters shown below. (start, stop, and step). The main difference is that the range function takes only integers arguments. Otherwise, it returns an error message while the arange function will generate or return an instance of the NumPy ndarray.**

*arange*range([start], stop[, step])

numpy.arange([start, ]stop, [step, ]dtype=None)

If you are preparing for a role in machine learning or data science, you must learn NumPy. Numpy is one of the most useful python libraries, especially if you are crunching numbers. NumPy is very powerful because it can be used as an efficient multi-dimensional container for generic data. A lot of questions are asked during interviews for data science and machine learning positions. Therefore, I will recommend before sitting in for an interview for such positions. Candidates need to practice a lot of NumPy special operations. We hope to solve NumPy operations in subsequent articles. Below are some questions on NumPy operations you can try your hands on before interviews.

**NumPy Operations To Practice Before Interview**

- How to find the dimension of arrays, whether it is a two-dimensional array et al.
- Find the data type of the elements that are stored in an array.
- Find the shape of an array ( total number of columns and rows)
- The minimum and maximum as well as sum of NumPy arrays.
- How to transpose a NumPy array

Also read Top Interview Questions to Ask Software Engineers