擅长:python、mysql、java
<p>如果我理解正确</p>
<p><code>marray['listdir']</code>是表示导演的字符串列表,按电影索引。你知道吗</p>
<p><code>marray['nfirm']</code>是代表公司的整数列表,也按电影索引。你知道吗</p>
<p>您希望创建一个由成对公司共享的董事矩阵。你知道吗</p>
<p>为了提高效率,您可以先建立一个将公司与电影联系起来的字典,然后建立矩阵:</p>
<pre><code>firm_movies = [[] for _ in xrange(N)]
for i, m in enumerate(marray['nfirm']):
firm_movies[m].append(i)
larr = np.empty(shape=(N, N), dtype=object)
for i in xrange(N):
larr[i, i] = 'NaN'
for j in xrange(i+1, N):
a = marray['listdir'][firm_movies[i]]
b = marray['listdir'][firm_movies[j]]
c = np.intersect1d(a,b)
larr[i, j] = larr[j, i] = c if len(c)>0 else 'NaN'
</code></pre>