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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Numpy:填充共生矩陣的最快方法

Numpy:填充共生矩陣的最快方法

滄海一幻覺 2022-08-16 18:45:20
我有一個(gè)很長(zhǎng)的索引元組列表(很多重復(fù)項(xiàng)),以及一個(gè)由n×n個(gè)索引組成的矩陣。每個(gè)元組表示一個(gè)共現(xiàn)項(xiàng)。例如:a = np.zeros(shape=(indexCount,indexCount))我試過這個(gè):for i1,i2 in coocPairs:  #for instance (2374, 22003)    a[i1][i2}+=1  #takes way too long藝術(shù)np.put(a,coocPairs,1) #which obviously does not increment或者:np.add(a,coocPairs,1) #which takes even longer.在理想的世界中,會(huì)有一個(gè)函數(shù)獲取我的元組列表,并用它來構(gòu)建一個(gè)共生矩陣,但唉(doc.不是很有幫助)。我認(rèn)為解決方案可能更多地在代碼的python方面,但我的想法已經(jīng)用完了。歡迎任何幫助。感謝您抽出寶貴時(shí)間接受采訪,
查看完整描述

2 回答

?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

可以使用 a 獲取實(shí)際將出現(xiàn)在矩陣中的值。這之所以有效,是因?yàn)樵M是可哈希的。任務(wù)變得非常簡(jiǎn)單:collections.Counter


counts = collections.Counter(coocPairs)

ind = np.array(list(counts.keys())).T

a[ind[0], ind[1]] = list(counts.values())

通常,with 是 .在這種情況下,有必要指定軸,并記住它將是較慢的解決方案之一:np.uniquereturn_counts=TrueCounter


ind, count = np.unique(coocPairs, return_counts=True, axis=0)

a[ind.T[0], ind.T[1]] = count

相反,您可以將配對(duì)轉(zhuǎn)換為拉維矩陣中的線性索引:


ind = np.ravel_multi_index(tuple(np.array(coocPairs).T), a.shape)

現(xiàn)在你可以做


ind, count = np.unique(ind, return_counts=True)

a.ravel()[ind] = count

或者,您可以使用 np.bincount 更快地獲取計(jì)數(shù),或避免預(yù)先計(jì)數(shù)。帶有raveled索引的解決方案為您節(jié)省了預(yù)先分配的麻煩:np.add.atbincounta


ind = np.ravel_multi_index(tuple(np.array(coocPairs).T), (n, n))

a = np.bincount(ind, minlength=n * n).reahape(n, n)


查看完整回答
反對(duì) 回復(fù) 2022-08-16
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用np.add.at

np.add.at(a,tuple(coocPairs.T),1)

如果這還不夠快,那么有更快但不太直接的解決方案。那些依賴于使用 的扁平化索引。np.bincountnp.ravel_multi_index


查看完整回答
反對(duì) 回復(fù) 2022-08-16
  • 2 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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