The {grumpy} R package provides a way to read NumPy’s .npy files
into R. It supports a wide range of data types and array shapes.
As a file format generated by a Python package, .npy files are prime
candidates for using the {reticulate} package to read them into R.
However, using a Python package in R through {reticulate} comes with
downsides in terms of: - performance, since the data needs to be copied
across languages / sessions - flexibility, since reticulate makes
opinionated choices to work out of the box for most use cases -
robustness, since packages depending on reticulate need to risk breaking
changes in the python packages they now depend on, or need to provide an
environment via {basilisk}.
{grumpy}, on the other hand, is a pure R package with no dependency
and is performant, flexible. Overall, it is designed to be used deep in
the dependency graph of other packages.
For more details on the motivation and design principles underpinning
{grumpy}, see the dedicated vignette:
vignette("design", package = "grumpy").
You can install the released version of grumpy with:
install.packages("grumpy")and the development version like so:
# install.packages("pak")
pak::pak("Bisaloo/grumpy")library(grumpy)
read_npy(system.file("extdata", "test_2d.npy", package = "grumpy"))
#> [,1] [,2] [,3] [,4]
#> [1,] 0 3 6 9
#> [2,] 1 4 7 10
#> [3,] 2 5 8 11