🎯 Mục tiêu bài học
Sau bài học này, bạn sẽ:
✅ Hiểu Python là gì và tại sao Python là lựa chọn #1 cho Data Science
✅ Cài đặt thành công môi trường Python (Anaconda, Jupyter, VS Code)
✅ Nắm vững cú pháp cơ bản: Variables, Data Types, Operators
✅ Thành thạo String operations và formatting
Thời gian: 3 giờ | Độ khó: Beginner | Yêu cầu: Không cần kiến thức lập trình trước
📖 Bảng Thuật Ngữ Quan Trọng
| Thuật ngữ | Tiếng Việt | Giải thích đơn giản |
|---|---|---|
| Variable | Biến | Vùng nhớ lưu trữ dữ liệu, đặt tên để sử dụng lại |
| Data Type | Kiểu dữ liệu | Loại dữ liệu mà biến chứa (số, chuỗi, boolean...) |
| Operator | Toán tử | Ký hiệu thực hiện phép toán (+, -, *, /, ==...) |
| String | Chuỗi ký tự | Dữ liệu dạng văn bản, đặt trong dấu "" hoặc '' |
| IDE | Môi trường phát triển | Phần mềm viết code (VS Code, Jupyter, PyCharm) |
| Interpreter | Trình thông dịch | Chương trình đọc và chạy code Python từng dòng |
| PEP 8 | Quy chuẩn code Python | Bộ quy tắc giúp code Python đẹp và thống nhất |
| f-string | Chuỗi định dạng | Cách chèn biến vào chuỗi: f"Hello, {name}" |
| Type Conversion | Chuyển đổi kiểu | Đổi kiểu dữ liệu: int("42") → 42 |
| Anaconda | Bộ công cụ Python | Trọn bộ Python + thư viện Data Science đã cài sẵn |
Checkpoint
Bạn đã đọc qua bảng thuật ngữ chưa? Hãy quay lại đây khi gặp thuật ngữ lạ trong bài!
🐍 Python là gì và tại sao cho Data Science?
Python là ngôn ngữ lập trình bậc cao, được tạo bởi Guido van Rossum năm 1991. Python nổi tiếng với cú pháp đơn giản, dễ đọc và dễ học.
Đặc điểm nổi bật
| Đặc điểm | Mô tả |
|---|---|
| Cú pháp rõ ràng | Code Python đọc gần như tiếng Anh |
| Đa mục đích | Web, Data Science, AI, Automation |
| Thông dịch | Không cần compile, chạy trực tiếp |
| Động (Dynamic) | Không cần khai báo kiểu dữ liệu |
| Cộng đồng lớn | Hàng triệu developers, tài liệu phong phú |
1# Python Hello World - Đơn giản nhất!2print("Hello, Data Science!")34# So sánh với Java (cần nhiều code hơn)5# public class HelloWorld {6# public static void main(String[] args) {7# System.out.println("Hello, Data Science!");8# }9# }Hệ sinh thái thư viện Python
Hệ sinh thái Python Data Science
| Thư viện | Mục đích | Ví dụ sử dụng |
|---|---|---|
| Pandas | Xử lý dữ liệu bảng | Đọc CSV, filter, groupby |
| NumPy | Tính toán số học | Arrays, matrix operations |
| Matplotlib | Vẽ biểu đồ cơ bản | Line, bar, scatter plots |
| Seaborn | Statistical visualization | Heatmap, distribution plots |
| Plotly | Interactive charts | Dashboard, web charts |
| Scikit-learn | Machine Learning | Classification, regression |
So sánh Python với các ngôn ngữ khác
| Tiêu chí | Python | R | SQL | Excel |
|---|---|---|---|---|
| Học dễ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Data manipulation | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Visualization | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
| Machine Learning | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐ | ⭐ |
| Đa mục đích | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ | ⭐⭐ |
Các công ty sử dụng Python
Google (YouTube, Search), Netflix (Recommendation), Spotify (Music AI), Instagram (Backend), Uber (Analytics), NASA (Scientific computing)
Career Path với Python
Checkpoint
Python có 5 đặc điểm nổi bật nào? Bạn có thể kể tên 3 thư viện Python phổ biến cho Data Science không?
🛠️ Cài đặt môi trường Python
Các cách cài đặt
| Phương pháp | Ưu điểm | Nhược điểm | Phù hợp với |
|---|---|---|---|
| Python.org | Nhẹ, cơ bản | Phải cài thư viện thủ công | Beginners |
| Anaconda | Đầy đủ thư viện | Dung lượng lớn (~3GB) | Data Scientists |
| Miniconda | Nhẹ, linh hoạt | Cần cài thêm packages | Experienced users |
| Google Colab | Không cần cài | Cần internet | Quick experiments |
Khuyến nghị: Cài Anaconda nếu bạn có máy tính cá nhân, hoặc dùng Google Colab nếu muốn bắt đầu ngay không cần cài đặt.
Cài đặt Anaconda
Bước 1: Tải từ anaconda.com/download — chọn đúng OS (Windows/macOS/Linux)
Bước 2: Cài đặt theo hướng dẫn
1# macOS/Linux2chmod +x Anaconda3-xxx.sh3./Anaconda3-xxx.shBước 3: Kiểm tra
1conda --version # conda 23.x.x2python --version # Python 3.11.xQuản lý môi trường với Conda
1# Tạo môi trường mới2conda create -n datascience python=3.113 4# Kích hoạt5conda activate datascience6 7# Cài thư viện Data Science8conda install pandas numpy matplotlib seaborn scikit-learn jupyter9 10# Export môi trường11conda env export > environment.yml12 13# Các lệnh hay dùng14conda env list # Danh sách môi trường15conda list # Packages đã cài16conda update pandas # Cập nhật package17conda env remove -n datascience # Xóa môi trườngJupyter Notebook
Jupyter Notebook là công cụ không thể thiếu cho Data Science — cho phép viết code, xem kết quả, và ghi chú trong cùng một file.
1# Chạy Jupyter2jupyter notebook3 4# Hoặc JupyterLab (giao diện mới hơn)5jupyter labShortcuts quan trọng:
| Shortcut | Chức năng |
|---|---|
Shift + Enter | Chạy cell và di chuyển xuống |
Ctrl + Enter | Chạy cell tại chỗ |
A / B | Thêm cell phía trên / dưới |
DD | Xóa cell |
M / Y | Chuyển Markdown / Code |
Magic Commands:
1%time df = pd.read_csv('large_file.csv') # Đo thời gian2%timeit df['col'].sum() # Đo thời gian trung bình3%matplotlib inline # Hiển thị chart inline4%whos # Xem tất cả variablesVS Code cho Python
- Tải từ code.visualstudio.com
- Cài Extensions: Python + Pylance + Jupyter (Microsoft)
- Chọn Python Interpreter:
Ctrl+Shift+P→ "Python: Select Interpreter"
Google Colab (Không cần cài đặt)
Vào colab.research.google.com — đã cài sẵn Pandas, NumPy, Matplotlib, TensorFlow, PyTorch.
1# Mount Google Drive2from google.colab import drive3drive.mount('/content/drive')45# Đọc file từ Drive6import pandas as pd7df = pd.read_csv('/content/drive/MyDrive/data.csv')89# Cài thêm thư viện10!pip install polars plotlyKiểm tra môi trường
1import sys2print(f"Python version: {sys.version}")34libraries = ['pandas', 'numpy', 'matplotlib', 'seaborn', 'sklearn']5for lib in libraries:6 try:7 module = __import__(lib)8 version = getattr(module, '__version__', 'unknown')9 print(f"✅ {lib}: {version}")10 except ImportError:11 print(f"❌ {lib}: NOT INSTALLED")Checkpoint
Bạn đã cài đặt Python thành công chưa? Hãy chạy python --version và script kiểm tra phía trên để xác nhận!
📦 Variables và Data Types
Biến (Variable) là gì? Hãy tưởng tượng biến như một chiếc hộp có dán nhãn — bạn bỏ dữ liệu vào hộp và dán tên để dễ tìm lại sau.
Tại sao cần biến? Khi phân tích dữ liệu, bạn cần lưu trữ kết quả: tổng doanh thu, số khách hàng, tỷ lệ chuyển đổi... Biến giúp bạn đặt tên có ý nghĩa và sử dụng lại dữ liệu nhiều lần mà không cần tính lại.
Ví dụ thực tế: Thay vì nhớ con số 1500000, bạn viết doanh_thu_thang_1 = 1_500_000 — code dễ đọc và dễ bảo trì hơn rất nhiều!
Khai báo biến
Python không cần khai báo kiểu dữ liệu — tự động suy luận (Dynamic Typing)!
1# Khai báo biến đơn giản2name = "MinAI" # String3age = 25 # Integer4price = 19.99 # Float5is_active = True # Boolean67# Multiple assignment8x, y, z = 1, 2, 39a = b = c = 01011# Swap values (Pythonic way!)12x, y = y, xQuy tắc đặt tên biến
1# ✅ Hợp lệ2my_variable = 13_private = 545# ❌ Không hợp lệ62variable = 1 # Bắt đầu bằng số7my-variable = 2 # Có dấu gạch ngang8my variable = 3 # Có khoảng trắngConvention trong Python (PEP 8)
| Loại | Convention | Ví dụ |
|---|---|---|
| Variable | snake_case | user_name |
| Constant | UPPER_SNAKE | MAX_SIZE |
| Function | snake_case | calculate_total() |
| Class | PascalCase | DataProcessor |
| Private | _prefix | _internal_var |
Quan trọng: Luôn tuân theo PEP 8 convention. Code Python chuẩn dùng snake_case cho biến và function, PascalCase cho class.
Kiểu dữ liệu cơ bản (Primitive Types)
1# Integer - Số nguyên2count = 423big_num = 1_000_000 # Underscore cho dễ đọc45# Float - Số thực6pi = 3.141597scientific = 1.5e-10 # 1.5 × 10⁻¹⁰89# String - Chuỗi10name = "Python"11multiline = """12This is a13multiline string14"""1516# Boolean17is_valid = True18is_empty = False1920# None - Giá trị null21result = NoneKhi nào dùng kiểu nào?
| Kiểu | Dùng khi | Ví dụ trong Data Science |
|---|---|---|
| int | Đếm số lượng, chỉ số | Số khách hàng, số đơn hàng, tuổi |
| float | Giá trị đo lường, tỷ lệ | Doanh thu, chiều cao, tỷ lệ chuyển đổi |
| str | Tên, mô tả, nhãn | Tên sản phẩm, địa chỉ, email |
| bool | Trạng thái có/không | Đã thanh toán?, VIP?, còn hàng? |
| None | Giá trị chưa có / thiếu | Dữ liệu missing, kết quả chưa tính |
Kiểm tra và chuyển đổi kiểu dữ liệu
Tại sao cần chuyển đổi kiểu? Dữ liệu thực tế thường "lộn xộn" — cột tuổi có thể là "25" (string) thay vì 25 (int), cột giá có ký tự "$". Bạn cần convert về đúng kiểu để tính toán được.
1# Kiểm tra kiểu2x = 423print(type(x)) # <class 'int'>4print(isinstance(x, int)) # True5print(isinstance(x, (int, float))) # True67# Type Conversion8num_str = "42"9num_int = int(num_str) # 4210num_float = float(num_str) # 42.011s = str(100) # "100"1213# Boolean conversion14bool(0) # False | bool(1) # True15bool("") # False | bool("text") # True16bool([]) # False | bool([1,2]) # TrueMẹo: Trong Python, các giá trị "rỗng" (0, "", [], None) được coi là False. Các giá trị khác là True. Rất hữu ích khi kiểm tra dữ liệu!
Checkpoint
Hãy thử tạo 4 biến với 4 kiểu dữ liệu khác nhau (int, float, str, bool) và dùng type() kiểm tra từng biến.
➕ Operators (Toán tử)
Toán tử (Operator) là gì? Toán tử là ký hiệu đặc biệt dùng để thực hiện phép tính trên dữ liệu — giống +, -, ×, ÷ bạn đã biết, nhưng Python có thêm nhiều toán tử mạnh mẽ hơn.
Tại sao cần học toán tử? Mọi phân tích dữ liệu đều cần tính toán: tính tổng doanh thu (+), so sánh hiệu suất (>), lọc khách hàng theo nhiều điều kiện (and, or), kiểm tra số chẵn/lẻ (%). Toán tử là nền tảng của MỌI thao tác trong Data Science.
Arithmetic Operators (Toán tử số học)
Các phép tính cơ bản — chú ý //, %, ** là những toán tử đặc biệt rất hữu ích:
1a, b = 10, 323print(a + b) # 13 - Cộng4print(a - b) # 7 - Trừ5print(a * b) # 30 - Nhân6print(a / b) # 3.333... - Chia (float)7print(a // b) # 3 - Chia lấy phần nguyên8print(a % b) # 1 - Chia lấy dư (modulo)9print(a ** b) # 1000 - Lũy thừa (10³)Ứng dụng thực tế toán tử số học:
//(chia lấy nguyên): Phân trang —total_rows // page_size= số trang%(chia lấy dư): Kiểm tra chẵn/lẻ —n % 2 == 0→ số chẵn; năm nhuậnyear % 4 == 0**(lũy thừa): Tính lãi kép —goc * (1 + lai_suat) ** so_nam
Comparison Operators (Toán tử so sánh)
So sánh là nền tảng của việc lọc dữ liệu. Khi viết df[df['age'] > 30] trong Pandas, Python dùng toán tử > để so sánh từng giá trị trong cột.
1x, y = 5, 1023print(x == y) # False - Bằng4print(x != y) # True - Khác5print(x < y) # True - Nhỏ hơn6print(x <= y) # True - Nhỏ hơn hoặc bằng7print(x > y) # False - Lớn hơn89# Chained comparison (Pythonic!)10age = 2511print(18 <= age < 65) # TrueLogical Operators (Toán tử logic)
Toán tử logic giúp kết hợp nhiều điều kiện. Ví dụ thực tế: lọc khách hàng trên 30 tuổi VÀ chi tiêu trên 1 triệu → Trong Pandas: df[(df['age'] > 30) & (df['spending'] > 1_000_000)].
1a, b = True, False23print(a and b) # False4print(a or b) # True5print(not a) # False67# Short-circuit: giá trị "falsy" → lấy default8name = ""9display = name or "Anonymous" # "Anonymous"Assignment Operators (Toán tử gán)
Toán tử gán giúp cập nhật giá trị nhanh — ví dụ: mỗi đơn hàng mới, total += order_value tự động cộng dồn doanh thu.
1x = 102x += 5 # x = x + 5 → 153x -= 3 # x = x - 3 → 124x *= 2 # x = x * 2 → 245x /= 4 # x = x / 4 → 6.06x //= 2 # x = x // 2 → 3.07x **= 2 # x = x ** 2 → 9.0Lưu ý: // (floor division) luôn làm tròn xuống: 7 // 2 = 3, -7 // 2 = -4. Còn % (modulo) rất hay dùng để kiểm tra chẵn/lẻ: x % 2 == 0 → chẵn.
Checkpoint
Tính giá trị: (10 + 5) * 2 // 3 ** 2 = ? Thử chạy Python kiểm tra đáp án!
🔤 Strings (Chuỗi ký tự)
String (chuỗi) là gì? String là dữ liệu dạng văn bản — tên khách hàng, địa chỉ email, mô tả sản phẩm, bình luận... Trong Data Science, phần lớn dữ liệu thực tế chứa text, nên thao tác với string là kỹ năng không thể thiếu.
Ứng dụng thực tế: Khi làm Data Cleaning, bạn thường phải: xóa khoảng trắng thừa (strip()), chuẩn hóa chữ hoa/thường (lower()), tách họ tên (split()), tìm pattern (find()), thay thế giá trị (replace()). Tất cả đều là string operations!
String Operations
1s = "Python Data Science"23# Indexing (0-based)4print(s[0]) # 'P'5print(s[-1]) # 'e' (từ cuối)67# Slicing [start:end:step]8print(s[0:6]) # 'Python'9print(s[7:]) # 'Data Science'10print(s[::-1]) # Đảo ngược chuỗi1112# Length13print(len(s)) # 19String Methods
1text = " Hello World "23# Case methods4text.lower() # " hello world "5text.upper() # " HELLO WORLD "6text.title() # " Hello World "78# Whitespace9text.strip() # "Hello World"10text.lstrip() # "Hello World "11text.rstrip() # " Hello World"1213# Find & Replace14text.find("World") # 8 (index)15text.replace("World", "Python") # " Hello Python "1617# Split & Join18"a,b,c".split(",") # ['a', 'b', 'c']19"-".join(['a','b','c']) # "a-b-c"2021# Check methods22"123".isdigit() # True23"abc".isalpha() # True24"abc123".isalnum() # TrueString Formatting
f-string (Python 3.6+) là cách formatting được khuyến nghị nhất — ngắn gọn, dễ đọc, nhanh nhất.
1name = "MinAI"2price = 19.993quantity = 345# f-string — Khuyến nghị!6print(f"Hello, {name}!")7print(f"Total: ${price * quantity:.2f}")89# Format specifiers10num = 1234.567811print(f"{num:.2f}") # 1234.57 (2 decimals)12print(f"{num:,.2f}") # 1,234.57 (with comma separator)13print(f"{num:>10.2f}") # ' 1234.57' (right align, width 10)14print(f"{num:<10.2f}") # '1234.57 ' (left align)1516# Percentage17ratio = 0.75618print(f"{ratio:.1%}") # 75.6%1920# .format() method (cách cũ hơn)21print("Hello, {}!".format(name))22print("{0} costs ${1:.2f}".format("Item", 9.99))Checkpoint
Cho s = "Python Data Science", hãy viết code: (1) lấy từ "Data", (2) đổi thành chữ hoa, (3) thay "Data" bằng "Machine Learning".
💡 Ví dụ thực tế: Phân tích dữ liệu bán hàng
Kết hợp tất cả kiến thức đã học trong một ví dụ thực tế:
1import pandas as pd2import matplotlib.pyplot as plt34# 1. Đọc dữ liệu5df = pd.read_csv('sales.csv')67# 2. Xem tổng quan (dùng f-string formatting)8print(f"Số dòng: {len(df)}")9print(f"Tổng doanh thu: ${df['revenue'].sum():,.2f}")1011# 3. Phân tích theo tháng12monthly_sales = df.groupby('month')['revenue'].sum()1314# 4. Vẽ biểu đồ15plt.figure(figsize=(10, 6))16monthly_sales.plot(kind='bar', color='steelblue')17plt.title('Doanh thu theo tháng')18plt.xlabel('Tháng')19plt.ylabel('Doanh thu ($)')20plt.tight_layout()21plt.show()Đừng lo nếu chưa hiểu hết code Pandas và Matplotlib — bạn sẽ học chi tiết ở các bài sau! Mục đích ở đây là thấy được sức mạnh của Python trong phân tích dữ liệu.
Checkpoint
Bạn có nhận ra các khái niệm đã học trong ví dụ này không? (variables, f-string formatting, method calls)
📝 Tổng Kết
Câu hỏi tự kiểm tra
- Python thuộc loại ngôn ngữ biên dịch (compiled) hay thông dịch (interpreted)? Điều này ảnh hưởng gì đến cách chạy code?
- Sự khác biệt giữa toán tử
==và=trong Python là gì? - Cho biến
x = "42", làm thế nào để chuyển nó thành số nguyên và cộng thêm 8? - f-string trong Python là gì? Viết một ví dụ sử dụng f-string để hiển thị giá trị biến với 2 chữ số thập phân.
✅ Những điều bạn đã học được
- 🐍 Python là gì — ngôn ngữ #1 cho Data Science với hệ sinh thái thư viện phong phú
- 🛠️ Cài đặt môi trường — Anaconda, Jupyter Notebook, VS Code, Google Colab
- 📦 Variables & Data Types — int, float, str, bool, None; khai báo và chuyển đổi kiểu
- ➕ Operators — Arithmetic, Comparison, Logical, Assignment
- 🔤 Strings — Indexing, slicing, methods, f-string formatting
Bài tập tự luyện
- Tạo 5 biến với 5 kiểu dữ liệu khác nhau, in ra
type()của mỗi biến - Viết biểu thức tính BMI:
weight / (height ** 2)vớiweight = 70,height = 1.75 - Cho chuỗi
s = "data science is amazing", viết code: chuyển Title Case, thay "amazing" bằng "powerful", tách thành list - Sử dụng f-string in ra bảng giá:
"Sản phẩm A: 1,234,567.89 VND"
Bài tiếp theo: Python Cơ Bản Phần 2 — Control Flow, Collections, Functions và Error Handling!
