Subgraph II
Trong bài trước, bạn đã được cung cấp một danh sách node và được yêu cầu trích xuất các hàng xóm của chúng.
Hãy làm thêm một bài nữa: bạn sẽ trích xuất các node có một thuộc tính metadata cụ thể và cả hàng xóm của chúng. Bài này gợi nhớ cách dùng list comprehension để tìm node mà bạn đã học. Nó cũng giúp bạn luyện kỹ năng ghép nối (compose) các hàm mà bạn đã viết trước đó.
Bài tập này là một phần của khóa học
Nhập môn Phân tích Mạng bằng Python
Hướng dẫn bài tập
- Dùng một list comprehension để trích xuất các node có metadata
'occupation'là'celebrity'cùng với hàng xóm của chúng:- Biểu thức đầu ra của list comprehension là
n, và có hai biến lặp:nvàd. Iterable là danh sách node củaT(kèm metadata, bạn có thể chỉ định bằngdata=True) và biểu thức điều kiện là khi khóa'occupation'của từ điển metadatadbằng'celebrity'.
- Biểu thức đầu ra của list comprehension là
- Đặt chúng vào một subgraph mới tên là
T_sub. Để làm điều này:- Lặp qua các node, tính hàng xóm của từng node, và thêm chúng vào tập node
nodesetbằng phương thức.union(). Phần này đã được làm sẵn cho bạn. - Dùng
nodesetcùng với phương thứcT.subgraph()để tínhT_sub.
- Lặp qua các node, tính hàng xóm của từng node, và thêm chúng vào tập node
- Vẽ
T_sublên màn hình.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Extract the nodes of interest: nodes
nodes = [n for n, d in ____ if ____ == ____]
# Create the set of nodes: nodeset
nodeset = set(nodes)
# Iterate over nodes
for n in ____:
# Compute the neighbors of n: nbrs
nbrs = ____
# Compute the union of nodeset and nbrs: nodeset
nodeset = nodeset.union(nbrs)
# Compute the subgraph using nodeset: T_sub
T_sub = ____
# Draw T_sub to the screen
____
plt.show()