当然!有两个选项可以做不同的事情,但是既能利用原始数据的定期网格性质。
第一个是scipy.ndimage.zoom.如果你只想通过内插原始数据生成一个更加密集的规则网格,那就是要走的路。
第二个是scipy.ndimage.map_coordinates.如果你想在你的数据中插入一些(或许多)任意点,但仍然利用原始数据的定期网格性质(例如,不需要四叉树),那就是去的方式。
作为一个快速示例(这将使用三次插值。对于双线性使用order = 1,对于最近等级使用order = 0):
import numpy as np
import scipy.ndimage as ndimage
data = np.arange(9).reshape(3,3)
print 'Original:\n', data
print 'Zoomed by 2x:\n', ndimage.zoom(data, 2)
这产生:
Original:
[[0 1 2]
[3 4 5]
[6 7 8]]
Zoomed by 2x:
[[0 0 1 1 2 2]
[1 1 1 2 2 3]
[2 2 3 3 4 4]
[4 4 5 5 6 6]
[5 6 6 7 7 7]
[6 6 7 7 8 8]]
这也适用于3D(和nD)数组。但是,请注意,如果以2x缩放,则可以沿着所有轴进行缩放。
data = np.arange(27).reshape(3,3,3)
print 'Original: