Additionally, I think there’s a lot of value in having a meta-package that re-exports everything needed to get a Matlab or SciPy-like experience. from scipy import *
is a terrible software engineering practice, but that doesn’t make it any less useful for exploratory work. I went through the Matlab docs and came up with the rough list below; I don’t think everything there necessarily belongs in Batteries.jl
, but it’s a start. I’m really not looking forward to resolving the swarm of namespace conflicts this’ll spit out.
Mathematics
Elementary math
- Primes.jl
- Combinatorics.jl
- Polynomials.jl
- DSP.jl
- SpecialFunctions.jl
- CoordinateTransformations.jl
- SpecialMatrices.jl
- MatrixDepot.jl
- Base.MathConstants
Linear algebra
- LinearAlgebra (stdlib)
Random numbers
- Random (stdlib)
Interpolation
- Interpolations.jl
- Dierckx.jl
- ScatteredInterpolation.jl
Optimization
- Optim.jl
- LsqFit.jl
Numerical integration and differential equations
- DifferentialEquations.jl
- QuadGK.jl
- ApproxFun.jl
Fourier analysis and filtering
- FFTW.jl
- DSP.jl
Sparse matrices
- SparseArrays (stdlib)
- IterativeSolvers.jl
Graphs
- LightGraphs.jl
- GraphPlot.jl
Computational geometry
- GeometricalPredicates.jl
- VoronoiDelaunay.jl
Graphics
- Plots.jl
- Luxor.jl
- Images.jl
- ImageView.jl
Data import and analysis
Data import and export
Text files
- DelimitedFiles (stdlib)
- CSV.jl
- CSVFiles.jl
Spreadsheets
- Too many options! Need a performance shootout.
- ExcelReaders.jl for raw arrays
- ExcelFiles.jl for use with DataFrames
- Taro.jl
- XLSX.jl
Images
- FileIO.jl
- ImageMagick.jl
Scientific data
- NetCDF.jl
- HDF5.jl
- FITSIO.jl
Audio and video
- FileIO.jl
- VideoIO.jl
- Still missing a convenient, portable video-writing interface
Low-level IO: files, streams, TCP/IP
Web access
- HTTP.jl
- FTPClient.jl
- SMTPClient.jl
- JSON.jl
Serial port devices
- SerialPorts.jl
Preprocessing data & descriptive statistics
- Missing values: in base! https://docs.julialang.org/en/latest/manual/missing/
- DataFrames.jl
- DataFramesMeta.jl
- StatsBase.jl
- Queryverse.jl
- Statistics (stdlib)
- Distributions.jl