<div>Hi Stéfan:</div><div><br></div><div>  I appreciate Numba. for sometimes, we must do a 'for' in our python code, but just a 'for' with a 'if', It is fussy to compile a so/dll or write cython. Numba is very portable, and can run anywhere, just need to install numba and llvmlite. (That means our package could be a light-weight library, undepended any native so/dll)</div><div><br></div><div>  As I metioned befor, many scikit-image's algrisms are not exquisite enough(just my own opinion),</div><div>      the mid_axi function results too many branch and sometimes with hols,  </div><div>      the local_max has not a tolerance, so the result is too massy, then do a watershed end with too many fragments...,</div><div>      and how to build a graph from the skeleton, then do a network analysis.</div><div><br></div><div>I want to do a contribute to scikit-image, But after some effort, I give up, I prefor to write a dynamic lib rather then Cython. In the end, I wrote them in Numba. So I appreciate to use Numba.</div><div><br></div><div>Best</div><div>YXDragon</div><div><br></div><div id="origbody"><div style="background: #f2f2f2;">----- 原始邮件 -----<br>发件人:Stefan van der Walt <stefanv@berkeley.edu><br>收件人:scikit-image@python.org<br>主题:[scikit-image] Numba on pypi<br>日期:2017年07月13日 14点17分<br></div><br>Hi everyone,<br>As many of you know, speed has been a point of contention in<br>scikit-image for a long time.  We've made a very deliberate decision to<br>focus on writing high-level, understandable code (via Python and<br>Cython): both to lower the barrier to entry for newcomers, and to lessen<br>the burden on maintainers.  But execution time comparisons, vs OpenCV<br>e.g., left much to be desired.<br>I think we have hit a turning point in the road.  Binary wheels for<br>Numba (actually, llvmlite) were recently uploaded to PyPi, making this<br>technology available to users on both pip and conda installations.  The<br>importance of this release on pypi should not be dismissed, and I am<br>grateful to the numba team and Continuum for making that decision.<br>So, how does that impact scikit-image?  Well, imagine we choose to<br>optimize various procedures via numba (see Juan's blog post for exactly<br>how impactful this can be:<br>https://ilovesymposia.com/2017/03/15/prettier-lowlevelcallables-with-numba-jit-and-decorators/).<br>The only question we have to answer (from a survival point of view)<br>needs to be: if, somehow, something happens to numba, will an<br>alternative will be available at that time?  Looking at the Python JIT<br>landscape (which is very active), and the current state of numba<br>development, I think this is likely.  And, if we choose to use numba, of<br>course we'll help to keep it healthy, as far as we can.<br>I'd love to hear your thoughts.  I, for one, am excited about the<br>prospect of writing kernels as simply as:<br>>>> @jit_filter_function<br>... def fmin(values):<br>...     result = np.inf<br>...     for v in values:<br>...         if v < result:<br>...             result = v<br>...     return result<br>>>> ndi.generic_filter(image, fmin, footprint=fp)<br>Best regards<br>Stéfan<br>_______________________________________________<br>scikit-image mailing list<br>scikit-image@python.org<br>https://mail.python.org/mailman/listinfo/scikit-image<br></div>