skillfed

neo

Neo is a package for representing electrophysiology data in Python, together with support for reading a wide range of neurophysiology file formats

neo v0.14.5 126.4K downloads/30d#11,776 on PyPI362
Permissive license BSD-3-Clause Active released

What it is and what it does

Neo is a data representation layer for electrophysiology research, built on top of NumPy and the quantities package to add physical units and dimensional consistency to neural recording data. It defines a hierarchical object model (Block, Segment, ChannelIndex, Unit, etc.) that maps naturally to intracellular, extracellular, and multi-electrode recordings, and provides I/O support for both proprietary formats (Spike2, Plexon, Blackrock, Tdt, AlphaOmega, NeuroExplorer, Axon) and open formats like HDF5.

Neo is deliberately designed as a lightweight data container with no analysis or visualization functions—its role is to standardize how electrophysiology data is represented so that other tools (like Elephant for analysis, SpykeViewer for visualization, or PyNN for simulations) can work with a common object model. Data stored in Neo objects behave like NumPy arrays but carry metadata, enforce unit compatibility, and support automatic conversion between measurement scales.

Use it for:

  • Load multi-format neurophysiology recordings into a single standardized Python object for downstream analysis pipelines.
  • Convert between proprietary spike recording formats (Spike2, Plexon, Blackrock) to enable cross-platform data sharing.
  • Build analysis workflows that accept Neo data objects from multiple recording systems without format-specific parsing code.
  • Store electrophysiology data with physical units and dimensional metadata to prevent unit conversion errors in calculations.
  • Integrate electrophysiology data with simulation frameworks like PyNN that expect Neo-compatible data structures.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Neo provides a unified data model for representing electrophysiology and EEG data in Python, with built-in support for reading and writing multiple neurophysiology file formats including Spike2, NeuroExplorer, AlphaOmega, Axon, Blackrock, Plexon, and Tdt.

Yes. Neo is actively maintained, has no known security vulnerabilities, uses a permissive license, and is the de facto standard data model for electrophysiology in Python. Install it if you work with neural recordings, need to read multiple file formats, or want to integrate with other neuroscience tools that depend on Neo's object model.

Install

neo on PyPI

pip

pip install neo

uv

uv add neo

poetry

poetry add neo

Installing neo

Before you install

Installation is straightforward with low friction; the package has three runtime dependencies (packaging, numpy, quantities) and is actively maintained with a recent release within the last 50 days.

License in practice

BSD-3-Clause is permissive, allowing commercial use, modification, and distribution with minimal restrictions beyond retaining the license notice.

Quickstart

pip install neo

import neo
block = neo.Block(name="recording")
segment = neo.Segment(name="trial_1")
block.segments.append(segment)

Requires Python 3.10 or later; numpy and quantities packages must be installed as runtime dependencies.

Verify before relying

  • Whether the package supports reading and writing all listed formats equally well or if some are read-only.
  • Performance characteristics when working with large multi-electrode datasets.
  • Whether unit conversion and dimensional consistency checks have measurable overhead.

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 3 — packaging, numpy, quantities
Maintenance actively maintained — 50 days since the last release
Last repo commit
First released
Downloads 126,420/month — #11,776 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: neo-0.14.5-py3-none-any.whl

Development Status :: 4 - BetaIntended Audience :: Science/ResearchNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Scientific/Engineering

Tags

electrophysiology data formatneurophysiology file readerEEG data modelspike recording datamulti-electrode data structureneural data interchangebrain recording file formats
neuroscienceelectrophysiologydata-format

More Scientific/Engineering packages