[Neuroimaging] Nibabel API change - always read as float

bthirion bertrand.thirion at inria.fr
Mon Jul 6 21:15:20 CEST 2015

On 06/07/2015 18:37, Matthew Brett wrote:
> On Mon, Jul 6, 2015 at 5:32 PM, Bertrand Thirion
> <bertrand.thirion at inria.fr> wrote:
>> +1 we (and more importantly, our students)  should rely as much as possible
>> on the standard behavior of numpy arrays and make adequate decisions, rather
>> than having to figure out the details of the API of neuroimaging libraries.
>> So the defaut should be unchanged.
> Your reasoning implies the opposite.   Numpy tries very hard not to
> return arrays of unknown or unpredictable data types, and that is the
> situation we have here.   The returned datatype from a nibabel image
> is essentially arbitrary, in that very few sources of nifti files
> place any weight on whether there are non-default scalefactors or not.
> At the moment, we do, depend on this, silently, and that is extremely
> confusing, and quite contrary to the standard numpy way,
Sorry for being unclear, but Numpy would never force casting when 
loading data.

When you get some array, you need to be aware of what it is in order to 
work with it. A mask or label image is not meant to be something on 
which you perform algebraic manipulations. Sure, you can get it wrong if 
you don't know what you're doing, but either this user has to learn it 
or he/she should consider using higher level interfaces to work with images.


More information about the Neuroimaging mailing list