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

Paylaşılan üyeliği bul: Transpoz

Fark etmiş olabileceğin gibi, seyrek matris temsilini kullandığında bir grafikteki üst veriyi (metadata) kaybedersin. Şimdi, paylaşılan üyelik hakkında daha çok şey öğrenebilmek için bu üst veriyi nasıl geri kazandıracağını öğreneceksin.

Önceki egzersizde hesapladığın user_matrix çalışma alanına önceden yüklendi.

Burada np.where() işine yarayacak. Şöyle çalışır: Bir dizi düşün, örneğin a = [1, 5, 9, 5]. Değeri 5 olan indeksleri almak istersen idxs = np.where(a == 5) kullanabilirsin. Bu, bir demet içinde bir dizi döndürür: (array([1, 3]),). Bu indekslere erişmek için demetin içine [0] ile indekslemen gerekir: idxs[0].

Bu egzersiz

Python ile Orta Düzey Ağ (Network) Analizi

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • En çok sayıda kulübe üye olan kişilerin adlarını bul.
    • Bunu yapmak için önce user_matrix üzerinde .diagonal() yöntemini kullanarak diag'ı hesapla.
    • Ardından, np.where() kullanarak diag'ın diag.max()'a eşit olduğu indeksleri seç. Bu bir demet döndürür: İlgili indekslere demeti [0] ile indeksleyerek eriştiğinden emin ol.
    • indices üzerinde yinele ve verilen print() işlevini kullanarak people_nodes'un her i indeksini yazdır.
  • Köşegeni sıfıra ayarla ve "koordine matris biçimine" dönüştür. Bu kod yanıtta senin için verildi.
  • En çok sayıda kulüpte üyeliği paylaşan kullanıcı çiftlerini bul.
    • np.where() kullanarak users_coo.data'nın users_coo.data.max()'a eşit olduğu indekslere eriş.
    • indices2 üzerinde yinele ve users_coo.row ile users_coo.col içindeki her idx için people_node indeksini yazdır.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

import numpy as np

# Find out the names of people who were members of the most number of clubs
diag = ____ 
indices = np.where(____ == ____)[0]  
print('Number of clubs: {0}'.format(diag.max()))
print('People with the most number of memberships:')
for i in indices:
    print('- {0}'.format(____))

# Set the diagonal to zero and convert it to a coordinate matrix format
user_matrix.setdiag(0)
users_coo = user_matrix.tocoo()

# Find pairs of users who shared membership in the most number of clubs
indices2 = np.where(____ == ____)[0]
print('People with most number of shared memberships:')
for idx in indices2:
    print('- {0}, {1}'.format(people_nodes[____.____[____]], people_nodes[____.____[____]]))  
Kodu Düzenle ve Çalıştır