Useful packages
Flux.jl Machine learning API which includes built-in layers, activation and loss functions, as well as optimization routines.
MLUtils.jl An extensible interface for handling data with data loaders, resampling, train/test splits, data partitioning, and more data handling utilities.
Plots.jl High-level visualization interface and toolset combining multiple plotting backends into a single API. For more specific needs also check out Makie.jl. Additional course material is available here.
Distributions.jl Everything related to probabilistic distributions. Part of the JuliaStats organization which is dedicated to providing high-quality packages for statistics.
Optim.jl Uni- and multivariate optimization library. The Optimization.jl package provides a unified Julia API by bringing together multiple optimization packages.
LoopVectorization.jl Provides the
@turbo
macro which tries to vectorize afor
loop or broadcast statement. Leads to improved runtime performance if used correctly. Leads to death and destruction if not used correctly so be really careful when using it.Documenter.jl Combine Markdown files with inline docstrings to render a single inter-linked document. See also Reporting.
Pluto.jl Simple browser-based Julia programming environment with built-in package manager. Add some interactivity by combining reactivity and input widgets like sliders, buttons, etc. using PlutoUI.jl. See also Reporting.
DataFrames.jl Handle any kind of tabular data in Julia. Its design and functionality are similar to those of pandas in Python. See also Data Management.
ProgressMeter.jl Track the status of long-running operations in Julia with a progress bar.
JLD2.jl An efficient data format for serializing Julia objects similar to HDF5.
Infiltrator.jl Set breakpoints in your code dropping you into an interactive REPL session.
Debugger.jl Enter and step through functions in debugging mode.