擅长:python、mysql、java
<p>我希望更新的<code>scipy.optimize.linear_sum_assignment</code>速度最快,但是(也许并不奇怪)更新的<a href="https://github.com/jfrelinger/cython-munkres-wrapper" rel="noreferrer">Cython library</a>(它没有pip支持)速度要快得多,至少对于我的用例来说:</p>
<pre><code>$ python -m timeit -s 'from scipy.optimize import linear_sum_assignment; import numpy as np; np.random.seed(0); c = np.random.rand(20,30)' 'a,b = linear_sum_assignment(c)'
100 loops, best of 3: 3.43 msec per loop
$ python -m timeit -s 'from munkres import munkres; import numpy as np; np.random.seed(0); c = np.random.rand(20,30)' 'a = munkres(c)'
10000 loops, best of 3: 139 usec per loop
$ python -m timeit -s 'from scipy.optimize import linear_sum_assignment; import numpy as np; np.random.seed(0);' 'c = np.random.rand(20,30); a,b = linear_sum_assignment(c)'
100 loops, best of 3: 3.01 msec per loop
$ python -m timeit -s 'from munkres import munkres; import numpy as np; np.random.seed(0)' 'c = np.random.rand(20,30); a = munkres(c)'
10000 loops, best of 3: 127 usec per loop
</code></pre>
<p>我在2x2和100x120(快10-40倍)之间看到了类似的结果。</p>