博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高性能Java科学与技术运算库Colt
阅读量:6858 次
发布时间:2019-06-26

本文共 1719 字,大约阅读时间需要 5 分钟。

  在学习《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

  实例

  挑我急着用的矩阵来说:

  package com.hankcs;

  import cern.colt.matrix.DoubleMatrix2D;

  import cern.colt.matrix.impl.DenseDoubleMatrix2D;

  import cern.colt.matrix.linalg.Algebra;

  public class Main

  {

  public static void main(String[] args)

  {

  DoubleMatrix2D matrix;

  matrix = new DenseDoubleMatrix2D(3,4);

  //matrix = new SparseDoubleMatrix2D(3,4); // 稀疏矩阵

  //matrix = new RCDoubleMatrix2D(3,4); //

  System.out.println("初始矩阵");

  System.out.println(matrix);

  System.out.println("填充");

  matrix.assign(new double[][]{

{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}});

  System.out.println(matrix);

  System.out.println("转置");

  DoubleMatrix2D transpose = Algebra.DEFAULT.transpose(matrix);

  System.out.println(transpose);

  System.out.println("矩阵乘法");

  System.out.println(Algebra.DEFAULT.mult(matrix, transpose));

  }

  }

  复制代码

  输出:

  初始矩阵

  3 x 4 matrix

  0 0 0 0

  0 0 0 0

  0 0 0 0

  填充

  3 x 4 matrix

  1 2 3 4

  5 6 7 8

  9 10 11 12

  转置

  4 x 3 matrix

  1 5 9

  2 6 10

  3 7 11

  4 8 12

  矩阵乘法

  3 x 3 matrix

  30 70 110

  70 174 278

  110 278 446

  复制代码

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

转载于:https://www.cnblogs.com/anjijiji/p/6370521.html

你可能感兴趣的文章
linux异步IO--aio
查看>>
Installing Hyperledger Fabric v1.1 on Ubuntu 16.04 — Part I
查看>>
sql--CONVERT、FOR XML PATH解决实际问题
查看>>
WPF - 模板查看工具:Show Me The Template及如何查看第三方主题
查看>>
Unix lrzsz命令 上传本地文件到服务器 / 发送文件到客户端
查看>>
JQuery -- this 和 $(this) 的区别
查看>>
PostgreSQL 连接问题 FATAL: no pg_hba.conf entry for host
查看>>
Android 6.0运行时权限第三方库的使用-----RxPermissions
查看>>
leetcode 100. Same Tree
查看>>
搜狗拼音输入法 V9.1.0.2589 最新去广告精简优化版
查看>>
Centos7.4和Ubuntu18.04安装PHP7.2
查看>>
25岁,可能是人生最尴尬的一个年龄
查看>>
dotnet core 开发无缝兼容Http和Websocket协议的接口服务
查看>>
对啊英语音标---四、双元音常见的字母发音组合有哪些
查看>>
Resource 定位、BeanDefinition 的载入和解析,BeanDefinition 注册。
查看>>
PHP模拟登录发送闪存
查看>>
com.sun.mirror的jar包
查看>>
非常详尽的 Shiro 架构解析
查看>>
负载均衡获得真实源IP的6种方法 【转】
查看>>
Windows远程协助相关汇总
查看>>