NB. I was sent this book as a review copy.

From Princeton University Press

I initially presumed that this book would begin with a relatively advanced level of coding knowledge before delving into neuroimaging. However, its broader scope makes it a far better and more thorough resource. In fact, coding discussions start only after the first 50 pages. The initial 50 pages provide a superb introduction to the prerequisites for Python coding. Two particularly notable areas, unusual for books of this type, are the in-depth introductions to version control (Git) and computational environments and containers (Conda and Docker). Such topics are often omitted from introductory coding books, leading to significant challenges for students with some coding experience. For example, many students end up reinstalling Linux due to not setting up a virtual environment, indicative of the widespread lack of awareness among those with intermediate coding knowledge. Moreover, in-depth discussion of version control is rare in books focusing on specific applied data science topics. These preliminary sections include detailed explanations and exercises.

Following this section, approximately 50 pages are devoted to basic Python, swiftly progressing to discussions on classes. Again, I think that this is done superbly. These 30 pages or so sufficiently cover all the basics of Python one needs to know. Another 30 pages are dedicated to debugging, testing, and creating user-friendly code, topics that are frequently overlooked.

Having taken the student to a proficient level in the basics, various libraries are introduced which will be used later in the book: Numpy, Pandas and Matplotlib.

While experienced Python users in scientific computing might find this familiar, I believe newcomers to coding would greatly benefit from this section as a masterclass in becoming skilled, coherent Python programmers, regardless of the neuroimaging content that follows.

The book’s second half focuses on neuroimaging analysis in Python, specifically MRI images. It begins with essential image processing techniques for MRI data analysis, from registration to segmentation, followed by a well-written, albeit limited, introduction to machine learning using Scikit-learn for classical ML and Keras for deep learning. It’s actually remarkable how coherent the narrative in the book is. Guiding a reader from basic concepts to conducting MRI analysis using deep learning is impressive. The exercises progressively increase in complexity, culminating in the application of convolutional neural networks to data from the Autism Brain Imaging Data Exchange II for classification tasks that necessitate the implementation of regularization techniques to prevent overfitting.

I would absolutely recommend this book, not just for those wanting to do neuroimagining analyses, but for anyone who wants to do any serious scientific computing using Python. The well-selected exercises ensure that both undergraduate and graduate students will find engaging and thorough learning experiences throughout this book.

How clear is this post?