我有一个二维数组Array2,我希望能够 Select 行

use ndarray::{Array2, Axis};

let subarray: Array2 = my_array.select(Axis(0), &[0,2,5]);

有了这段简单的代码,我可以 Select 第一行、第三行和第六行,但是当在运行时构建目标索引时呢?我的意思是,我想从Vector或任何可以作为函数输入的迭代数中进行 Select .

推荐答案

您可以通过简单地borrow 一个向量来获得切片

let index = vec![0, 2, 4];
let subarray = my_array.select(Axis(0), &index);

Rust相关问答推荐

程序退出后只写入指定管道的数据

如何容器化Linux上基于Rust的Windows应用程序的编译过程?

如何将元素添加到向量并返回对该元素的引用?

当两者都有效时,为什么Rust编译器建议添加';&;而不是';*';?

闭包不会发送,即使它只捕获发送变量

如何在Rust中将选项<;选项<;字符串>;转换为选项<;选项&;str>;?

如果死 struct 实现了/派生了一些特征,为什么Rust会停止检测它们?

为什么不';t(&;mut-iter).take(n)取得iter的所有权?

Windows 上 ndarray-linalg 与 mkl-stats 的链接时间错误

如何将 &[T] 或 Vec<T> 转换为 Arc<Mutex<[T]>>?

trait 对象指针的生命周期

如何在 Rust 中显式声明 std::str::Matches<'a, P> ?

为什么我不能克隆可克隆构造函数的Vec?

在 Rust 中,将可变引用传递给函数的机制是什么?

如何在 Rust 中编写涉及异步的重试函数

如何获取包裹在 Arc<> 和 RwLock<> 中的 Rust HashMap<> 的长度?

在 Rust 中枚举字符串的最佳方式? (字符()与 as_bytes())

有没有办法在 Rust 中对 BigInt 进行正确的位移?

如何在没有 `make_contiguous()` 的情况下对 VecDeque 进行排序或反转?

为什么 Rust 中的关联类型需要明确的生命周期注释?