改进翻译

Kotlin 用于数据科学

From building data pipelines to productionizing machine learning models, Kotlin can be a great choice for working with data:

  • Kotlin is concise, readable and easy to learn.
  • Static typing and null safety help create reliable, maintainable code that is easy to troubleshoot.
  • Being a JVM language, Kotlin gives you great performance and an ability to leverage an entire ecosystem of tried and true Java libraries.

Interactive editors

Notebooks such as Jupyter Notebook and Apache Zeppelin provide convenient tools for data visualization and exploratory research. Kotlin integrates with these tools to help you explore data, share your findings with colleagues, or build up your data science and machine learning skills.

Jupyter Kotlin kernel

The Jupyter Notebook is an open-source web application that allows you to create and share documents (aka "notebooks") that can contain code, visualizations, and markdown text. Kotlin-jupyter is an open source project that brings Kotlin support to Jupyter Notebook.

Kotlin in Jupyter notebook

Check out Kotlin kernel's GitHub repo for installation instructions, documentation, and examples.

Zeppelin Kotlin interpreter

Apache Zeppelin is a popular web-based solution for interactive data analytics. It provides strong support for the Apache Spark cluster computing system, which is particularly useful for data engineering. Starting from version 0.9.0, Apache Zeppelin comes with bundled Kotlin interpreter.

Kotlin in Zeppelin notebook

Libraries

The ecosystem of libraries for data-related tasks created by the Kotlin community is rapidly expanding. Here are some libraries that you may find useful:

Kotlin 库

  • kotlin-statistics 是一个为探索性统计与生产统计中提供扩展函数的库。它支持基本的数字列表/序列/数组函数(从 sumskewness)、 切片操作符(诸如 countBysimpleRegressionBy)、分箱(binning)操作符、离散 PDF 采样、 朴素贝叶斯分类器、聚类、线性回归等等。

  • kmath 是一个受 NumPy 启发的库。 这个库支持代数结构与运算、类数组结构、数学表达式、直方图、 流运算、commons-mathkoma 的包装等等。

  • krangl 是一个受 R 语言的 dplyr 与 Python 的 pandas 启发的库。这个库提供了采用函数式风格 API 进行数据操作的功能;它还包括过滤、转换、聚合与重塑表格数据的函数。

  • lets-plot 是一个用 Kotlin 编写的统计数据绘图库。 Lets-Plot 是多平台的,不仅可以用于 JVM,还可以用于 JS 与 Python。

  • kravis 是另一个用于表格数据可视化的库,其灵感来自于 Python 的 ggplot

Java 库

因为 Kotlin 提供了与 Java 互操作的头等支持,所以也可以在用于数据科学的 Kotlin 代码中使用 Java 库。 以下是这些库的一些示例:

  • DeepLearning4J——一个 Java 深度学习库

  • ND4J——用于 JVM 的高效矩阵数学库

  • Dex——一个基于 Java 的数据可视化工具

  • Smile——一个全面的机器学习、自然语言处理、线性代数、图、插值与可视化系统。除了 Java API,Smile 还提供了函数式的 Kotlin API 以及 Scala 与 Clojure API。
    • Smile-NLP-kt——以 Kotlin 扩展函数与接口格式重写了 Smile 的自然语言处理部分的 Scala 隐式内容。
  • Apache Commons Math——一个 Java 通用数学、统计与机器学习库

  • OptaPlanner——一个用于优化规划问题的求解器实用程序

  • Charts——一个正在开发中的科学 JavaFX 图表库

  • CoreNLP——一个自然语言处理工具包

  • Apache Mahout——一个回归、聚类与推荐的分布式框架

  • Weka——一组用于数据挖掘任务的机器学习算法

如果这个列表还不能满足需求,可以在 Thomas Nield 的 Kotlin 数据科学资源摘要中找到更多选项。