gpt4 book ai didi

arrays - 如何将一个 800 行 25 列的文件存储在一个 N 维数组中?

转载 作者:行者123 更新时间:2023-11-29 08:23:49 25 4
gpt4 key购买 nike

我正在寻找一种方法来将 800 行、25 列的文件存储在一个数组中。我已经弄清楚如何将来自 CSV 的数据存储在 25 个不同的向量中,但代码看起来非常困惑,因为我必须声明所有不同的向量。

我非常习惯 Python 中的 array 函数,我想知道在 Rust 中是否有办法做到这一点。我找到了 ndarray外部 crate ,但我不知道如何将它用于 6 维以上的数组。这是我的代码对于二维数组的样子,你可以想象如果有 25 个不同的向量、f 声明和 vector.push() 函数,它看起来会有多困惑.

extern crate rand;
extern crate csv;

fn print(v: Vec<f64>) {
println!("New vector");
for x in &v {
println!("{} ", x);
}
}

fn main() {
let mut rdr = csv::Reader::from_file("./data.csv").unwrap();
let mut v1 = Vec::new();
let mut v2 = Vec::new();
for record in rdr.decode() {
let (f1, f2): (f64, f64) = record.unwrap();
println!("({}, {}, {}, {}, {}, {})", f1, f2);
v1.push(f1);
v2.push(f2);

}
print(v1);
print(v2);
}

最佳答案

我认为您误解了 N 维的含义。

具有行和列的数组只有 2 维,因此可以很容易地表示为 Vec<Vec<f64>> .

因此我希望代码如下:

fn main() {
let mut rdr = csv::Reader::from_file("./data.csv").unwrap();

let result = Vec::new();

for record in rdr.decode() {
let row: Vec<f64> = record.unwrap();
println!("{:?}", row);
result.push(row);
}
}

利用 Decodable Vec<T> 实现.

关于arrays - 如何将一个 800 行 25 列的文件存储在一个 N 维数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626321/

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