Sorry, looks like resize() doesn’t handle extra dimensions the way I thought. Bit of a hack, but you can fold the batch dimension into the channel dimension:
data = data.transpose((1, 2, 3, 0)) 
data = resize(data.reshape(32, 32, -1), (28, 28)) 
data = data.reshape(28, 28, 3, -1)
data = data.transpose((3, 0, 1, 2))

This doesn’t give me any errors when I try it with a random array (but you may want to plot of few images to make sure nothing gets messed up).