Học bằng cách đọc theo thứ tự

math và statistics — Tính toán đơn giá trị và tổng hợp dữ liệu

Học module math và statistics của Python từ căn bản. Bao quát tính toán đơn giá trị với math.sqrt / pi / floor / ceil / log, tổng hợp dữ liệu với statistics.mean / median / mode / stdev, và cách hai module phân chia vai trò — kèm bài tập thực hành chạy được.

Bài này tập trung vào các module số của Python cho trường hợp thường gặp khi `float` thông thường là đủ. math xử lý các phép toán trên một giá trị (căn bậc hai, logarit, hàm lượng giác); statistics xử lý việc tổng hợp một dãy số (trung bình, trung vị, độ lệch chuẩn). Khi cần tránh sai số dấu phẩy động một cách nghiêm ngặt, bài tiếp theo về decimal / fractions mới là chỗ phù hợp.

Cách math và statistics phân chia vai trò
mathsqrt / floor / pistatisticsmean / median / stdevĐầu vào: một số(int / float)Đầu vào: danh sách số[1200, 1500, ...]
math biến đổi một số duy nhất; statistics tóm tắt một danh sách số. Hình dạng đầu vào cho bạn biết nên dùng module nào.

math — Phép toán trên một số duy nhất

math là thư viện chuẩn cho các phép toán trên một số duy nhất. math.sqrt cho căn bậc hai, math.floor / math.ceil cho làm tròn xuống / lên, math.log cho logarit, math.sin / math.cos cho lượng giác — toàn bộ các hàm toán học sách giáo khoa đều ở đó. Module còn cung cấp hằng số dưới dạng thuộc tính như math.pimath.e (số pi và cơ số logarit tự nhiên).

Các hàm chính của math
math.sqrt(x)căn bậc haimath.floor(x)làm tròn xuốngmath.ceil(x)làm tròn lênmath.log(x, base)logaritmath.pipi (hằng số)math.sin(x)math.cos(x)lượng giác
math.sqrt(x) là căn bậc hai, math.floor(x) / math.ceil(x) làm tròn xuống / lên, math.log(x, base) là logarit. math.pimath.egiá trị tự thân (thuộc tính, không phải hàm).
Hàm / Thuộc tínhÝ nghĩaVí dụ
math.sqrt(x)Căn bậc hai (trả về float)math.sqrt(16) → 4.0
math.floor(x)Làm tròn xuống (trả về int)math.floor(3.7) → 3
math.ceil(x)Làm tròn lên (trả về int)math.ceil(3.2) → 4
math.log(x, base)Logarit (logarit tự nhiên khi bỏ qua base)math.log(100, 10) → 2.0
math.piPi (hằng số)3.141592653589793
math.eCơ số logarit tự nhiên (hằng số)2.718281828459045
import math

print(math.sqrt(16))         # 4.0  (float)
print(math.floor(3.7))       # 3    (int)
print(math.ceil(3.2))        # 4    (int)
print(math.log(100, 10))     # 2.0
print(math.pi)               # 3.141592653589793
print(round(math.pi, 4))     # 3.1416  (làm tròn 4 chữ số thập phân)

Thử các hàm và hằng số phổ biến nhất của math.

① Import math.

② Tính căn bậc hai của 16 với math.sqrt và in ra dạng sqrt(16): ◯.◯.

③ Tính floor của 3.7ceil của 3.2 với math.floor / math.ceil, và in ra dạng floor: ◯ ceil: ◯.

④ Làm tròn math.pi đến 4 chữ số thập phân và in ra dạng pi (4 dp): ◯.◯◯◯◯.

(Nếu code chạy đúng, phần giải thích sẽ hiện ra.)

Python Editor

Chạy code để xem đầu ra

statistics — Tổng hợp và tóm tắt dữ liệu

statistics là thư viện chuẩn để tổng hợp một nhóm giá trị. statistics.mean trả về trung bình cộng, statistics.mediantrung vị, statistics.modegiá trị xuất hiện nhiều nhất, và statistics.stdevđộ lệch chuẩn mẫu — tất cả trong một lệnh gọi. Bạn cũng có thể thấy các quan sát thống kê kinh điển trong thực tế, như trung vị là tóm tắt ổn định hơn trung bình khi có giá trị bất thường, chỉ với vài dòng code.

Các hàm chính của statistics
[1200, 1500,1100, 1400]danh sách sốstatistics.mean→ trung bìnhstatistics.median→ trung vịstatistics.stdev→ độ lệch chuẩn
statistics.mean là trung bình, statistics.median là trung vị, statistics.mode là giá trị xuất hiện nhiều nhất, statistics.stdev là độ lệch chuẩn. Tất cả nhận một danh sách số và trả về một số.
HàmÝ nghĩaVí dụ
statistics.mean(d)Trung bình cộngmean([1,2,3]) → 2
statistics.median(d)Trung vị (chống giá trị bất thường)median([1,2,3,4]) → 2.5
statistics.mode(d)Mode (giá trị xuất hiện nhiều nhất)mode([1,2,2,3]) → 2
statistics.stdev(d)Độ lệch chuẩn mẫuMức độ phân tán của các giá trị
import statistics

prices = [1200, 1500, 1100, 1400]

print(statistics.mean(prices))    # 1300       (trung bình)
print(statistics.median(prices))  # 1300.0     (trung vị)
print(statistics.stdev(prices))   # ~182.57    (độ lệch chuẩn)

# Khi có giá trị bất thường, trung bình và trung vị tách xa
with_outlier = [1200, 1500, 1100, 1400, 100000]
print(statistics.mean(with_outlier))    # 21040  (bị kéo bởi giá trị bất thường)
print(statistics.median(with_outlier))  # 1400   (chống giá trị bất thường)

Tính trung bình, trung vị và độ lệch chuẩn của giá bốn sản phẩm.

① Import statistics và đặt bốn giá [1200, 1500, 1100, 1400] vào danh sách tên prices.

② Tính trung bình với statistics.mean, làm tròn về số nguyên và in ra dạng mean: ◯.

③ Tính trung vị với statistics.median, làm tròn về số nguyên và in ra dạng median: ◯.

④ Tính độ lệch chuẩn với statistics.stdev, làm tròn về 1 chữ số thập phân và in ra dạng stdev: ◯.◯.

Python Editor

Chạy code để xem đầu ra
QUIZ

Kiểm tra kiến thức

Hãy trả lời từng câu hỏi một.

Câu 1Lệnh gọi đúng để tính căn bậc hai của một số đơn lẻ là gì?

Câu 2Cách phù hợp nhất để tính trung bình của một danh sách là gì?

Câu 3Hàm nào trả về trung vị chống giá trị bất thường?