8.2.4 用于数据分析的 Kotlin 与 Java 库
3 分钟阅读
原文链接: 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 | 模型构建 | 用于优化规划问题的求解器工具 兼容面向对象和函数式编程 |