#csv #多维数组 #2D #数据 #读写 #均匀 #ndarrays

ndarray-csv

轻松读取和写入均匀CSV数据到2D ndarrays

11个版本

使用旧的Rust 2015

0.5.2 2023年5月4日
0.5.1 2021年4月25日
0.5.0 2021年1月30日
0.4.1 2020年3月6日
0.3.1 2018年10月30日

#149图形API

Download history 687/week @ 2024-03-14 889/week @ 2024-03-21 1101/week @ 2024-03-28 1317/week @ 2024-04-04 1029/week @ 2024-04-11 1204/week @ 2024-04-18 1449/week @ 2024-04-25 1141/week @ 2024-05-02 1300/week @ 2024-05-09 1471/week @ 2024-05-16 1508/week @ 2024-05-23 1390/week @ 2024-05-30 1368/week @ 2024-06-06 1180/week @ 2024-06-13 959/week @ 2024-06-20 552/week @ 2024-06-27

4,273 每月下载量
24 个包中使用 (直接使用11个)

MIT/Apache

14KB
244

ndarray-csv

轻松读取和写入均匀CSV数据到2D ndarrays。

extern crate csv;
extern crate ndarray;
extern crate ndarray_csv;

use csv::{ReaderBuilder, WriterBuilder};
use ndarray::{Array, Array2};
use ndarray_csv::{Array2Reader, Array2Writer};
use std::error::Error;
use std::fs::File;

fn main() -> Result<(), Box<dyn Error>> {
    // Our 2x3 test array
    let array = Array::from(vec![1, 2, 3, 4, 5, 6]).into_shape((2, 3)).unwrap();

    // Write the array into the file.
    {
        let file = File::create("test.csv")?;
        let mut writer = WriterBuilder::new().has_headers(false).from_writer(file);
        writer.serialize_array2(&array)?;
    }

    // Read an array back from the file
    let file = File::open("test.csv")?;
    let mut reader = ReaderBuilder::new().has_headers(false).from_reader(file);
    let array_read: Array2<u64> = reader.deserialize_array2((2, 3))?;

    // Ensure that we got the original array back
    assert_eq!(array_read, array);
    Ok(())
}

此项目使用 cargo-make 进行构建;要构建,请运行 cargo make all

为防止拒绝服务攻击,不要读取未信任的CSV流的无界长度;可以使用 std::io::Read::take 实现。

许可证:MIT/Apache-2.0

依赖项

~3MB
~46K SLoC