#npy #macro-derive #numpy #serializable #serialization #format #deserialize

npy-derive

为crate npy实现#[derive(Serializable)]宏的1.1版本

6个版本 (3个重大更改)

使用旧Rust 2015

0.4.0 2018年3月5日
0.3.1 2017年9月19日
0.3.0 2017年8月20日
0.2.1 2017年3月13日
0.1.0 2017年3月7日

#8 in #npy

Download history 101/week @ 2024-04-06 90/week @ 2024-04-13 23/week @ 2024-04-20 75/week @ 2024-04-27 84/week @ 2024-05-04 72/week @ 2024-05-11 193/week @ 2024-05-18 32/week @ 2024-05-25 140/week @ 2024-06-01 176/week @ 2024-06-08 272/week @ 2024-06-15 77/week @ 2024-06-22 6/week @ 2024-06-29 35/week @ 2024-07-06 39/week @ 2024-07-13 39/week @ 2024-07-20

每月120次下载
npy中使用

MIT许可证

5KB
72

npy-rs

crates.io version Documentation Build Status

Numpy格式 (*.npy) 序列化和反序列化。

NPY 是一种简单的二进制数据格式。它在一个头部中存储类型、形状和字节序信息,随后是一个平面二进制数据字段。该crate提供了一种简单、大多数情况下类型安全的读取和写入 *.npy 文件的方法。文件通过迭代器处理,因此不需要全部适合内存。

使用方法

要使用 npy-rs,必须在 Cargo.toml 中指定两个依赖项

npy = "0.4"
npy-derive = "0.4"

导入所有所需内容的典型方法

#[macro_use]
extern crate npy_derive;
extern crate npy;

npy-derive 依赖项仅适用于 结构化数组 序列化。

现在可以从 *.npy 文件导入数据

use npy::NpyData;

std::fs::File::open("data.npy").unwrap().read_to_end(&mut buf).unwrap();
let data: Vec<f64> = NpyData::from_bytes(&buf).unwrap().to_vec();

并将数据导出到 *.npy 文件

npy::to_file("data.npy", data).unwrap();

有关更多信息,请参阅文档

示例目录 中提供了几个使用示例;simple 示例展示了如何加载文件,roundtrip 展示了读取和写入。大型文件可以像在 large 示例中那样进行内存映射。

文档


lib.rs:

为结构实现 trait Serializable

使用这个包,只需要在结构体上使用 #[derive(Serializable)] 即可实现对其实例的序列化和反序列化。所有字段都必须实现 Serializable

依赖项

约2MB
约47K SLoC