gpt4 book ai didi

multidimensional-array - 如何从 View 中有效地克隆 Rust ndarray?

转载 作者:行者123 更新时间:2023-11-29 08:13:51 24 4
gpt4 key购买 nike

我已经创建了一个二维 ndarray 的一维行 View ,我想克隆其中的内容。目前,我是这样做的:

let mut row_orig = table.subview_mut(Axis(0), chosen_row);
// ...
// some operations on row_orig
// ...
let mut row_copy = Array1<f32>::zeros(table.cols());
row_copy.assign(&row_orig);

用零创建和初始化似乎有点低效,然后执行复制。另外,我必须在不需要时将 row_copy 声明为可变的。有没有更好的办法?显然,.clone 对于 ndarray View 不存在。

我认为使用切片可能是解决方案,但我遇到了这段代码的可变/不可变问题:

let row_copy = table.slice(s![chosen_row,..]).clone();
// do something mutable with table

最佳答案

I'd like to clone the contents.

如果是这种情况,那么您不希望只克隆数组 View (这本来只是一个浅拷贝)。您想要一个与另一个数组具有相同内容的唯一数组。这可以用 to_owned 来完成.

let row_orig = table.subview(Axis(0), chosen_row);
let row_copy = row_orig.to_owned();

关于multidimensional-array - 如何从 View 中有效地克隆 Rust ndarray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52445605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com