第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據(jù)numpy數(shù)組中的組標(biāo)簽對鄰接矩陣中的邊求和

根據(jù)numpy數(shù)組中的組標(biāo)簽對鄰接矩陣中的邊求和

慕碼人2483693 2023-03-01 17:49:34
例如,我得到了對稱鄰接矩陣(無自環(huán)),即A = [[0, 1, 1, 0, 0],[1, 0, 1, 0, 1],[1, 1, 0, 1, 0],[0, 0, 1, 0, 1],[0, 1, 0, 1, 0]]然后,我得到了一組與該圖關(guān)聯(lián)的簇標(biāo)簽 i,即cluster = [1,1,2,2,3]這意味著節(jié)點1和節(jié)點2在同一組,節(jié)點3和節(jié)點4在同一組,節(jié)點5在一個獨立的組。問題是我怎樣才能得到組內(nèi)和組間的邊的總和,組內(nèi):指共享相同簇標(biāo)簽的節(jié)點之間的邊,例如節(jié)點1和節(jié)點2在同一組中,因此它們的和為1,節(jié)點3和節(jié)點4相同。對于節(jié)點5 ,它的 0。組間:表示共享不同簇標(biāo)簽的節(jié)點之間的邊,例如group 1和group 2,表示節(jié)點1節(jié)點3,節(jié)點1節(jié)點4,節(jié)點2節(jié)點3,節(jié)點2節(jié)點4的邊之和. 組1和組2之間的答案是2。然后返回一個包含結(jié)果的二維對稱數(shù)組,即[[1,2,1],[2,1,1],[1,1,0]]
查看完整描述

2 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊

您可以使用矩陣代數(shù);


cluster = np.array(cluster)

# create cluster-node adjacency matrix

aux = np.identity(cluster.max(),int)[cluster-1]

# we can now count by multiplying

out = aux.T@A@aux

# fix diagonal (which was counted twice)

np.einsum("ii->i",out)[...] //= 2

out

# array([[1, 2, 1],

#        [2, 1, 1],

#        [1, 1, 0]])

為了加快速度,如果節(jié)點按集群排序,我們可以用 (1) 替換矩陣乘積:


boundaries = np.diff(cluster,prepend=-1).nonzero()[0]

out =  np.add.reduceat(np.add.reduceat(A,boundaries,1),boundaries,0)

(2) 如果不是:


nc = cluster.max()

out = np.zeros((nc,nc),int)

np.add.at(out,(cluster[:,None]-1,cluster-1),A)


查看完整回答
反對 回復(fù) 2023-03-01
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊

這將返回一個數(shù)組,其元素[i,j]是相應(yīng)簇的邊的總和i和j:


n = cluster.max()

degrees = np.zeros((n,n))

idx = [np.where(cluster==i)[0] for i in np.arange(n)+1]

for i in range(n):

  degrees[i,i] = A[np.ix_(idx[i],idx[i])].sum()/2

  for j in range(i):

    degrees[i,j] = degrees[j,i] = A[np.ix_(idx[i],idx[j])].sum()

輸出:


[[1. 2. 1.]

 [2. 1. 1.]

 [1. 1. 0.]]

您也可以使用 itertools,但我認(rèn)為這可能更快。


查看完整回答
反對 回復(fù) 2023-03-01
  • 2 回答
  • 0 關(guān)注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號