1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Phân tích Mạng bằng Python

Connected

Bài tập

Truy vấn trên một đồ thị

Giờ thì bạn đã biết một vài thuộc tính cơ bản của đồ thị và đã luyện tập dùng chức năng vẽ của NetworkX để trực quan hóa các thành phần, đã đến lúc khám phá cách truy vấn nút và cạnh. Cụ thể, bạn sẽ tìm các "nút quan tâm" và "cạnh quan tâm". Để làm điều này, bạn sẽ dùng các phương thức .nodes() và .edges() mà Eric đã giới thiệu trong video. Phương thức .nodes() trả về một Node view có thể lặp, trong khi phương thức .edges() trả về một edge view có thể lặp, trong đó mỗi tuple cho biết các nút nằm trên cạnh đó. Nhớ rằng truyền đối số từ khóa data=True vào các phương thức này cũng sẽ truy xuất metadata tương ứng gắn với các nút và cạnh.

Bạn sẽ viết các list comprehension để xây dựng các truy vấn này gọn trong một dòng. Nếu cần ôn lại về list comprehension, hãy xem Phần 2 của khóa Python Data Science Toolbox trên DataCamp. Công thức của một list comprehension là:

[ biểu thức đầu ra for biến lặp in iterable if biểu thức điều kiện ].

Bạn cần điền vào phần _iterable_ và _biểu thức điều kiện_. Bạn có thể thử nghiệm câu trả lời bằng cách khám phá đồ thị trong IPython Shell trước khi gửi lời giải.

Hướng dẫn

100 XP
  • Dùng một list comprehension để lấy danh sách các nút từ đồ thị T có nhãn 'occupation' là 'scientist'.
    • Biểu thức đầu ra n đã được cung cấp, cùng với các biến lặp n và d. Nhiệm vụ của bạn là điền phần iterable và biểu thức điều kiện.
    • Dùng phương thức .nodes() của T để truy cập các nút, và nhớ chỉ định data=True để lấy metadata của các nút.
    • Biến lặp d là một từ điển. Khóa cần quan tâm ở đây là 'occupation' và giá trị cần quan tâm là 'scientist'.
  • Dùng một list comprehension để lấy danh sách các cạnh từ đồ thị T được hình thành ít nhất 6 năm, tức là từ trước 1 Jan 2010.
    • Một lần nữa, nhiệm vụ của bạn là điền phần iterable và biểu thức điều kiện.
    • Dùng phương thức .edges() của T để truy cập các cạnh. Nhớ lấy cả metadata của các cạnh.
    • Ngày tháng được lưu dưới dạng đối tượng datetime.date trong từ điển metadata d, dưới khóa 'date'. Ví dụ, để truy cập ngày 1 Jan 2009, giá trị từ điển sẽ là date(2009, 1, 1).