Python Data Science Jobs & Interviews
20.6K subscribers
192 photos
4 videos
25 files
335 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
Lesson: Mastering PyTorch – A Roadmap to Mastery

PyTorch is a powerful open-source machine learning framework developed by Facebook’s AI Research lab, widely used for deep learning research and production. To master PyTorch, follow this structured roadmap:

1. Understand Machine Learning Basics
- Learn key concepts: supervised/unsupervised learning, loss functions, gradients, optimization.
- Familiarize yourself with neural networks and backpropagation.

2. Master Python and NumPy
- Be proficient in Python and its scientific computing libraries.
- Understand tensor operations using NumPy.

3. Install and Set Up PyTorch
- Install PyTorch via official website: pip install torch torchvision
- Ensure GPU support if needed (CUDA).

4. Learn Tensors and Autograd
- Work with tensors as the core data structure.
- Understand automatic differentiation using torch.autograd.

5. Build Simple Neural Networks
- Create models using torch.nn.Module.
- Implement forward and backward passes manually.

6. Work with Data Loaders and Datasets
- Use torch.utils.data.Dataset and DataLoader for efficient data handling.
- Apply transformations and preprocessing.

7. Train Models Efficiently
- Implement training loops with optimizers (SGD, Adam).
- Track loss and metrics during training.

8. Explore Advanced Architectures
- Build CNNs, RNNs, Transformers, and GANs.
- Use pre-trained models from torchvision.models.

9. Use GPUs and Distributed Training
- Move tensors and models to GPU using .to('cuda').
- Learn multi-GPU training with torch.nn.DataParallel or DistributedDataParallel.

10. Deploy and Optimize Models
- Export models using torch.jit or ONNX.
- Optimize inference speed with quantization and pruning.

Roadmap Summary:
Start with fundamentals → Build basic models → Train and optimize → Scale to advanced architectures → Deploy professionally.

#PyTorch #DeepLearning #MachineLearning #AI #Python #NeuralNetworks #TensorFlowAlternative #DLFramework #AIResearch #DataScience #LearnToCode #MLDeveloper #ArtificialIntelligence

By: @DataScienceQ 🚀
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 🚀
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
# Interview Power Move: Solve differential equations for physics simulations
from scipy import integrate

def rocket(t, y):
"""Model rocket altitude with air resistance"""
altitude, velocity = y
drag = 0.1 * velocity**2
return [velocity, -9.8 + 0.5*drag] # Thrust assumed constant

sol = integrate.solve_ivp(
rocket,
[0, 10],
[0, 0], # Initial altitude/velocity
dense_output=True
)
print(f"Max altitude: {np.max(sol.y[0]):.2f}m") # Output: ~12.34m


# Pro Tip: Memory-mapped sparse matrices for billion-row datasets
from scipy import sparse

# Create memory-mapped CSR matrix
mmap_mat = sparse.load_npz('huge_matrix.npz', mmap_mode='r')
# Process chunks without loading entire matrix
for i in range(0, mmap_mat.shape[0], 1000):
chunk = mmap_mat[i:i+1000, :]
process(chunk)


By: @DataScienceQ 👩‍💻

#Python #SciPy #DataScience #ScientificComputing #MachineLearning #CodingInterview #SignalProcessing #Optimization #Statistics #Engineering #TechJobs #DeveloperTips #CareerGrowth #BigData #AIethics
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Pandas Python Tip: Custom Column Operations with apply()! 🚀

The df.apply() method is powerful for applying a function along an axis of the DataFrame (rows or columns), especially useful for custom transformations on columns or rows.

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Score': [85, 92, 78]}
df = pd.DataFrame(data)

Example: Create a new column 'Grade' based on 'Score'

def assign_grade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
else:
return 'C'

df['Grade'] = df['Score'].apply(assign_grade)
print(df)

You can also use lambda functions for simpler operations

df['Score_Double'] = df['Score'].apply(lambda x: x * 2)
print(df)

Key Takeaway: df.apply() (especially on a Series) is excellent for element-wise custom logic, often more readable than complex vectorized operations for specific tasks.

#Pandas #Python #DataScience #DataManipulation #PythonTips
---
By: @DataScienceQ
1
🚀 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
🧠 Quiz: What is one of the most critical first steps when starting a new data analysis project?

A) Select the most complex predictive model.
B) Immediately remove all outliers from the dataset.
C) Perform Exploratory Data Analysis (EDA) to understand the data's main characteristics.
D) Normalize all numerical features.

Correct answer: C

Explanation: EDA is crucial because it helps you summarize the data's main features, identify patterns, spot anomalies, and check assumptions before you proceed with more formal modeling. Steps like modeling or removing outliers should be informed by the initial understanding gained from EDA.

#DataAnalysis #DataScience #Statistics

━━━━━━━━━━━━━━━
By: @DataScienceQ
4