2011-12-20 14 views
11

Tôi có Đồ thị được hướng dẫn trong networkx. Tôi muốn chỉ giữ những nút có hai hoặc nhiều hơn hai cạnh đi hoặc không có cạnh ngoài nào cả. Làm thế nào để tôi làm điều này?Làm thế nào để chỉ giữ các nút trong biểu đồ dạng mạng với 2 cạnh ngoài hoặc 0 cạnh đi?

hoặc

Làm cách nào để xóa các nút có chính xác một cạnh đi trong biểu đồ mạngx.

+4

Nếu bạn st với đồ thị, tìm các nút có cạnh đi, và sau đó loại bỏ chúng, bạn có thể tạo một đồ thị mới mà vẫn có một nút với một cạnh đi (nói rằng nó có hai nút trước và một trong các nút liên quan đã bị loại bỏ.) Bạn muốn làm gì trong trường hợp đó? – DSM

Trả lời

17

Bạn có thể tìm thấy các nút trong đồ thị dưới G với một cạnh đi bằng cách sử dụng out_degree phương pháp:

outdeg = G.out_degree() 
to_remove = [n for n in outdeg if outdeg[n] == 1] 

Tháo là sau đó:

G.remove_nodes_from(to_remove) 

Nếu bạn thích để tạo ra một biểu đồ mới thay vì sửa đổi biểu đồ hiện tại tại chỗ, tạo biểu đồ con:

to_keep = [n for n in outdeg if outdeg[n] != 1] 
G.subgraph(to_keep) 
+0

sau khi xóa các nút đó, liệu độ lệch sẽ thay đổi không? – user3341953

Các vấn đề liên quan