A lot of these I already know, but I thought it would be useful to have a list of not only libraries I need to learn, but their importance in doing so.

I know a lot of these libraries already, but I like writing down references anyway so…

Main Checklist for Reference Notes

Math:

Stats:

Comp Neuro: https://neuralensemble.org/


ChatGPT Generated

Computational Neuroscience

LibraryWhy You Need It
Brian2THE simulator for spiking neural networks — fast, very Pythonic, fantastic for experimenting with neuron models.
NEURON + LFPyIf you need detailed, biologically-realistic neuron modeling (ion channels, dendrites, etc.) — used in “heavy” neuroscience papers.
NESTLarge-scale spiking neural network simulations. Good if you’re scaling up to networks of thousands/millions of neurons.
ElephantData analysis for neuroscience (spike trains, time series, STA, etc.). Works well with Neo.
NeoData structures for electrophysiology data (standardizes how spikes, events, analog signals, etc. are stored).
BindsNETDeep learning + spiking neural network toolkit. If you want SNNs and ML connections.
PyNNAbstraction layer to write one code that can run on Brian2, NEST, NEURON, etc.

Math / Numerical Methods

LibraryWhy You Need It
NumPyObviously. Vectorized arrays, linear algebra, basic numerics.
SciPySignal processing, integration, ODE solvers, optimization — especially important for modeling neurons and systems.
SymPySymbolic math (algebra, calculus, solving equations symbolically). Useful for deriving equations before coding.
JAXIf you want autograd (automatic differentiation) and insane speedups with GPU/TPU acceleration for numerical work.
mpmathArbitrary-precision math. Helps if you need very high precision (rare but sometimes essential).
CVXPYConvex optimization modeling, if you’re solving optimization problems (important for fitting models, control theory, etc.)

Data and Visualization

LibraryWhy You Need It
PandasEssential for managing experimental data, behavioral recordings, trial logs, spike data, etc.
Matplotlib (with mpl_toolkits for 3D)Standard, but flexible enough if you get good with it (not just basic plots).
SeabornStatistical data visualization built on top of matplotlib. Very clean for correlation matrices, kernel density plots, etc.
PlotlyIf you need interactive 2D/3D plots (like dragging around brain activity plots).
h5pyReading and writing .h5 (HDF5) files. Essential when datasets get too big for CSVs and small formats.
scikit-learnStandard ML algorithms and preprocessing — not for big models, but awesome for exploratory data work (e.g., PCA, clustering neural activity).
xarrayMultidimensional labeled arrays — great for managing very high-dimensional simulations, like time × space × neurons × trials.
PyTablesAdvanced handling of very large datasets stored in HDF5 format.

🔥 Bonus (Power Tools You Might Not Know)

LibraryWhy You Need It
Better package management than pip/conda for scientific projects.
NumbaJust-in-time (JIT) compiler for speeding up inner loops that can’t be vectorized.
daskParallelize data operations when your data doesn’t fit in memory (and way easier than pure multiprocessing).
NetworkXGraph theory, essential if you’re modeling brain connectivity as a network (very common).
PyMC / ArviZBayesian modeling, probabilistic programming. Crucial for uncertainty quantification.
OpenAI Gym / PettingZooIf you later branch into neural control tasks, simulations of environments are here.
Scikit-imageFor analysis if you’re working with microscopy or brain imaging data.
statsmodelsAdvanced statistical tests and models, beyond what scikit-learn usually covers.

If you only want a “working core” you can expand later:

  • numpy, scipy, matplotlib, pandas

  • brian2, neo, elephant

  • sympy, jax

  • seaborn, h5py, scikit-learn

  • dask (for larger data)


General

RankLibraryPrimary Use CaseLearning Source
1NumPyScientific Computingdocumentation
2PandasData Analysisdocumentation
3MatplotlibData Visualizationdocumentation
4SciPyScientific Computing
5Scikit-learnMachine Learning
6TensorFlowMachine Learning/AI
7KerasMachine Learning/AI
8PyTorchMachine Learning/AI
9FlaskWeb Development
10DjangoWeb Development
11RequestsHTTP for Humans
12BeautifulSoupWeb Scraping
13SeleniumWeb Testing/Automation
14PyGameGame Development
15SymPySymbolic Mathematics
16PillowImage Processing
17SQLAlchemyDatabase Access
18PlotlyInteractive Visualization
19DashWeb Applications
20JupyterInteractive Computing
21FastAPIWeb APIs
22PySparkBig Data Processing
23NLTKNatural Language Processing
24spaCyNatural Language Processing
25TornadoWeb Development
26StreamlitData Apps
27BokehData Visualization
28PyTestTesting Framework
29CeleryTask Queuing
30GunicornWSGI HTTP Server

Neuroscience Tools

  • Nengo - Library for creating and simulating large-scale brain models.
  • Nitime - Timeseries analysis for neuroscience data.
  • Nilearn - Module for performing statistical learning/machine learning on NeuroImaging data.
  • DIPY - Toolbox for analysis of MR diffusion imaging.
  • MNE-Python - Community-driven software for processing time-resolved neural signals including electroencephalography (EEG) and magnetoencephalography (MEG).
  • NiBabel - Provides read and write access to some common medical and neuroimaging file formats.
  • PsychoPy - Package for running psychology and neuroscience experiments. It allows for creating psychology stimuli in Python.
  • NuPic - Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex.
  • Brian2 - Free, open source simulator for spiking neural networks.
  • expyriment - Platform-independent lightweight Python library for designing and conducting timing-critical behavioural and neuroimaging experiments.
  • BindsNET - Package for simulating spiking neural networks for reinforcement & machine learning.
  • SpikeInterface - Framework designed to unify spike-sorting technologies
  • NiMARE - NiMARE is a Python package for neuroimaging meta-analyses