Я создал одномерный вид 2D-массива и хотел бы клонировать его содержимое.В настоящее время я делаю это так:
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.
Я думал, что использование слайса может быть решением, но я сталкиваюсь с непостоянной / неизменной проблемой с этим кодом:
let row_copy = table.slice(s![chosen_row,..]).clone();
// do something mutable with table