在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

高性能Java科学与技术运算库Colt

2017-2-7 13:38| 发布者: zhangjf| 查看: 464| 评论: 0

摘要: 在学习《Machine Learning in Action》和《NLTK Natural Language Processing with Python》的过程中,我真切地感受到Numpy库的便捷与强大,线性代数的数据结构与运算封装得浅显易懂。不过Numpy或者Python有两个很致 ...

高性能Java科学与技术运算库Colt

在学习《Machine Learning in Action》和《NLTK Natural Language Processing with Python》的过程中,我真切地感受到Numpy库的便捷与强大,线性代数的数据结构与运算封装得浅显易懂。不过Numpy或者Python有两个很致 命的缺点:①弱类型导致我无法看到深层对象中的注释。②运行效率无法满足生产需要。我在想Java平台上是否有比较成熟的数学库,类似于Numpy这样简 洁强大,同时又文档完整。没想到还真的有,在StackOverflow上有人问“Java equivalent for the Numpy multi-dimensional object”,得票最高的答案就是Colt。

Colt简介

Colt是一个高性能的数学库,由以下几个子库构成:

Colt库:基本的动态数组、稀疏矩阵、线性代数。

Jet库:数理统计、直方图。

CoreJava库:类printf的打印函数,并行计算。

文档

详细的文档在http://acs.lbl.gov/software/colt/api/overview-summary.html

实例

挑我急着用的矩阵来说:

  1. package com.hankcs;
  2. import cern.colt.matrix.DoubleMatrix2D;
  3. import cern.colt.matrix.impl.DenseDoubleMatrix2D;
  4. import cern.colt.matrix.linalg.Algebra;
  5. public class Main
  6. {
  7. public static void main(String[] args)
  8. {
  9. DoubleMatrix2D matrix;
  10. matrix = new DenseDoubleMatrix2D(3,4);
  11. //matrix = new SparseDoubleMatrix2D(3,4); // 稀疏矩阵
  12. //matrix = new RCDoubleMatrix2D(3,4); // 稀疏行压缩矩阵
  13. System.out.println("初始矩阵");
  14. System.out.println(matrix);
  15. System.out.println("填充");
  16. matrix.assign(new double[][]{{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}});
  17. System.out.println(matrix);
  18. System.out.println("转置");
  19. DoubleMatrix2D transpose = Algebra.DEFAULT.transpose(matrix);
  20. System.out.println(transpose);
  21. System.out.println("矩阵乘法");
  22. System.out.println(Algebra.DEFAULT.mult(matrix, transpose));
  23. }
  24. }
复制代码

输出:

  1. 初始矩阵
  2. 3 x 4 matrix
  3. 0 0 0 0
  4. 0 0 0 0
  5. 0 0 0 0
  6. 填充
  7. 3 x 4 matrix
  8. 1 2 3 4
  9. 5 6 7 8
  10. 9 10 11 12
  11. 转置
  12. 4 x 3 matrix
  13. 1 5 9
  14. 2 6 10
  15. 3 7 11
  16. 4 8 12
  17. 矩阵乘法
  18. 3 x 3 matrix
  19. 30 70 110
  20. 70 174 278
  21. 110 278 446
复制代码

由于Java不能重载运算符,所有的运算符都是通过一个类Algebra实现的。更多运算请参考 http://acs.lbl.gov/software/colt ... linalg/Algebra.html

来自: 码农场 ? 高性能Java科学与技术运算库Colt

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-9 02:01

Copyright 2015-2025 djqfx

返回顶部