Chuẩn Euclid từng hàng bằng np.linalg.norm
Khi mỗi hàng của ma trận là một vector đặc trưng, độ lớn của vector đó là thước đo đầu
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, numpy-axis-reduction.
Nội dung đề bài
Mô tả bài toán
Khi mỗi hàng của ma trận là một vector đặc trưng, độ lớn của vector đó là thước đo đầu tiên người ta xem: nó cho biết mẫu nằm xa gốc toạ độ bao nhiêu. NumPy tính sẵn độ lớn này bằng np.linalg.norm và biết cách làm cho cả ma trận cùng lúc theo một trục.
Yêu cầu
Viết hàm row_norms(matrix) nhận ma trận hai chiều và trả về danh sách độ dài Euclid của từng hàng, tức căn bậc hai của tổng bình phương các phần tử trong hàng đó.
Quy ước nộp bài
Nộp hàm row_norms trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị trả về với sai số 1e-6; không đọc dữ liệu từ stdin và không in ra stdout.
Input
- matrix: mảng hai chiều, mọi hàng có cùng số cột, phần tử là số nguyên hoặc số thực.
Output
Danh sách số thực gồm len(matrix) phần tử; phần tử thứ i là chuẩn Euclid của hàng i.
Ràng buộc
- Số hàng và số cột nằm trong khoảng 1 đến 50.
- Giá trị âm không đổi kết quả, vì phép bình phương xoá dấu.
- Không được trả về chuẩn Frobenius của cả ma trận.
Ví dụ 1
Input
row_norms(matrix=[[3, 4], [0, 0]])
Output
[5.0, 0.0]
Ví dụ 2
Input
row_norms(matrix=[[1, 0, 0]])
Output
[1.0]
Giải thích
Với matrix = [[3, 4], [0, 0]] thì row_norms(matrix) trả về [5.0, 0.0], vì 3 * 3 + 4 * 4 = 25 và căn bậc hai của 25 là 5.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
