■ Advanced Python Topics
Data Science & Machine Learning Libraries
Complete Guide with Hinglish Explanation
■ NumPy - Array ke saath kaam
■ Pandas - Data Analysis
■ Matplotlib - Graphs aur Charts
■ Data Visualization
■ PyTorch - Machine Learning
■ PySpark - Big Data
■■ Database Connection
Let's Learn Python ka Advanced! ■■
Module 1: NumPy - Array ke Saath Kaam Karna
NumPy Kya Hai?
NumPy ek library hai jo large arrays aur matrices ke saath bahut fast kaam karta hai. Iska matlab numerical python.
Agar aapko numbers ke saath badi calculations karni ho to NumPy best hai.
Array Kya Hota Hai?
Array bilkul list jaisa hota hai lekin bohot faster hai. List slow hai, array fast hai. NumPy arrays ko 'ndarray' bolte hain -
n-dimensional array.
Simple Example - Array Banana:
import numpy as np
arr = [Link]([1, 2, 3, 4, 5])
print(arr) # [1 2 3 4 5]
print(arr[0]) # 1 (pehla element)
print([Link]) # (5,) - array ki shape
2D Array (Matrix):
matrix = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix)
# Output:
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
Array Operations - Ganit:
arr = [Link]([1, 2, 3, 4])
print(arr * 2) # [2 4 6 8]
print(arr + 10) # [11 12 13 14]
print(arr * arr) # [1 4 9 16]
print([Link](arr)) # 10 (total)
print([Link](arr)) # 2.5 (average)
print([Link](arr)) # [1 1.41 1.73 2] (square root)
Useful Functions:
[Link](5) - 5 zeros banao [0 0 0 0 0]
[Link](5) - 5 ones banao [1 1 1 1 1]
[Link](0, 10) - 0 se 9 tak numbers [0 1 2 ... 9]
[Link](0, 10, 5) - 0 to 10 mein 5 equal parts
[Link](3, 3) - 3x3 random matrix
Real World Example - Student Marks:
marks = [Link]([85, 92, 78, 95, 88])
print("Total:", [Link](marks)) # Total marks
print("Average:", [Link](marks)) # Average marks
print("Highest:", [Link](marks)) # Sabse zyada
print("Lowest:", [Link](marks)) # Sabse kam
print("Standard Dev:", [Link](marks)) # Variation kitna hai
Module 2: Pandas - Data Analysis Ka Sultan
Pandas Kya Hai?
Pandas ek library hai jo spreadsheet (Excel jaisa) data ke saath kaam karta hai. Iska matlab Panel Data. Agar Excel
file ko Python mein open karna hai aur data ko clean aur analyze karna hai, to Pandas best hai.
DataFrame - Excel jaisa Table:
import pandas as pd
data = {'Naam': ['Raj', 'Priya', 'Amit'], 'Marks': [85, 92, 78], 'City': ['Delhi', 'Mumbai', 'Bangalore']}
df = [Link](data)
print(df)
# Output:
# Naam Marks City
# 0 Raj 85 Delhi
# 1 Priya 92 Mumbai
# 2 Amit 78 Bangalore
DataFrame ke Columns aur Rows Access Karna:
print(df['Naam']) # Naam column
print([Link][0]) # Pehli row
print([Link][1]) # Doosri row
print([Link](2)) # Pehli 2 rows
print([Link](1)) # Aakhri row
Basic Statistics:
print(df['Marks'].sum()) # Total
print(df['Marks'].mean()) # Average
print(df['Marks'].max()) # Maximum
print(df['Marks'].min()) # Minimum
print([Link]()) # Sab kuch summary
Excel File Padho aur Likho:
# CSV file padho
df = pd.read_csv('[Link]')
print(df)
# Excel file likho
df.to_excel('[Link]', index=False)
Data Filtering - Sirf Wahi Row Nikalo Jinhe Chahiye:
df_passed = df[df['Marks'] >= 80] # Sirf 80+ marks wale
print(df_passed)
New Column Add Karna:
df['Grade'] = df['Marks'].apply(lambda x: 'A' if x >= 90 else 'B' if x >= 80 else 'C')
print(df)
Sorting - Arrange Karna:
df_sorted = df.sort_values('Marks', ascending=False)
print(df_sorted) # Marks ke hisaab se high to low
Module 3: Matplotlib - Graphs Banao
Matplotlib Kya Hai?
Matplotlib ek library hai jo graphs, charts aur pictures banata hai. Agar aapke paas data hai aur aap usse visual
banana chahte ho, to Matplotlib use karo.
Simple Line Graph:
import [Link] as plt
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 35]
[Link](x, y)
[Link]('Time')
[Link]('Score')
[Link]('Score Over Time')
[Link]()
Bar Chart - Bars Banao:
fruits = ['Apple', 'Banana', 'Orange', 'Mango']
quantity = [10, 20, 15, 25]
[Link](fruits, quantity)
[Link]('Fruits')
[Link]('Quantity')
[Link]('Fruit Sales')
[Link]()
Pie Chart - Pie ke Slices:
labels = ['Delhi', 'Mumbai', 'Bangalore'
sizes = [30, 40, 30]
[Link](sizes, labels=labels, autopct='%1.1f%%')
[Link]('Population Distribution')
[Link]()
Scatter Plot - Points Bikhar Dena:
import numpy as np
x = [Link](50)
y = [Link](50)
[Link](x, y)
[Link]('X-axis')
[Link]('Y-axis')
[Link]('Scatter Plot')
[Link]()
Multiple Graphs Ek Sath:
fig, axes = [Link](1, 2)
axes[0].plot([1, 2, 3], [1, 4, 9])
axes[0].set_title('Graph 1')
axes[1].plot([1, 2, 3], [1, 2, 3])
axes[1].set_title('Graph 2')
[Link]()
Histogram - Distribution Dekho:
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]
[Link](data, bins=5)
[Link]('Value')
[Link]('Frequency')
[Link]('Distribution')
[Link]()
Module 4: Data Visualization - Data Ko Sundar Banao
Data Visualization Kya Hai?
Data visualization matlab numbers aur statistics ko pictures, graphs aur charts mein convert karna. Kyunki 1000
numbers padh padh ke samajh nahi aata, lekin ek graph dekh ke sab samajh aa jaata hai.
Kyun Important Hai?
- Numbers yaad nahi rehte, graphs yaad rehte hain
- Quick decisions lene mein madad milti hai
- Presentation acchi lagti hai
- Trends easily samajh aate hain
Seaborn - Advanced Matplotlib (Pretty Graphs):
import seaborn as sns
import pandas as pd
data = [Link]({'City': ['Delhi', 'Mumbai', 'Bangalore', 'Delhi', 'Mumbai'], 'Sales': [100, 150, 120, 110, 160]})
[Link](data=data, x='City', y='Sales')
[Link]()
Heatmap - Garam Thandi Dekho (Color Code):
import numpy as np
data = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
[Link](data, annot=True, cmap='YlOrRd')
[Link]()
# Red jyadatar = zyada value, Yellow = kam value
Box Plot - Outliers Dekho:
data = [1, 2, 3, 4, 5, 100] # 100 outlier hai
[Link](data)
[Link]()
Line Plot with Multiple Lines:
import pandas as pd
df = [Link]({'Month': [1, 2, 3, 4], 'Delhi': [20, 25, 30, 35], 'Mumbai': [25, 28, 32, 38]})
[Link](df['Month'], df['Delhi'], label='Delhi')
[Link](df['Month'], df['Mumbai'], label='Mumbai')
[Link]()
[Link]()
Violin Plot - Distribution Aur Outliers:
data = [[Link](0, 1, 100), [Link](1, 1, 100)]
[Link](data)
[Link]()
Best Practices:
- Sahi chart type choose karo (bar, line, pie, scatter)
- Clear titles aur labels lagao
- Colors meaningful use karo
- Grid lines add karo readability ke liye
- Legend zaroor lagao agar multiple items ho
Module 5: PyTorch - Machine Learning aur Deep Learning
PyTorch Kya Hai?
PyTorch ek library hai jo machine learning aur deep learning (AI) ke liye use hoti hai. Iska matlab Python Torch (ek
fast computation tool). Agar aap neural networks, deep learning models banana chahte ho to PyTorch bahut powerful
hai.
Tensors - NumPy Arrays ka Powerful Version:
import torch
t = [Link]([1, 2, 3, 4, 5])
print(t)
print([Link]) # Shape dekho
print([Link]) # Data type
2D Tensor (Matrix):
matrix = [Link]([[1, 2, 3], [4, 5, 6]])
print(matrix)
print([Link]) # (2, 3)
Tensor Operations:
t1 = [Link]([1, 2, 3])
t2 = [Link]([4, 5, 6])
print(t1 + t2) # [5, 7, 9]
print(t1 * t2) # [4, 10, 18]
print([Link](t1)) # 6
print([Link]([Link]())) # 2.0
GPU Par Run Karna (Fast):
t = [Link]([1, 2, 3])
if [Link].is_available():
t = [Link]() # GPU pe move
print(t)
Simple Neural Network:
import [Link] as nn
model = [Link](
[Link](10, 5), # 10 inputs to 5 hidden
[Link](), # Activation function
[Link](5, 2) # 5 hidden to 2 outputs
)
input_data = [Link](1, 10)
output = model(input_data)
print(output)
Training Simple Model:
import [Link] as optim
model = [Link](1, 1)
optimizer = [Link]([Link](), lr=0.01)
loss_fn = [Link]()
for epoch in range(100):
x = [Link]([[1.0], [2.0], [3.0]])
y = [Link]([[2.0], [4.0], [6.0]]) # y = 2*x
pred = model(x)
loss = loss_fn(pred, y)
optimizer.zero_grad()
[Link]()
[Link]()
print("Model trained!")
Autograd - Automatic Differentiation:
x = [Link](2.0, requires_grad=True)
y = x ** 2 + 3 * x + 5
[Link]()
print([Link]) # dy/dx at x=2
Module 6: PySpark - Big Data Ka Rajah
PySpark Kya Hai?
PySpark ek library hai jo Spark framework ko Python se use karta hai. Spark Big Data processing ke liye best hai.
Agar aapke paas bahut bada data hai (GB, TB, PB) aur aap usse fast process karna chahte ho, to Spark use karo.
Pandas slow ho jaata hai, lekin Spark lightning fast hai.
DataFrame - Spark mein:
from [Link] import SparkSession
spark = [Link]('MyApp').getOrCreate()
data = [('Raj', 85), ('Priya', 92), ('Amit', 78)]
df = [Link](data, ['Name', 'Marks'])
[Link]()
CSV File Padho:
df = [Link]('[Link]', header=True)
[Link](5) # Pehli 5 rows
Filtering - Sirf Wahi Data:
df_passed = [Link](df['Marks'] >= 80)
df_passed.show()
Group By - Category Mein Divide Karna:
from [Link] import avg
df_grouped = [Link]('City').agg(avg('Marks'))
df_grouped.show()
SQL Query - Like Normal Database:
[Link]('students')
result = [Link]('SELECT * FROM students WHERE Marks > 80')
[Link]()
Data Transformation:
df_new = [Link]('Name', 'Marks').filter(df['Marks'] > 70)
df_new.show()
Save to File:
[Link]('output_folder', header=True)
[Link]('[Link]')
Why Spark Fast Hai?
- Multiple machines par parallel processing
- In-memory computation
- Lazy evaluation (jab zaroor ho tab execute)
- Distributed computing
Module 7: Database Connection - Data Store Karna
Database Kya Hai?
Database ek organized data storage system hai. Jaise Excel mein data hota hai, database mein bhi data hota hai
lekin zyada powerful aur secure hota hai. MySQL, PostgreSQL, SQLite popular databases hain.
SQLite - Sabse Aasan (File Based):
import sqlite3
conn = [Link]('[Link]')
cursor = [Link]()
# Table banao
[Link]('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY, name TEXT, marks INTEGER)''')
[Link]()
# Data insert karo
[Link]("INSERT INTO students VALUES (1, 'Raj', 85)")
[Link]()
# Data padho
[Link]("SELECT * FROM students")
data = [Link]()
print(data)
[Link]()
MySQL Connection - Production mein common:
import [Link]
conn = [Link](
host='localhost',
user='root',
password='your_password',
database='mydatabase'
)
cursor = [Link]()
[Link]("SELECT * FROM students")
data = [Link]()
for row in data:
print(row)
[Link]()
Pandas aur Database Milao:
import pandas as pd
import sqlite3
conn = [Link]('[Link]')
df = pd.read_sql_query("SELECT * FROM students", conn)
print(df)
[Link]()
Data Insert Using Pandas:
df.to_sql('students', conn, if_exists='append', index=False)
PostgreSQL - Advanced:
import psycopg2
conn = [Link](database='mydatabase', user='postgres', password='password', host='[Link]')
cursor = [Link]()
[Link]("SELECT * FROM students")
data = [Link]()
print(data)
[Link]()
MongoDB - NoSQL (JSON Style):
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
db = client['mydatabase']
collection = db['students']
# Insert
collection.insert_one({'name': 'Raj', 'marks': 85})
# Find
data = collection.find_one({'name': 'Raj'})
print(data)
Module 8: Arrays - Detailed Understanding
Array vs List - Kya Farak Hai?
List: Python ke default data structure, slow hai, heterogeneous (alag alag types)
Array: NumPy arrays, fast hai, homogeneous (same type)
1D Array (1 line):
arr_1d = [Link]([1, 2, 3, 4, 5])
print(arr_1d.shape) # (5,) - 5 elements
print(arr_1d.ndim) # 1 - 1 dimension
2D Array (Rows aur Columns):
arr_2d = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr_2d.shape) # (3, 3) - 3 rows, 3 columns
print(arr_2d.ndim) # 2 - 2 dimensions
print(arr_2d[0][1]) # 2 (pehli row, doosra column)
3D Array (3 layers):
arr_3d = [Link]([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(arr_3d.shape) # (2, 2, 2)
print(arr_3d[0][1][0]) # 3
Array Slicing (Piece Nikalna):
arr = [Link]([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(arr[2:5]) # [2 3 4] (index 2 to 4)
print(arr[:3]) # [0 1 2] (shuru se 3)
print(arr[5:]) # [5 6 7 8 9] (5 se aakhir)
print(arr[::2]) # [0 2 4 6 8] (every 2nd)
print(arr[::-1]) # [9 8 7 6 5 4 3 2 1 0] (ulta)
Array Reshaping - Shape Badalna:
arr = [Link]([1, 2, 3, 4, 5, 6])
reshaped = [Link](2, 3) # 2 rows, 3 columns
print(reshaped)
# [[1 2 3]
# [4 5 6]]
Stacking - Arrays Ko Jodna:
a = [Link]([1, 2, 3])
b = [Link]([4, 5, 6])
combined = [Link]([a, b])
print(combined) # [1 2 3 4 5 6]
Broadcasting - Size Alag Par Sath Kaam:
a = [Link]([[1, 2, 3], [4, 5, 6]])
b = [Link]([10, 20, 30])
print(a + b)
# [[11 22 33]
# [14 25 36]]
Summary - Kya Sikha
■ NumPy - Fast arrays aur mathematical operations
■ Pandas - Data analysis aur manipulation (Excel jaisa)
■ Matplotlib - Graphs, charts, visualization
■ Data Visualization - Data ko pictorial form mein
■ PyTorch - Deep learning aur AI models
■ PySpark - Big data processing
■ Database Connection - Data store aur retrieve
■ Arrays - Multidimensional data structures
Important Tips ■
1. NumPy vs Pandas: Numerical work ke liye NumPy, tabular data ke liye Pandas
2. Matplotlib: Data ko visual form mein dekho, insights mile jaldi
3. PyTorch: GPU use karo agar available ho (fast processing)
4. PySpark: Big data ke liye, local machine mein Pandas use karo
5. Database: SQLite learning ke liye, MySQL production ke liye
6. Arrays: Broadcasting samajh lo, bohot powerful feature hai
7. Practice: Har library ko khud code karke seekho
Workflow - Kaunsa Kab Use Kare ■
Small Data (< 1 GB):
NumPy → Pandas → Matplotlib → Analysis Complete
Big Data (> 1 GB):
PySpark → Pandas (after processing) → Matplotlib
Machine Learning:
NumPy/Pandas → PyTorch → Model Training → Evaluation
Web Application:
Database Connection → Pandas (data processing) → Matplotlib (visualization)
Happy Coding! ■■
Data Science seekhna asaan hai, bas practice karte raho!