I need to downsample a 2D numpy array by a non-integer factor (e.g. 100x100 array to a 45x45 array) in a way that performs local averaging, just like Photoshop/gimp would do that for an image. I need double precision. Current options can't do it well.
scipy.ndimage.zoomdoes not perform averaging, and basically uses nearest-neighbor sampling (see previous question scipy.ndimage.interpolation.zoom uses nearest-neighbor-like algorithm for scaling-down )scipy.misc.imresizeconverts an array to an int8; I need more precision and floating pointskimage.transform.rescalealso uses nearest-neighbor and forwards you toskimage.transform.downscale_local_meanfor local averaging,skimage.transform.downscale_local_meancan only perform integer scaling factor (and pads image with zeros if the factor is non-integer). Integer scaling factor is a trivial numpy excersice.
Did I miss any other options?