6 个版本
0.1.0 | 2023 年 1 月 26 日 |
---|---|
0.0.5 | 2022 年 12 月 18 日 |
#2 在 #conveniently
每月 23 次下载
26KB
294 行
戴菲
戴菲是一个用于方便地将数据写入 csv 文件的 Rust crate。该 crate 旨在提供一个最小的接口,以便将数据保存到 csv,这样它不会成为程序的重要组成部分,最好只占用几行代码。
用法
以下展示了 delfi 的基本用法
use delfi::Dataset;
let t = vec![0.0, 1.0, 2.0];
let x = vec![0.0, 2.0, 6.0];
let dataset = Dataset::columns([t, x], ["time", "length"]);
dataset.save("./path/to/file.csv").unwrap();
或者您可以使用宏来编写更长的代码,但可能更易读
use delfi::dataset;
let t = vec![0.0, 1.0, 2.0];
let x = vec![0.0, 2.0, 6.0];
let dataset = dataset!{
"time" => t,
"length" => x,
};
dataset.save("./path/to/file.csv").unwrap();
它与任何可迭代的对象一起工作,只要它们是同一类型。以下是一个使用 ndarray 的示例
use delfi::dataset;
use ndarray::Array;
const N: usize = 1000;
let t = Array::linspace(0., 10., N+1);
let x = Array::logspace(10., 0., 2., N+1);
let dataset = dataset!{
"time" => t,
"length" => x,
};
dataset.save("./path/to/file.csv").unwrap();
特性:宏
目前正在努力允许结合多个类型的自定义数据结构。当前状态允许以下模式(也支持命名结构体)
use delfi::{Datapoint, Dataset};
#[derive(Datapoint)]
struct MyDatapoint(String, usize, f64);
let dp1 = MyDatapoint("Hello".to_owned(), 4, 10.2);
let dp2 = MyDatapoint("World".to_owned(), 5, 3.14);
let dataset = Dataset::from_datapoints([dp1, dp2]);
dataset.save("./path/to/file.csv").unwrap();
希望未来可以进一步扩展以允许更直观的构造函数。
依赖关系
~1.3–1.7MB
~21K SLoC