跳过正文

Rust读取HDF5

·376 字·1 分钟·
Hiroi
作者
Hiroi
我大抵是变成一只🐀🐀了罢
Rust深度学习 - 这篇文章属于一个选集。
§ 2: 本文

安装依赖
#

首先,安装依赖

cargo add ndarray hdf5-metno

也可以直接在toml文件中添加

代码
#

use hdf5_metno::{File,Result};
use ndarray;

fn main() -> Result<()> {
    let file = File::open("data.hdf5")?;
    let ds = file.dataset("data")?;
    println!("shape: {:?}",ds.shape());
    println!("ndim: {}", ds.ndim());
    println!("size: {}",ds.size());
    let attribute = ds.attr_names()?;
    println!("attr: {:?}", attribute);
    
    let dtype: hdf5_metno::Datatype = ds.dtype()?;
    println!("dtype: {:?}", dtype.id());

    //这里的i32和Dim里的3分别对应数据的格式和维度数,其中3对应上面的ndim
    let info = ds.read::<i32, ndarray::Dim<[usize; 3]>>()?;
    println!("{:?}",info);

    Ok(())
}

输出
#

shape: [478, 12, 5000]
ndim: 3
size: 28680000
attr: []
dtype: 216172782113783908
[[[16, 8, 11, 13, 11, ..., 22, 26, 28, 22, 24],
  [19, 8, 4, 6, 15, ..., 30, 28, 32, 28, 24],
  [3, 0, -7, -7, 4, ..., 8, 2, 4, 6, 0],
  [-18, -8, -8, -10, -13, ..., -25, -26, -29, -24, -24],
  [7, 4, 9, 10, 4, ..., 7, 12, 12, 8, 12],
  ...,
  [-7, -10, -8, -6, -6, ..., -4, -6, -6, -7, -10],
  [1, -2, -1, 2, 2, ..., -1, -4, -3, -3, -7],
  [7, 3, 4, 6, 5, ..., 18, 15, 16, 16, 14],
  [17, 12, 13, 14, 13, ..., 36, 33, 33, 32, 31],
  [18, 13, 14, 15, 15, ..., 34, 34, 35, 34, 33]],

 ...,

 [[-23, -24, -27, -23, -20, ..., 16, 12, 13, 14, 14],
  [-16, -16, -17, -16, -15, ..., 17, 16, 12, 11, 13],
  [8, 9, 11, 8, 6, ..., 1, 5, 0, -2, -1],
  [21, 21, 23, 21, 19, ..., -15, -13, -11, -11, -13],
  [-15, -16, -18, -15, -12, ..., 8, 4, 7, 9, 8],
  ...,
  [-11, -13, -12, -11, -9, ..., 41, 42, 38, 30, 27],
  [53, 53, 55, 56, 55, ..., -5, -4, -9, -11, -12],
  [-9, -8, -7, -8, -9, ..., 21, 21, 20, 17, 19],
  [-8, -7, -6, -6, -6, ..., 28, 29, 29, 27, 28],
  [2, 3, 3, 2, 1, ..., 15, 16, 18, 15, 15]]], shape=[478, 12, 5000], strides=[60000, 5000, 1], layout=Cc (0x5), const ndim=3

参考
#

https://stackoverflow.com/questions/78163086/how-do-i-use-rust-to-read-a-hdf5-string-attribute-of-a-dataset-using-the-hdf5-ru

https://docs.rs/hdf5-metno/latest/hdf5_metno/

Rust深度学习 - 这篇文章属于一个选集。
§ 2: 本文