Part I: Foundations
Chapter 1. Philosophy
- Abstract
- What Is Data Science?
- What Is Neural Data Science?
- How Is Neural Data Science Different From Computational Neuroscience?
- Data as Seen by Data Scientists Versus Data Seen by Neural Data Scientists
- What Is a Neural Data Scientist?
- Why Do I Need to be Able to Write Computer Code?
- What Is Neural Data?
- Can We Just Add “Neuro” to the Front of Anything?
- Why Python?
- Why MATLAB?
- Why Not C/C++/R/Julia/Haskill/Java/Javascript/OCaml/Perl/Pascal/Fortran/Ruby/Groovy/Scala/etc.?
- What Is Industrial Data Science? How Is It Different From Engineering?
Chapter 2. From 0 to 0.01
- Abstract
- What Is the Goal of This Chapter?
- How Do I Get Started Coding?
- What’s the Command Line? What’s the Environment?
- How Are Python and MATLAB Different?
- How Do I Display Something on the Screen?
- How Do I Do Arithmetic in Python or MATLAB?
- How Do I Input Exponents in Python and MATLAB?
- What Is the Role of Blank Space in Writing Code, If Any?
- What Is the Order of Operations in Python and MATLAB?
- What Are Functions?
- What Are Python Packages? What Are MATLAB Toolboxes? Are These Different From Libraries?
- How Do I Get Help?
- What Are Variables?
- How Can I Access or Display What Is Contained in a Given Variable?
- What Is “ans” in MATLAB?
- What Can We Call Our Variables?
- What Is a Vector? How Do I Store a Vector in POM?
- How Do I Calculate the Sum and Mean of All Values in a Vector?
- We Need to Talk About the Echo
- How Do I Calculate the Length of a Vector?
- What Are Matrices, What Are Arrays?
- Back to Vectors: How to Vectorize a Matrix?
- What Can We Do With All of This?
- The Find Function
- Adding Matrices and Dealing With Holes in Arrays
- What Is a Normal Distribution? How Do We Draw From One, How Do We Plot One With POM?
- How Do I Plot Something More Meaningful?
- How Do I Save What I’m Working On so That I Can Load It Again Later?
Part II: Neural Data Analysis
Chapter 3. Wrangling Spike Trains
- Abstract
- Questions We Did Not Address
Chapter 4. Correlating Spike Trains
Chapter 5. Analog Signals
Chapter 6. Biophysical Modeling
- Abstract
- Biophysical Properties of Neurons
- Modeling
- Why Use Simulations?
- Why Object-Oriented Programming?
- Python Is Inherently Object-Oriented: How Does MATLAB Implement These Things?
- Creating theclass Neuron
- Modeling the Response Properties of This Neuron
Part III: Going Beyond the Data
Chapter 7. Regression
- Abstract
- Describing the Relation Between Synaptic Potentials and Spikes
Chapter 8. Dimensionality Reduction
- Abstract
- Calculating the Covariance Matrix Between Variables
- Factor Extraction as an Axis Rotation
- Determining the Number of Factors
- Interpreting the Meaning of Factors
- Determining the Factor Values of the Original Variables
Chapter 9. Classification and Clustering
- Abstract
- Predictions, Validation, and Crossvalidation
- Clustering
Chapter 10. Web Scraping
- Abstract
- What Lies Beyond 1?
Appendix A. MATLAB to Python (Table of Equivalences)
- Comments
- Blankspace
- Loops
- Exponents
- Lists and Cells
- Indexing
- Importing Packages Versus Default Packages
- Random Number Generation
- Numerical Types
Appendix B. Frequently Made Mistakes
Appendix C. Practical Considerations, Technical Issues, Tips and Tricks
- Package Installation
- Python List Comprehensions
- Python Lists Versus Numpy Arrays
- Text Editors, The Command Line, How to Go between Sublime and the Terminal
- Python on Windows
- Jupyter: Using It and Its Great Functions
- The Biggest Differences Between Python 2 and 3
- Conventions in Python
- MATLAB Tips and Tricks
- Vectorization
- Practical Considerations
Glossary (Including Additional Python and MATLAB Packages and Examples)