用于数据分析的 Kotlin 与 Java 库

From data collection to model building, Kotlin offers robust libraries facilitating different tasks in the data pipeline.

In addition to its own libraries, Kotlin is 100% interoperable with Java. This interoperability helps to leverage the entire ecosystem of tried-and-true Java libraries with excellent performance. With this perk, you can easily use either Kotlin or Java libraries when working on Kotlin data projects.

Kotlin libraries

Library Purpose Features
Kotlin DataFrame
  • Data collection
  • Data cleaning and processing
  • Operations for creating, sorting, and cleaning data frames, feature engineering, and more
  • Processing of structured data
  • Support for CSV, JSON, and other input formats
  • Reading from SQL databases
  • Connecting with different APIs to access data and increase type safety
Kandy
  • Data exploration and visualization
KotlinDL
  • Model building
  • Deep learning API written in Kotlin and inspired by Keras
  • Training deep learning models from scratch or importing existing Keras and ONNX models for inference
  • Transferring learning for tailoring existing pre-trained models to your tasks
  • Support for the Android platform
Multik
  • Data cleaning and processing
  • Model building
  • Mathematical operations over multidimensional arrays (linear algebra, statistics, arithmetics, and other calculations)
  • Creating, copying, indexing, slicing, and other array operations
  • Kotlin-idiomatic library with benefits such as type and dimension safety and swappable computational engines, running on the JVM or as native code
Kotlin for Apache Spark
  • Data collection
  • Data cleaning and processing
  • Data exploration and visualization
  • Model building
  • Layer of compatibility between Apache Spark and Kotlin
  • Apache Spark data transformation operations in Kotlin-idiomatic code
  • Simple usage of Kotlin features, such as data classes and lambda expressions, in curly braces or method reference
Lets-Plot
  • Data exploration and visualization
KMath
  • Data cleaning and processing
  • Data exploration and visualization
  • Model building
  • Modular library to work with mathematical abstractions in Kotlin Multiplatform (JVM, JS, Native, and Wasm)
  • APIs for algebraic structures, mathematical expressions, histograms, and streaming operations
  • Interchangeable wrappers over existing Java and Kotlin libraries, including ND4J, Apache Commons Math, and Multik
  • Inspired by Python's NumPy but with other additional features like type safety
kravis
  • Data exploration and visualization

Java libraries

Since Kotlin provides first-class interoperability with Java, you can use Java libraries for data tasks in your Kotlin code. Here are some examples of such libraries:

Library Purpose Features
Tablesaw
  • Data collection
  • Data cleaning and processing
  • Data exploration and visualization
  • Tools for loading, cleaning, transforming, filtering, and summarizing data
  • Inspired by Plot.ly
CoreNLP
  • Data cleaning and processing
  • Natural language processing toolkit
  • Linguistic annotations for text, such as sentiment and quote attributions
  • Support for eight languages
Smile
  • Data cleaning and processing
  • Data exploration and visualization
  • Model building
  • Ready-made algorithms for machine learning and natural language processing
  • Linear algebra, graph, interpolation, and visualization tools
  • Provides functional Kotlin API, Scala API, Clojure API, and more
Smile-NLP-kt
  • Data cleaning and processing
  • Kotlin rewrite of the Scala implicits for the natural language processing part of Smile
  • Operations in the format of Kotlin extension functions and interfaces
  • Sentence breaking, stemming, bag of words, and other tasks
ND4J
  • Data cleaning and processing
  • Model building
  • Matrix mathematics library for the JVM
  • Over 500 mathematical, linear algebra, and deep learning operations
Apache Commons Math
  • Data cleaning and processing
  • Model building
  • Mathematics and statistics operations for Java
  • Correlations, distributions, linear algebra, geometry, and other operations
  • Machine learning models
NM Dev
  • Data cleaning and processing
  • Model building
  • Java math library of numerical algorithms
  • Object-oriented numerical methods
  • Linear algebra, optimization, statistics, calculus, and more operations
Apache OpenNLP
  • Data cleaning and processing
  • Model building
  • Machine-learning-based toolkit for the processing of natural language text
  • Tokenization, sentence segmentation, part-of-speech tagging, and other tasks
  • Built-in tools for data modeling and model validation
Charts
  • Data exploration and visualization
  • JavaFX library for scientific charts
  • Complex charts, such as logarithmic, heatmap, and force-directed graph
DeepLearning4J
  • Model building
  • Deep learning library for Java
  • Importing and retraining models (Pytorch, Tensorflow, Keras)
  • Deploying in JVM microservice environments, mobile devices, IoT, and Apache Spark
OptaPlanner
  • Model building
  • Solver utility for optimization planning problems
  • Compatible with object-oriented and functional programming