Loading...

Go Back

Next page
Go Back Course Outline

Python Full Course


Libraries and Frameworks in Python

Comprehensive Guide to Python Libraries and Frameworks

1. NumPy (Numerical Python)

What is NumPy?

NumPy is the foundational library for numerical computing in Python. It provides:

  • N-dimensional arrays (ndarray) for efficient storage and operations
  • Mathematical functions (linear algebra, statistics, trigonometry)
  • Broadcasting for vectorized operations (avoiding loops)

Creating Arrays

                        import numpy as np
                        
                        # 1D array
                        arr1 = np.array([1, 2, 3])
                        
                        # 2D array (matrix)
                        arr2 = np.array([[1, 2], [3, 4]])
                        
                        # Special arrays
                        zeros = np.zeros((3, 3))  # 3x3 matrix of zeros
                        ones = np.ones((2, 2))    # 2x2 matrix of ones
                        range_arr = np.arange(0, 10, 2)  # [0, 2, 4, 6, 8]
                        linspace = np.linspace(0, 1, 5)  # 5 evenly spaced numbers between 0 and 1
                        
                        print("1D Array:", arr1)
                        print("2D Array:\n", arr2)
                        print("Zeros:\n", zeros)
                        print("Linspace:", linspace)
1D Array: [1 2 3] 2D Array: [[1 2] [3 4]] Zeros: [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]] Linspace: [0. 0.25 0.5 0.75 1. ]

Array Operations (Vectorization & Broadcasting)

                        a = np.array([1, 2, 3])
                        b = np.array([4, 5, 6])
                        
                        # Element-wise operations
                        print("Addition:", a + b)  # [5, 7, 9]
                        print("Multiplication:", a * b)  # [4, 10, 18]
                        
                        # Broadcasting (applying operations to mismatched shapes)
                        print("Array + Scalar:", a + 5)  # [6, 7, 8]
Addition: [5 7 9] Multiplication: [ 4 10 18] Array + Scalar: [6 7 8]
Explanation:
- Vectorization avoids loops (faster computation)
- Broadcasting allows operations between arrays of different shapes


Mathematical & Linear Algebra Functions

                        # Trigonometry
                        angles = np.array([0, 30, 45, 60, 90]) * np.pi / 180
                        print("Sine:", np.sin(angles))
                        
                        # Statistics
                        data = np.array([1, 2, 3, 4, 5])
                        print("Mean:", np.mean(data))
                        print("Standard Deviation:", np.std(data))
                        
                        # Matrix operations
                        A = np.array([[1, 2], [3, 4]])
                        B = np.array([[5, 6], [7, 8]])
                        print("Matrix Multiplication:\n", np.matmul(A, B))
                        print("Inverse of A:\n", np.linalg.inv(A))
Sine: [0. 0.5 0.707 0.866 1. ] Mean: 3.0 Standard Deviation: 1.414 Matrix Multiplication: [[19 22] [43 50]] Inverse of A: [[-2. 1. ] [ 1.5 -0.5]]

2. Pandas (Data Analysis & Manipulation)

What is Pandas?

Pandas provides DataFrames (tables) and Series (columns) for:

  • Data cleaning (handling missing values)
  • Data manipulation (filtering, grouping, merging)
  • Statistical analysis (mean, median, correlation)

Creating DataFrames & Series

                        import pandas as pd
                        
                        # Series (1D array with labels)
                        series = pd.Series([10, 20, 30], index=["A", "B", "C"])
                        
                        # DataFrame (2D table)
                        data = {"Name": ["Alice", "Bob"], "Age": [25, 30]}
                        df = pd.DataFrame(data)
                        
                        print("Series:\n", series)
                        print("DataFrame:\n", df)
Series: A 10 B 20 C 30 dtype: int64 DataFrame: Name Age 0 Alice 25 1 Bob 30

Data Manipulation (Filtering, Grouping, Aggregation)

                        # Filtering
                        print("Age > 25:\n", df[df["Age"] > 25])
                        
                        # Grouping & Aggregation
                        sales = pd.DataFrame({
                            "Region": ["East", "West", "East", "West"],
                            "Sales": [200, 300, 150, 400]
                        })
                        print("Average Sales by Region:\n", sales.groupby("Region").mean())
Age > 25: Name Age 1 Bob 30 Average Sales by Region: Sales Region East 175 West 350

Handling Missing Data

                        df = pd.DataFrame({"A": [1, None, 3], "B": [4, 5, None]})
                        print("Original:\n", df)
                        print("Filled NA:\n", df.fillna(0))  # Replace missing values with 0
Original: A B 0 1.0 4.0 1 NaN 5.0 2 3.0 NaN Filled NA: A B 0 1.0 4.0 1 0.0 5.0 2 3.0 0.0

3. Matplotlib & Seaborn (Data Visualization)

What are Matplotlib & Seaborn?

  • Matplotlib: Basic plotting (line, bar, scatter plots)
  • Seaborn: High-level statistical visualizations (violin plots, heatmaps)

Line & Bar Plots (Matplotlib)

                        import matplotlib.pyplot as plt
                        
                        x = [1, 2, 3, 4]
                        y = [10, 20, 15, 25]
                        
                        plt.plot(x, y, label="Line Plot")
                        plt.bar(x, y, label="Bar Plot")
                        plt.xlabel("X-axis")
                        plt.ylabel("Y-axis")
                        plt.legend()
                        plt.show()
Output: A combined line and bar chart appears

Seaborn Statistical Plots

                        import seaborn as sns
                        
                        tips = sns.load_dataset("tips")
                        sns.boxplot(x="day", y="total_bill", data=tips)
                        plt.title("Bill Distribution by Day")
                        plt.show()
Output: A boxplot showing bill amounts across days


4. Requests (HTTP Requests & Web Scraping)

What is the Requests Library?

  • Used for HTTP requests (GET, POST, API calls)
  • Helps in web scraping (extracting data from websites)

GET & POST Requests

                        import requests
                        
                        # GET request
                        response = requests.get("https://api.github.com")
                        print("Status Code:", response.status_code)
                        print("JSON Data:", response.json())
                        
                        # POST request
                        data = {"key": "value"}
                        response = requests.post("https://httpbin.org/post", data=data)
                        print("POST Response:", response.json())
Status Code: 200 JSON Data: {'current_user_url': 'https://api.github.com/user', ...} POST Response: {'args': {}, 'data': '', 'form': {'key': 'value'}, ...}

5. Flask & Django (Web Development)

Flask (Microframework)

                        from flask import Flask
                        
                        app = Flask(__name__)
                        
                        @app.route("/")
                        def home():
                            return "Hello, World!"
                        
                        if __name__ == "__main__":
                            app.run(debug=True)
Explanation:
- Runs a local web server (http://127.0.0.1:5000)
- Returns "Hello, World!" at the root URL

Django (Full-stack Framework)

  • Used for larger web apps (admin panel, authentication, ORM)
  • Requires django-admin startproject to create a project

6. SQL & Database Interactions

SQLite (Lightweight Database)

                        import sqlite3
                        
                        conn = sqlite3.connect("example.db")
                        cursor = conn.cursor()
                        
                        # Create table
                        cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER, name TEXT)")
                        
                        # Insert data
                        cursor.execute("INSERT INTO users VALUES (1, 'Alice')")
                        
                        # Query data
                        cursor.execute("SELECT * FROM users")
                        print(cursor.fetchall())  # [(1, 'Alice')]
                        
                        conn.commit()
                        conn.close()
Explanation:
- Creates a SQLite database (example.db)
- Inserts and retrieves data using SQL queries

This guide covered:

  • NumPy (numerical computing)
  • Pandas (data analysis)
  • Matplotlib/Seaborn (visualization)
  • Requests (HTTP/web scraping)
  • Flask/Django (web development)
  • SQL/Databases (data storage)

Each library serves a specific purpose in Python development, from data science to web apps. 🚀

Go Back

Next page