1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phân tích mạng nâng cao với Python

Connected

Bài tập

Tìm thành viên chung: Chuyển vị

Có thể bạn đã nhận ra: khi chuyển sang biểu diễn ma trận thưa, bạn sẽ mất metadata từ đồ thị. Bây giờ bạn sẽ học cách gán lại metadata để có thể khám phá thêm về thành viên chung.

user_matrix mà bạn đã tính ở bài trước đã được nạp sẵn vào không gian làm việc của bạn.

Ở đây, hàm np.where() sẽ rất hữu ích. Cách hoạt động như sau: với một mảng, ví dụ a = [1, 5, 9, 5], nếu bạn muốn lấy các chỉ số có giá trị bằng 5, bạn có thể dùng idxs = np.where(a == 5). Kết quả trả về là một mảng trong một tuple, (array([1, 3]),). Để truy cập các chỉ số đó, bạn cần đánh chỉ mục vào tuple như idxs[0].

Hướng dẫn

100 XP
  • Tìm tên những người là thành viên của nhiều câu lạc bộ nhất.
    • Để làm điều này, trước tiên tính diag bằng phương thức .diagonal() trên user_matrix.
    • Sau đó, dùng np.where() để chọn các chỉ số nơi diag bằng diag.max(). Hàm này trả về một tuple: Hãy chắc rằng bạn truy cập đúng các chỉ số bằng cách đánh chỉ mục vào tuple với [0].
    • Lặp qua indices và in ra từng chỉ số i của people_nodes bằng hàm print() đã cho.
  • Đặt đường chéo về 0 và chuyển nó sang "định dạng ma trận tọa độ". Đoạn mã này đã được cung cấp sẵn trong phần đáp án.
  • Tìm các cặp người dùng có số câu lạc bộ chung nhiều nhất.
    • Dùng np.where() để lấy các chỉ số mà users_coo.data bằng users_coo.data.max().
    • Lặp qua indices2 và in ra từng chỉ số idx của users_coo.row và users_coo.col trong people_node.