擅长:python、mysql、java
<p>可以使用<a href="https://numpy.org/devdocs/reference/generated/numpy.ix_.html" rel="nofollow noreferrer">numpy.ix_</a>获取数组的相关部分并计算总和</p>
<pre><code>import numpy as np
a = np.array([[ 0, 1, 2, 3],
[ 1, 0, 6, 0],
[ 2, 6, 0, 1],
[ 3, 0, 1, 0]])
def sum_edges_between_list(a, L):
"""
>>> sum_edges_between_list(a, [0,1])
1
>>> sum_edges_between_list(a, [0,1,2])
9
>>> sum_edges_between_list(a, [0,1,2,3])
13
"""
return (a[np.ix_(L, L)].sum() / 2).astype(a.dtype)
</code></pre>