You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何并行枚举Rust ndarray数组?

如何并行枚举Rust ndarray数组?

我懂你现在的困扰——想用ndarray进行并行遍历,同时获取元素的索引和值,但par_iter和par_iter_mut这两个并行迭代器方法没法直接调用enumerate(),对吧?

你当前使用的depth.indexed_iter_mut().par_bridge()其实是一种可行的方案,但确实有更直接的官方API可以用:ndarray提供了专门的并行索引迭代器方法:par_indexed_iter(不可变)和par_indexed_iter_mut(可变)。

这两个方法会直接返回带有索引的并行迭代器,不需要再通过par_bridge去转换普通迭代器。比如你原来的代码可以直接替换成:

depth.par_indexed_iter_mut()

这样就能直接并行遍历数组,同时拿到每个元素的索引和可变引用,用法和indexed_iter_mut完全类似,但内部是基于rayon实现的并行处理。

至于为什么par_iter不能用enumerate(),是因为par_iter返回的是rayon的并行迭代器类型,而标准库的enumerate()方法只适用于普通的顺序迭代器,并行迭代器并没有这个方法。而ndarray提供的par_indexed_iter系列方法刚好封装了这个需求,帮你省去了手动转换的步骤。

备注:内容来源于stack exchange,提问作者Da1sy petals

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 09:04:34