| Title: | Read 'NumPy' '.npy' and '.npz' Files |
|---|---|
| Description: | Lightweight way to read 'NumPy' '.npy' and '.npz' files in R. All data types supported by 'NumPy', with all sizes (converted internally to R native size), both C and 'Fortran' order, and any shape, up to an arbitrary number of dimensions, are supported. |
| Authors: | Hugo Gruson [aut, cre, cph] (ORCID: <https://orcid.org/0000-0002-4094-1476>), Mike Smith [aut, cph] (Original author of portions of the C code migrated from the Rarr package), German Network for Bioinformatics Infrastructure - de.NBI [fnd] |
| Maintainer: | Hugo Gruson <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.1 |
| Built: | 2026-05-19 14:05:29 UTC |
| Source: | https://github.com/cran/grumpy |
This is a replacement for readBin() that can handle the various data types
and endianness specified in the .npy file header.
convert_bytes_to_array(bytes, what, shape, size, endian)convert_bytes_to_array(bytes, what, shape, size, endian)
bytes |
A raw vector containing the bytes to convert |
what |
A character specifying the base type to convert to (e.g., |
shape |
A numeric vector with desired shape of the output array |
size |
A numeric value with the number of bytes per element for the specified type |
endian |
The endianness of the data ( |
An R array containing the converted data, with the specified shape and data type.
x <- matrix(c(3L, 6L, 2L, 1L, 12L, 0L), nrow = 2, ncol = 3) x y <- writeBin(c(x), raw()) |> convert_bytes_to_array("int", shape = c(2L, 3L), size = 4L, endian = "little") y dim(y) is.array(y) storage.mode(y)x <- matrix(c(3L, 6L, 2L, 1L, 12L, 0L), nrow = 2, ncol = 3) x y <- writeBin(c(x), raw()) |> convert_bytes_to_array("int", shape = c(2L, 3L), size = 4L, endian = "little") y dim(y) is.array(y) storage.mode(y)
Parse a NumPy Array-protocol type strings
parse_npy_datatype(descr)parse_npy_datatype(descr)
descr |
A NumPy dtype description string, or a list of such strings fo structured dtypes |
A list containing the parsed data type information, including the base type, the number of bytes, and the endianness
parse_npy_datatype(">i8") parse_npy_datatype("|b1") parse_npy_datatype(list(c("r", "<i8"), c("g", "<i8"), c("b", "<i8")))parse_npy_datatype(">i8") parse_npy_datatype("|b1") parse_npy_datatype(list(c("r", "<i8"), c("g", "<i8"), c("b", "<i8")))
Read a .npy file
read_npy(file)read_npy(file)
file |
Path to the .npy file |
An array containing the data from the .npy file
read_npy( system.file("extdata", "test.npy", package = "grumpy") )read_npy( system.file("extdata", "test.npy", package = "grumpy") )
Read a .npz file
read_npz(file)read_npz(file)
file |
Path to the .npz file |
A list of arrays containing the data from the .npz file
read_npz( system.file("extdata", "test.npz", package = "grumpy") )read_npz( system.file("extdata", "test.npz", package = "grumpy") )