Scala有一个好的数学/统计资料库吗?[关闭]


88

我正在寻找一个用于scala的良好的开源库,用于数学和统计。希望像Apache Math或Colt之类的东西,但是在Scala中实现。

谁能指出我正确的方向?


4
这可能有助于解释您为什么要追求在Scala中实现的库,而不是仅仅从Scala可用的库。
retronym 2012年

实际上,我开始使用commons.apache.org/proper/commons-math,它易于使用并且在Scala中可以正常工作。
tom10271 '18

Answers:


147

是的有一些:

Scalalab

ScalaLab项目旨在为Java虚拟机提供高效的科学编程环境。该脚本语言基于Scala编程语言,该语言经过高级科学操作员的增强,并具有提供类似于Matlab的工作风格的集成环境。

脚本代码非常快,接近Java(有时更慢,有时更快),并且通常比等效的Matlab .m脚本快!

Scalala现在被Breeze取代

用于Scala的高性能数字线性代数库,在矢量和矩阵上具有丰富的类似于Matlab的运算符;数值例程库;支持绘图。

工厂

FACTORIE是用于可部署概率建模的工具包,在Scala中作为软件库实现。它为用户提供了简洁的语言来创建关系因子图,估计参数和进行推理。

卡索夫里

通过twitter进行图处理:

Cassovary从头开始设计,可有效处理数十亿条边的图形。它带有一些常见的节点和图形数据结构以及遍历算法。典型用法是进行大规模图形挖掘和分析。

在Twitter上,Cassovary形成了堆栈的最底层,我们用它来推动许多基于图形的功能,包括“ Who to Follow”和“ Similar to”。我们还将它用于Twitter搜索中的相关性以及确定用户将看到哪些“推荐产品”的算法。随着时间的推移,我们希望将某些产品功能中的更多非专有逻辑引入到Cassovary中。

代鸟

Twitter的抽象代数库:

代码针对于构建聚合系统(通过Scalding或Storm)。它最初是作为Scalding的Matrix API的一部分开发的,其中矩阵的值是Monoids,Groups或Rings的元素。随后,很明显,该代码在Scalding和Twitter的其他项目中具有更广泛的应用。

scala_prob

!具有实验地位!

sb_probdsl使用scala的新定界延续支持提供简单的离散概率编程支持。

马拉科夫

用于Scala的Markov Chain库

马尔可夫链表示随机过程,其中下一步骤的概率分布不仅仅取决于当前步骤,但不取决于先前的步骤。给该库一些训练数据,它将生成在统计上类似于它的新随机数据。

信号收集

Signal / Collect是用于大规模图形处理的编程模型和框架。该模型具有足够的表现力,可以在图形上简洁地制定许多迭代和数据流算法,同时允许框架透明地并行处理。

灰熊数学

包括统计和实用程序包。包含非常基本和众所周知的内容,例如means std ...

概率单子:

虽然它不是库,但可以帮助您处理概率。


4
您可以在此处查看
om-nom-nom

15
还有一个SaddleSaddle是Scala的数据操作库,它提供了数组支持的,索引的一维和二维数据结构,这些数据结构明智地专门针对JVM原语,以避免装箱和拆箱的开销。
om-nom-nom

3
om-nom-nom,您应该提出Saddle的答案。+1
metasim

1
@SimeonFitch我正在等待一点空闲时间,仔细研究一下鞍座,也许写一些比上面摘录更多的东西。
om-nom-nom

1
@ om-nom-nom:您的链接不再起作用。
Pravesh Jain


1

尖塔

Spire是Scala的数字库,旨在通用,快速且精确。

利用特殊化,宏,类型类和隐式等功能,Spire努力克服有关性能和精度折衷的传统知识。一个主要目标是允许开发人员编写有效的数字代码,而不必“接受”特定的数字表示形式。在大多数情况下,使用Spire专用类型类的通用实现与相应的直接实现具有相同的性能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.