Java 相当于 Numpy 多维对象

2022-09-01 18:56:06

使用一段时间后,我真的很喜欢Numpy多维数组。使用简洁但可读且相当通用的代码编写算法是有帮助的。我希望在Java中拥有同样的东西。在我自己用类似Numpy的API编写多维数组之前,已经有这样的事情了吗?

[附言]我搜索了一下,没有看到


答案 1

OP来自2011年。因此,截至2015年底,我想提一下,镇上有一个新孩子声称自己对java ->nd4j很感兴趣。好消息是,nd4j是不同库(如blas)之上的抽象层。根据矩阵的大小,底层实现的速度是numpy或jblas的两倍。而且您的代码是独立于平台的。


答案 2

函数库Vectorzhttps://github.com/mikera/vectorz)提供了一个功能齐全的NDArray,其功能与Numpy的NDArray大致等效,即它提供了丰富的功能:

  • 数值的任意 N 维数组(在本例中为 Java 双精度值)
  • 使用跨步访问实现高效切片的轻量级视图
  • 广泛的数学运算和高效的实现

它也非常快:对于大多数操作,它比NumPy快得多,尽管对于某些大型矩阵操作,NumPy可能仍然更快,因为它使用本机BLAS库来加速这些操作。

下面是 NDArray 类本身:

https://github.com/mikera/vectorz/blob/develop/src/main/java/mikera/arrayz/NDArray.java

免责声明:我是Vectorz的作者


推荐