Data Science, Scripting and Notebooks
Type providers for JSON/CSV/XML/HTML Data frames and time series Plotly.NET, XPlot FSharp.Stats, MathNet.Numerics Statistics, linear algebra
ML.NET, TorchSharp, DiffSharp Curated data science stack and docs Spark.NET Big data (community-maintained)
Scripting: .fsx files with #r "nuget:" make F# an excellent scripting and automation language (CI scripts, data munging, tooling).
// Polyglot Notebooks / Jupyter: #!fsharp cells, #r "nuget: ..." directives
#r "nuget: Deedle"
#r "nuget: Plotly.NET"
#r "nuget: FSharp.Stats"
open Deedle
open Plotly.NET
let df = Frame.ReadCsv "sales.csv"
let byRegion = df |> Frame.groupRowsByString "Region"
let amounts: Series<int, float> = df.GetColumn "Amount"
let avg = Stats.mean amounts
Chart.Column([ "North", 120.0; "South", 80.0; "East", 150.0 ])
|> Chart.withTitle "Sales by Region"
|> Chart.show
// Statistics and ML
open FSharp.Stats
let data = [| 2.0; 4.0; 4.0; 5.0; 7.0 |]
Seq.mean data, Seq.stDev data
// ML.NET (Microsoft.ML) from F#, DiffSharp (differentiable programming), TorchSharp (PyTorch bindings)