8.2.4 用于数据分析的 Kotlin 与 Java 库

原文链接: https://kotlinlang.org/docs/data-analysis-libraries.html

8.2.4 用于数据分析的 Kotlin 与 Java 库

从数据收集到模型构建,Kotlin 提供了健壮的库来支持数据流水线中的各种任务。

除了自有的库之外,Kotlin 还能与 Java 100% 互操作。这种互操作性有助于利用整个经过验证、性能出色的 Java 库生态。有了这一优势,你在进行 Kotlin 数据项目时可以轻松使用 Kotlin 或 Java 库。

Kotlin 库

库用途特性
Kotlin DataFrame数据收集 数据清洗与处理创建、排序和清洗数据帧、特征工程等操作 处理结构化数据 支持 CSV、JSON 及其他输入格式 从 SQL 数据库读取 连接不同的 API 以访问数据并提升类型安全性
Kandy数据探索与可视化用于绘制各种类型图表的强大、可读且类型安全的 DSL 用 Kotlin 编写、面向 JVM 的开源库 支持 Datalore 与 Kotlin DataFrame 无缝集成
KotlinDL模型构建用 Kotlin 编写、受 Keras 启发的深度学习 API 从头训练深度学习模型,或导入已有的 Keras 与 ONNX 模型进行推理 迁移学习,把已有的预训练模型调整用于你的任务 支持 Android 平台
Multik数据清洗与处理 模型构建多维数组上的数学运算(线性代数、统计、算术及其他计算) 创建、复制、索引、切片及其他数组操作 符合 Kotlin 习惯的库,具备类型与维度安全、可替换计算引擎等优势,可运行在 JVM 上或作为原生代码运行
Kotlin for Apache Spark数据收集 数据清洗与处理 数据探索与可视化 模型构建Apache Spark 与 Kotlin 之间的兼容层 以符合 Kotlin 习惯的代码执行 Apache Spark 数据转换操作 简单使用 Kotlin 特性,例如数据类,以及在花括号或方法引用中使用 lambda 表达式
Lets-Plot数据探索与可视化用 Kotlin 编写的统计数据绘图 支持 Datalore 兼容 JVM、JS 和 Python 在 Compose Multiplatform 应用中嵌入图表
KMath数据清洗与处理 数据探索与可视化 模型构建在 Kotlin Multiplatform(JVM、JS、Native 和 Wasm)中处理数学抽象的模块化库 用于代数结构、数学表达式、直方图和流式操作的 API 对现有 Java 和 Kotlin 库的可替换封装,包括 ND4J、Apache Commons Math 和 Multik 受 Python 的 NumPy 启发,但增加了类型安全等其他特性
kravis数据探索与可视化表格数据的可视化 受 R 的 ggplot 启发

Java 库

由于 Kotlin 提供与 Java 的第一类互操作性,你可以在 Kotlin 代码中使用 Java 库来完成数据任务。下面是一些此类库的示例:

库用途特性
Tablesaw数据收集 数据清洗与处理 数据探索与可视化用于加载、清洗、转换、过滤和汇总数据的工具 受 Plot.ly 启发
CoreNLP数据清洗与处理自然语言处理工具包 对文本进行语言学标注,例如情感和引语归属 支持八种语言
Smile数据清洗与处理 数据探索与可视化 模型构建用于机器学习和自然语言处理的现成算法 线性代数、图、插值和可视化工具 提供函数式的 Kotlin API、Scala API、Clojure API 等
Smile-NLP-kt数据清洗与处理对 Smile 自然语言处理部分中 Scala 隐式转换的 Kotlin 重写 以 Kotlin 扩展函数和接口的形式提供的操作 分句、词干提取、词袋等任务
ND4J数据清洗与处理 模型构建面向 JVM 的矩阵数学库 500 多种数学、线性代数和深度学习操作
Apache Commons Math数据清洗与处理 模型构建面向 Java 的数学与统计操作 相关性、分布、线性代数、几何及其他操作 机器学习模型
NM Dev数据清洗与处理 模型构建数值算法的 Java 数学库 面向对象的数值方法 线性代数、优化、统计、微积分及更多操作
Apache OpenNLP数据清洗与处理 模型构建基于机器学习的自然语言文本处理工具包 分词、断句、词性标注及其他任务 用于数据建模和模型验证的内置工具
Charts数据探索与可视化用于科学图表的 JavaFX 库 复杂图表,例如对数图、热力图和力导向图
DeepLearning4J模型构建面向 Java 的深度学习库 导入并重新训练模型(Pytorch、Tensorflow、Keras) 部署到 JVM 微服务环境、移动设备、IoT 和 Apache Spark
Timefold模型构建用于优化规划问题的求解器工具 兼容面向对象和函数式编程