rust 如何将Vec转换为ndarray

ttcibm8c  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(129)

我开始学习rust,所以如果有更合适的方法来解决这个问题,请告诉我,但是我正在寻找类似于python的numpy在向量上进行元素操作时的性能。它看起来像ndarray板条箱是一个很好的适合,但我有一个困难的时间把一个Vec到一个ndarray。开头:

let mut A:Vec<f32> = vec![];

字符串
我该如何做类似于:

let B = array!(A);


在填充向量后?
我没有看到像在python中使用列表那样将向量转换为ndarray的方法。我真的需要使用for循环并将每个索引单独设置为空ndarray吗?

ubbxdtey

ubbxdtey1#

您可以使用from_vec从向量创建ndarray,或使用from_shape_vec创建自定义维度的向量。

let A = Array::from_vec(vec![1,2,3,4]);
let B = Array::from_shape_vec((2, 2), vec![1., 2., 3., 4.]);
println!("Vector created from_vec: {:#?}", A);
println!("Vector created from_shape_vec: {:#?}", B.unwrap());

字符串
这将输出:

Vector created from_vec: [1, 2, 3, 4]
Vector created from_shape_vec: 
[[1.0, 2.0],
 [3.0, 4.0]],

rjee0c15

rjee0c152#

ArrayBase实现了From<Vec>,所以你可以使用它:

let B = ndarray::Array1::from(A);

字符串

相关问题