Functions can be divided into four broad classes, according to two sets of criteria.
First, some functions operate on single voxels, and others operate on a ``hyperslab'' of data, which may be of any size and dimensionality up to the full file size.
Second, some functions read or write ``raw'' or ``voxel'' data, while others operate on ``real'' data. Real data is data which has been scaled according to the image's voxel and real ranges.
In general it is much more efficient to read and write a file in large chunks than in individual voxels, so if speed is important to your application it is best to avoid use of the single-voxel functions.