我正在嘗試生成一個大的二維numpy NxN數組(larr),其中每個單元格包含屬於兩個字符串元素(導演名稱)的列表(a或b)之間的交集(c)由行(公司i)表示的單位和由列(公司j)表示的單位。列表(a和b)取自另一個陣列(marray),其中公司在'nfirm'列中用1到N之間的整數標識。我對矩陣的對角線不感興趣(我用NaN替代)。numpy陣列上的廣播交叉點
我想出了下面的嵌套循環,但它是非常緩慢和內存消耗。我想知道是否可以通過廣播工會運作來以更高效的方式來做到這一點。任何提示,以改善它非常讚賞。謝謝!
larr = np.empty(shape=(N,N), dtype=object)
for i in range(1,N):
for j in range(1,N):
a= marray['listdir'][marray['nfirm']==i].tolist()
b= marray['listdir'][marray['nfirm']==j].tolist()
c=np.intersect1d(a,b)
if (len(c)>0 and (i!=j)):
larr[i,j]=c
else:
larr[i,j]='NaN'
del a, b, c
看看['this'](http://stackoverflow.com/questions/33698592/is-there-a-better-way-to-determine-cross-mapping-indicies-for-numpy-arrays)有幫助。 – Divakar
謝謝Divakar,reindexing部分提高速度 – Bernilli