Data science is the application of statistical analysis, machine learning, data visualization and programming to real-world data sources to bring understanding and insight to data-oriented problem domains.
F# is an excellent solution for programmatic data science as it combines efficient execution with powerful libraries and scalable data integration. Try F# has sections specific to data science.
Base Technologies for F# Data Science
- Maths and Statistics packages for F#
- Data Access packages for F#
- Data Charting and Visualization packages for F#
- Machine Learning tutorials for F#
- Cloud Programming for cloud-scalable data, compute and messaging frameworks and clients for F#.
Exploratory Data and Time Series Programming
Deedle is an easy-to-use, high quality package for data and time series manipulation and for scientific programming. It supports working with structured data frames, ordered and unordered data, as well as time series. Deedle is designed to work well for exploratory programming using F# and C# interactive console, but can be also used in efficient compiled .NET code.
If you are familiar with the Pandas library from Python or the ‘tseries’ or ‘zoo’ packages in R, then this package is for you.
Interoperability with Excel, R, Python, MATLAB and Mathematica
F# can integrate and interoperate with data-science systems such as Microsoft Excel, R, MATLAB, Mathematica and Python. See the sections below:
Many other resources are available for integrating F#, C# and .NET with these systems. If a resource specific to F# can’t be found, then search for C# instead and adjust the technique appropriately.
F# and Microsoft Excel
F# can be used in conjunction with Microsoft Excel in a number of interesting ways.
Integrating F# and Excel through FCell
FCell lets you dynamically create Excel Ribbon, Custom Task Panes, and UDFs in F#, C# and VB. FCell enables you to type F# directly into the spreadsheet and see your changes at a push of button. Code and DLLs are embedded into the workbook and can be emailed to end users as a single spreadsheet. Use all of the advanced F# features from Excel. For example, Async and Observables for non-blocking UDFs, WSDL Type Provider for a SOA backed Front Office, R Type Provider for Machine Learning, and the Hive Type Provider for Big Data.
Integrating F# and Excel through Excel-DNA
Excel-DNA is an independent project to integrate .NET into Excel. With Excel-DNA you can make native (.xll) add-ins for Excel using C#, Visual Basic.NET or F#, providing high-performance user-defined functions (UDFs), custom ribbon interfaces and more. Your entire add-in can be packed into a single .xll file requiring no installation or registration:
- Excel-DNA home pages
- Combining F# and Excel using Excel DNA
- Async and event-streaming Excel UDFs with F#
- Machine Learning with Excel: Combine the power of Excel, F# and R
Interoperating with Excel
F# can interoperate with Excel through existing Excel APIs. For example:
There are also some F# versions of Excel functions, useful when migrating code:
F# and R
- R Type Provider for F# - An F# type provider for higher-fidelity integration between F# and R
- R.NET - Core interoperability component used by the R Type Provider with some F# extensions.
F# and MATLAB
- MATLAB Type Provider for F# - An F# type provider for higher-fidelity integration between F# and MATLAB
- Integrating MATLAB with F# and C# - techniques to call MATLAB from C#, F# and other .NET languages
F# and Python
- Python for .NET - Allows Python to be integrated into F# and C# programs
F# and Mathematica
- Calling Mathematica from F# - techniques to call Mathematica from C#, F# and other .NET languages