# Into four dimensionsΒΆ

Download the 4D image file `ds114_sub009_t2r1.nii`

to your working directory.

Start at the IPython console. We recommend you begin your IPython console session with these standard lines:

```
# Compatibility with Python 3
from __future__ import print_function, division
# Interactive graphs for matplotlib at the IPython prompt
%matplotlib
# Standard imports of libraries
import numpy as np
import matplotlib.pyplot as plt
```

`ds114_sub009_t2r1.nii`

is a four-dimensional (X, Y, Z, t) BOLD image.

Import the `nibabel`

module, and load the image with nibabel to create an
image object.

```
# Load image object using nibabel
```

In the usual way get the array data from this image. What is the image shape?

```
# Get image array data from image object
```

Select the 1st volume (time index 0) from 4D image data array, by slicing over the last dimension. What shape is it?

```
# Get the 1st volume and show shape
```

Use matplotlib to show the central slice over the third dimension:

```
# Matplotlib display of the center slice, slicing over the 3rd dimension
```

Get the standard deviation across all voxels in the 3D volume (the first volume):

```
# Standard deviation across all voxels for 1st volume
```

Now get the second 3D volume in the 4D time series.

Plot the center slice (slicing over the third dimension). Show the standard deviation.

```
# Get the second 3D volume.
# Show the central slice (over the 3rd dimension).
# Get the standard deviation across all voxels
```

Do the same for the third volume in the 4D time series:

```
# Get the second 3D volume.
# Show the central slice (over the 3rd dimension).
# Get the standard deviation across all voxels
```

Loop over all volumes in the 4D image and store the standard deviation for each volume in a list. Plot these standard deviation values to see if there are any volumes with particularly unusual standard deviation.

```
# Get standard deviation for each volume; then plot the values
```