python-241Đọc toàn bộ đề miễn phí

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

PythonCơ bản12 phút

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ủ đề

numpylinear-algebranormentry-ramp

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.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.

Nhóm Zalo