6

是否有在 java 中创建 npy 文件的库?

我正在寻找一种在 java 中编写大型矩阵的方法,以便使用 python 代码读取。

npy 似乎是一个不错的选择,因为它不会在 python 端添加额外的依赖项,并且格式已记录在案。

我考虑过 hdf5 格式,但对本机库的依赖使部署更加困难。

4

2 回答 2

10

我们不久前遇到了同样的问题,并在 Kotlin 中实现了 NPY 和NPZ格式作为npy库的一部分。

当前版本 (0.2.0) 有许多限制。具体不支持

  • 多维数组
  • 结构化数组
  • 无符号整数类型和其他一些

Java代码:

Path filePath = new File("my.npz").toPath();
int[] values = {1, 2, 3, 4, 5, 6};
int[] shape = {2, 3};
try (NpzFile.Writer writer = NpzFile.write(filePath, true)) {
    writer.write("my-entry", values, shape);
}

Maven依赖:

<dependency>
    <groupId>org.jetbrains.bio</groupId>
    <artifactId>npy</artifactId>
    <version>0.3.3</version>
</dependency>
于 2016-03-09T12:17:28.263 回答
2

我不认为有一个库可以做到这一点,但您可以查看规范,或者可能使用 matlab 格式作为中间体,似乎至少有一个 java 库:

http://www.mathworks.com/matlabcentral/fileexchange/10759-jmatio-matlabs-mat-file-io-in-java

我从来没有这样做过,但它可能对你有用,然后你可以通过以下方式阅读这些文件:

http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.loadmat.html

于 2013-09-10T19:53:15.807 回答