One of the strengths of Python is the availabilty of modules which add a variety of features and methods.
There are a few ways to install modules, but two main methods are:
pip install -U [module] # install and/or update
Or..
conda install [module] # if not installed
conda update [module]
where [module]
is the name of the module. In general, the links below are to documentation for modules.
- pint - unit conversion
- numpy - numeric python - base of almost everything in the Python for science “stack"
- scipy - scientific data analysis tools, including integration, optimization, signal analysis, filtering, etc.
- pandas - manipulate data tables / spreadsheets
- sympy - symbolic math manipulation
(to be honest, this grows endlessly)
- matplotlib - common plotting library
- seaborn (builds on top of matplotlib)
- plotly - interactive plots
- bokeh - interactive plots
- statsmodels - linear regression, including robust regression
- scikit-learn
- pytorch - machine learning toolkit
- keras - high level interface for machine learning (e.g. TensorFlow)
- TensorFlow - machine learning toolkit
- GPyTorch - Gaussian Process Regression / Bayesian Optimization / Adaptive Experimentation
- Pyjanitor - clean up data sets
- py3dmol - interactive visualization in Jupyter
- rampy - process Raman / IR / XAS spectra including background correction
- NMRglue - NMR data analysis
- pubchempy - access data from PubChem
- cclib - read useful data from quantum chemistry files
- openbabel - read / write / cheminformatics
- rdkit - cheminformatics / molecular fingerprints / descriptors
- openmm - molecular dynamics
- mdanalysis - analysis of MD simulations
- Biopython - computational bio and bioinformatics
- BeautifulSoup - scrape data from the web
- scikit-image - image manipulation & analysis (e.g., particle counting, size, etc.)
- Atomic Simulation Environment - Tools to run and analyze atomic materials calculations
- pymatgen - materials science in Python
- matgenb - Example notebooks for the Materials Virtual Lab