I already found this solution (using a view instead of a copy), but wondered if the storage of boolean as int8 was standard in numpy or could vary with architecture. @AlexandreAbraham gave me the answer: it is standard, and can be relied on. So I'll use view() everywhere I can, I may be able to get rid of the NislImage class this way. Thanks.