BaşlayınÜcretsiz başlayın

Grafikte öz-bağlar (self-loop) olup olmadığını kontrol etme

Eric'in belirttiği gibi, NetworkX aynı düğümde başlayıp aynı düğümde biten kenetlere de izin verir; bu durum bir sosyal ağ grafiği için sezgisel olmasa da, bireylerin bir konumdan başlayıp başka bir konumda bittiği yolculuk ağları gibi verileri modellemek için kullanışlıdır.

İleri analizlere geçmeden önce bunu kontrol etmek faydalıdır ve NetworkX bu amaçla bir yöntem sağlar: nx.number_of_selfloops(G).

Bu egzersizde ve sonraki bazı egzersizlerde, assert ifadesi işine yarayacak. Bir assert ifadesi, sonrasına yazılan ifadenin True olup olmadığını kontrol eder; aksi halde bir AssertionError fırlatır.

Başlamak için, IPython Shell'de nx.number_of_selfloops() fonksiyonunu T argümanıyla çağırarak aynı düğümde başlayıp biten kenarların sayısını elde et. Grafiğe yapay olarak birkaç öz-bağ eklenmiştir. Bu egzersizdeki görevin, bu kenarları döndüren bir fonksiyon yazmaktır.

Bu egzersiz, kursun bir parçasıdır

Python ile Ağ Analizine Giriş

Kursa Göz Atın

Egzersiz talimatları

  • G adlı tek argüman alan find_selfloop_nodes() isimli bir fonksiyon tanımla.
    • Bir for döngüsüyle, G içindeki tüm kenarlar üzerinde (üstveriyi hariç tutarak) yinele.
    • Eğer u düğümü v düğümüne eşitse:
      • u öğesini nodes_in_selfloops listesine ekle.
      • nodes_in_selfloops listesini döndür.
  • Grafikteki öz-bağ sayısının öz-bağ içeren düğüm sayısına eşit olduğunu kontrol et. Bu senin için yapıldı; sonucu görmek için 'Yanıtı Gönder'e bas!

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Define find_selfloop_nodes()
def ____:
    """
    Finds all nodes that have self-loops in the graph G.
    """
    nodes_in_selfloops = []

    # Iterate over all the edges of G
    for u, v in ____:

    # Check if node u and node v are the same
        if ____:

            # Append node u to nodes_in_selfloops
            ____

    return nodes_in_selfloops

# Check whether number of self loops equals the number of nodes in self loops
assert nx.number_of_selfloops(T) == len(find_selfloop_nodes(T))
Kodu Düzenle ve Çalıştır