Python Data Science Jobs & Interviews
20.3K subscribers
187 photos
4 videos
25 files
325 links
Your go-to hub for Python and Data Science—featuring questions, answers, quizzes, and interview tips to sharpen your skills and boost your career in the data-driven world.

Admin: @Hussein_Sheikho
Download Telegram
NUMPY FOR DS.pdf
4.5 MB
Let's start at the top...

NumPy contains a broad array of functionality for fast numerical & mathematical operations in Python

The core data-structure within #NumPy is an ndArray (or n-dimensional array)

Behind the scenes - much of the NumPy functionality is written in the programming language C

NumPy functionality is used in other popular #Python packages including #Pandas, #Matplotlib, & #scikitlearn!

✉️ Our Telegram channels: https://t.iss.one/addlist/0f6vfFbEMdAwODBk
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Question 13 (Intermediate):
In NumPy, what is the difference between np.array([1, 2, 3]) and np.array([[1, 2, 3]])?

A) The first is a 1D array, the second is a 2D row vector
B) The first is faster to compute
C) The second automatically transposes the data
D) They are identical in memory usage

#Python #NumPy #Arrays #DataScience

By: https://t.iss.one/DataScienceQ
3
🚀 Comprehensive Guide: How to Prepare for a Data Analyst Python Interview – 350 Most Common Interview Questions

Are you ready: https://hackmd.io/@husseinsheikho/pandas-interview

#DataAnalysis #PythonInterview #DataAnalyst #Pandas #NumPy #Matplotlib #Seaborn #SQL #DataCleaning #Visualization #MachineLearning #Statistics #InterviewPrep


✉️ Our Telegram channels: https://t.iss.one/addlist/0f6vfFbEMdAwODBk

📱 Our WhatsApp channel: https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Interview question :
What is NumPy, and why is it essential for scientific computing in Python?

Interview question :
How do arrays in NumPy differ from Python lists?

Interview question :
What is the purpose of ndarray in NumPy?

Interview question :
How can you create a 2D array using NumPy?

Interview question :
What does shape represent in a NumPy array?

Interview question :
How do you perform element-wise operations on NumPy arrays?

Interview question :
What is broadcasting in NumPy, and how does it work?

Interview question :
How do you reshape a NumPy array using reshape()?

Interview question :
What is the difference between copy() and view() in NumPy?

Interview question :
How do you concatenate two NumPy arrays along a specific axis?

Interview question :
What is the role of axis parameter in NumPy functions like sum(), mean(), etc.?

Interview question :
How do you find the maximum and minimum values in a NumPy array?

Interview question :
What are ufuncs in NumPy, and give an example?

Interview question :
How do you sort a NumPy array using np.sort()?

Interview question :
What is the use of np.where() in conditional indexing?

Interview question :
How do you generate random numbers using NumPy?

Interview question :
What is the difference between np.random.rand() and np.random.randn()?

Interview question :
How do you load data from a file into a NumPy array?

Interview question :
What is vectorization in NumPy, and why is it important?

Interview question :
How do you calculate the dot product of two arrays in NumPy?

#️⃣ tags: #NumPy #Python #ScientificComputing #Array #ndarray #ElementWiseOperations #Broadcasting #Reshape #CopyView #Concatenation #AxisParameter #MaximumMinimum #ufuncs #Sorting #ConditionalIndexing #RandomNumbers #DataLoading #Vectorization #DotProduct

By: t.iss.one/DataScienceQ 🚀
⁉️ Interview question 
What happens when you perform arithmetic operations between a NumPy array and a scalar value, and how does NumPy handle the broadcasting mechanism in such cases?

The operation is applied element-wise, and the scalar is broadcasted to match the shape of the array, enabling efficient computation without explicit loops.

#️⃣ tags: #numpy #python #arrayoperations #broadcasting #interviewquestion

By: t.iss.one/DataScienceQ 🚀
⁉️ Interview question 
Given the following NumPy code snippet, what will be the output and why?

import numpy as np

arr = np.array([[1, 2], [3, 4]])
result = arr + 5
print(result)

The output will be a 2x2 array where each element is incremented by 5: [[6, 7], [8, 9]]. This happens because NumPy automatically broadcasts the scalar value 5 to match the shape of the array, performing element-wise addition.

#️⃣ tags: #numpy #python #arrayaddition #broadcasting #interviewquestion #programming

By: t.iss.one/DataScienceQ 🚀
⁉️ Interview question
What will be the output of the following NumPy code snippet?

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
result = arr[1:4:2] + arr[::2]
print(result)


<details><summary>Click to reveal</summary>Answer: [3 5]</details>

#️⃣ tags: #numpy #python #interviewquestion #arrayoperations #slicing #broadcasting

By: @DataScienceQ 🚀
⁉️ Interview question
What does the following NumPy code return?

import numpy as np

a = np.arange(6).reshape(2, 3)
b = np.array([[1, 2, 3], [4, 5, 6]])
result = np.dot(a, b.T)
print(result)


<details><summary>Click to reveal</summary>Answer: [[ 8 20] [17 47]]</details>

#️⃣ tags: #numpy #python #interviewquestion #arrayoperations #matrixmultiplication #dotproduct

By: @DataScienceQ 🚀
#numpy #python #programming #question #array #basic

Write a Python code snippet using NumPy to create a 2D array of shape (3, 4) filled with zeros. Then, modify the element at position (1, 2) to be 5. Print the resulting array.

import numpy as np

# Create a 2D array of zeros with shape (3, 4)
arr = np.zeros((3, 4))

# Modify the element at position (1, 2) to be 5
arr[1, 2] = 5

# Print the resulting array
print(arr)

Output:
[[0. 0. 0. 0.]
[0. 0. 5. 0.]
[0. 0. 0. 0.]]

By: @DataScienceQ 🚀
2
#numpy #python #programming #question #array #intermediate

Write a Python program using NumPy to perform the following tasks:

1. Create a 1D array of integers from 1 to 10.
2. Reshape it into a 2D array of shape (2, 5).
3. Compute the sum of each row and store it in a new array.
4. Find the indices of elements greater than 7 in the original 1D array.
5. Print the resulting 2D array, the row sums, and the indices.

import numpy as np

# 1. Create a 1D array from 1 to 10
arr_1d = np.arange(1, 11)

# 2. Reshape into a 2D array of shape (2, 5)
arr_2d = arr_1d.reshape(2, 5)

# 3. Compute the sum of each row
row_sums = np.sum(arr_2d, axis=1)

# 4. Find indices of elements greater than 7 in the original 1D array
indices_greater_than_7 = np.where(arr_1d > 7)[0]

# 5. Print results
print("2D Array:\n", arr_2d)
print("Row sums:", row_sums)
print("Indices of elements > 7:", indices_greater_than_7)

Output:
2D Array:
[[ 1 2 3 4 5]
[ 6 7 8 9 10]]
Row sums: [15 40]
Indices of elements > 7: [7 8 9]

By: @DataScienceQ 🚀
4
1. What is the output of the following code?
import numpy as np
a = np.array([1, 2, 3])
b = a + 1
a[0] = 99
print(b[0])

2. Which of the following functions creates an array with random values between 0 and 1?
A) np.random.randint()
B) np.random.randn()
C) np.random.rand()
D) np.random.choice()

3. Write a function that takes a 2D NumPy array and returns the sum of all elements in each row.

4. What will be printed by this code?
import numpy as np
x = np.array([1, 2, 3])
y = x.view()
y[0] = 5
print(x)

5. Explain the difference between np.copy() and np.view().

6. How do you efficiently reshape a 1D array of 100 elements into a 10x10 matrix?

7. What is the result of np.dot(np.array([1, 2]), np.array([[1], [2]]))?

8. Write a program to generate a 3D array of shape (2, 3, 4) filled with random integers between 0 and 9.

9. What happens when you use np.concatenate() on arrays with incompatible shapes?

10. Which method can be used to find the indices of non-zero elements in a NumPy array?

11. What is the output of this code?
import numpy as np
arr = np.arange(10)
result = arr[arr % 2 == 0]
print(result)

12. Describe how broadcasting works in NumPy with an example.

13. Write a function that normalizes each column of a 2D NumPy array using z-score normalization.

14. What is the purpose of np.fromfunction() and how would you use it to create a 3x3 array where each element is the sum of its indices?

15. What does np.isclose(a, b) return and when is it preferred over ==?

16. How would you perform element-wise multiplication of two arrays of different shapes using broadcasting?

17. Write a program to compute the dot product of two large 2D arrays without using loops.

18. What is the difference between np.array() and np.asarray()?

19. How can you efficiently remove duplicate rows from a 2D NumPy array?

20. Explain the use of np.einsum() and provide an example for computing the trace of a matrix.

#NumPy #AdvancedPython #DataScience #ScientificComputing #PythonLibrary #NumericalComputing #ArrayProgramming #MachineLearning #PythonDeveloper #CodeQuiz #HighLevelNumPy

By: @DataScienceQ 🚀
1. What is the output of the following code?
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = a.T
b[0, 0] = 99
print(a)

2. Which of the following functions is used to create an array with values spaced at regular intervals?
A) np.linspace()
B) np.arange()
C) np.logspace()
D) All of the above

3. Write a function that takes a 1D NumPy array and returns a new array where each element is squared, but only if it’s greater than 5.

4. What will be printed by this code?
import numpy as np
x = np.array([1, 2, 3])
y = x.copy()
y[0] = 5
print(x[0])

5. Explain the difference between np.meshgrid() and np.mgrid in generating coordinate matrices.

6. How would you efficiently compute the outer product of two vectors using NumPy?

7. What is the result of np.sum(np.eye(3), axis=1)?

8. Write a program to generate a 5x5 matrix filled with random integers from 1 to 100, then find the maximum value in each row.

9. What happens when you use np.resize() on an array with shape (3,) to resize it to (5,)?

10. Which method can be used to flatten a multi-dimensional array into a 1D array without copying data?

11. What is the output of this code?
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
result = arr[[0, 1], [1, 2]]
print(result)

12. Describe how np.take() works and provide an example using a 2D array.

13. Write a function that calculates the Euclidean distance between all pairs of points in a 2D array of coordinates.

14. What is the purpose of np.frombuffer() and when might it be useful?

15. How do you perform matrix multiplication using np.matmul() and @ operator? Are they always equivalent?

16. Write a program to filter out all elements in a 2D array that are outside the range [10, 90].

17. What does np.nan_to_num() do and why is it important in numerical computations?

18. How can you efficiently transpose a large 3D array of shape (100, 100, 100) using np.transpose() or swapaxes()?

19. Explain the concept of "views" vs "copies" in NumPy and give an example where a view leads to unexpected behavior.

20. Write a function that computes the covariance matrix of a dataset represented as a 2D NumPy array.

#NumPy #AdvancedPython #DataScience #InterviewPrep #PythonLibrary #ScientificComputing #MachineLearning #CodingChallenge #HighLevelNumPy #PythonDeveloper #TechnicalInterview #DataAnalysis

By: @DataScienceQ 🚀
Interview question
What is the difference between numpy.array() and numpy.asarray() when converting a Python list to a NumPy array, and how does it affect memory usage?

Answer:
numpy.array() always creates a new copy of the input data, meaning that modifications to the original list will not affect the resulting array. This ensures data isolation but increases memory usage. In contrast, numpy.asarray() only creates a copy if the input is not already a NumPy array or compatible format—otherwise, it returns a view of the existing data. This makes asarray() more memory-efficient when working with existing arrays or array-like objects. For example, if you pass an existing NumPy array to asarray(), it returns the same object without copying, whereas array() would still create a new copy even if the input is already a NumPy array

tags: #Python #NumPy #MemoryManagement #DataConversion #ArrayOperations #InterviewQuestion

By: @DataScienceQ 🚀
4
Interview question

What is the primary purpose of using np.frombuffer() in NumPy, and how does it handle memory views when dealing with structured arrays?

Answer:
The function np.frombuffer() allows creating a NumPy array from a buffer object, such as a bytes object or memoryview, without copying the data. It interprets the raw bytes according to a specified dtype. When used with structured arrays, it relies on the exact byte layout defined by the dtype, which can lead to unexpected behavior if the structure doesn't align with the actual memory representation, especially across different architectures or endianness. This makes it powerful but risky for low-level data manipulation.

tags: #numpy #python #memoryview #structuredarrays #frombuffer #lowlevel #datainterpretation

By: @DataScienceQ 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
2
In Python, NumPy is the cornerstone of scientific computing, offering high-performance multidimensional arrays and tools for working with them—critical for data science interviews and real-world applications! 📊

import numpy as np

# Array Creation - The foundation of NumPy
arr = np.array([1, 2, 3])
zeros = np.zeros((2, 3)) # 2x3 matrix of zeros
ones = np.ones((2, 2), dtype=int) # Integer matrix
arange = np.arange(0, 10, 2) # [0 2 4 6 8]
linspace = np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1. ]
print(linspace)


# Array Attributes - Master your data's structure
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix.shape) # Output: (2, 3)
print(matrix.ndim) # Output: 2
print(matrix.dtype) # Output: int64
print(matrix.size) # Output: 6


# Indexing & Slicing - Precision data access
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(data[1, 2]) # Output: 6 (row 1, col 2)
print(data[0:2, 1:3]) # Output: [[2 3], [5 6]]
print(data[:, -1]) # Output: [3 6 9] (last column)


# Reshaping Arrays - Transform dimensions effortlessly
flat = np.arange(6)
reshaped = flat.reshape(2, 3)
raveled = reshaped.ravel()
print(reshaped)
# Output: [[0 1 2], [3 4 5]]
print(raveled) # Output: [0 1 2 3 4 5]


# Stacking Arrays - Combine datasets vertically/horizontally
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.vstack((a, b))) # Vertical stack
# Output: [[1 2 3], [4 5 6]]
print(np.hstack((a, b))) # Horizontal stack
# Output: [1 2 3 4 5 6]


# Mathematical Operations - Vectorized calculations
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print(x + y) # Output: [5 7 9]
print(x * 2) # Output: [2 4 6]
print(np.dot(x, y)) # Output: 32 (1*4 + 2*5 + 3*6)


# Broadcasting Magic - Operate on mismatched shapes
matrix = np.array([[1, 2, 3], [4, 5, 6]])
scalar = 10
print(matrix + scalar)
# Output: [[11 12 13], [14 15 16]]


# Aggregation Functions - Statistical power in one line
values = np.array([1, 5, 3, 9, 7])
print(np.sum(values)) # Output: 25
print(np.mean(values)) # Output: 5.0
print(np.max(values)) # Output: 9
print(np.std(values)) # Output: 2.8284271247461903


# Boolean Masking - Filter data like a pro
temperatures = np.array([18, 25, 12, 30, 22])
hot_days = temperatures > 24
print(temperatures[hot_days]) # Output: [25 30]


# Random Number Generation - Simulate real-world data
print(np.random.rand(2, 2)) # Uniform distribution
print(np.random.randn(3)) # Normal distribution
print(np.random.randint(0, 10, (2, 3))) # Random integers


# Linear Algebra Essentials - Solve equations like a physicist
A = np.array([[3, 1], [1, 2]])
b = np.array([9, 8])
x = np.linalg.solve(A, b)
print(x) # Output: [2. 3.] (Solution to 3x+y=9 and x+2y=8)

# Matrix inverse and determinant
print(np.linalg.inv(A)) # Output: [[ 0.4 -0.2], [-0.2 0.6]]
print(np.linalg.det(A)) # Output: 5.0


# File Operations - Save/load your computational work
data = np.array([[1, 2], [3, 4]])
np.save('array.npy', data)
loaded = np.load('array.npy')
print(np.array_equal(data, loaded)) # Output: True


# Interview Power Move: Vectorization vs Loops
# 10x faster than native Python loops!
def square_sum(n):
arr = np.arange(n)
return np.sum(arr ** 2)

print(square_sum(5)) # Output: 30 (0²+1²+2²+3²+4²)


# Pro Tip: Memory-efficient data processing
# Process 1GB array without loading entire dataset
large_array = np.memmap('large_data.bin', dtype='float32', mode='r', shape=(1000000, 100))
print(large_array[0:5, 0:3]) # Process small slice


By: @DataScienceQ 🚀

#Python #NumPy #DataScience #CodingInterview #MachineLearning #ScientificComputing #DataAnalysis #Programming #TechJobs #DeveloperTips
🚀 NumPy Tip: Boolean Indexing (Masking) 🚀

Ever need to filter your arrays based on a condition? NumPy's Boolean Indexing, also known as masking, is your go-to! It allows you to select elements that satisfy a specific condition.

import numpy as np

Create a sample NumPy array

data = np.array([12, 5, 20, 8, 35, 15, 30])

Create a boolean mask: True where value is > 10, False otherwise

mask = data > 10
print("Boolean Mask:", mask)

Apply the mask to the array to filter elements

filtered_data = data[mask]
print("Filtered Data (values > 10):", filtered_data)

You can also combine the condition and indexing directly

even_numbers = data[data % 2 == 0]
print("Even Numbers:", even_numbers)

Explanation:
A boolean array (the mask) is created by applying a condition to your original array. When this mask is used for indexing, NumPy returns a new array containing only the elements where the mask was True. Simple, powerful, and efficient!

#NumPy #PythonTips #DataScience #ArrayMasking #Python #Programming

---
By: @DataScienceQ
🧠 NumPy Quiz: Array Shapes
Question: What will be the output of arr.shape for the NumPy array created by np.zeros((2, 3))?
import numpy as np
arr = np.zeros((2, 3))

A) (3, 2)
B) (2, 3)
C) 6
D) (2, 3, 0)
Correct answer: B
#NumPy #Python #DataScience #Array #Quiz

---
By: @DataScienceQ