this is a result of the downcast (and the fact that the results happen to be ints), try passing `downcast=False` when you are transposing so it doesn't downcast the resulting array (so results will basically always be floats). No easy way around this. 