如何使用非整数步长修改 numpy 数组的大小?那是: 要将大小为 (64,64,64) 的 3D 数组转换为大小为 (55,100,60) 的 3D 数组,请插入值或使用 kron 函数之类的东西
最佳答案
你想如何插值?
没有“最佳”、“正确”或“正常”的数据插值方法...这完全取决于您的问题。
有很多不同的方法可以满足您的需求。
起点是 scipy.ndimage.zoom
它可以使用样条插值、线性插值或最近邻插值,并且完全满足您的要求。
指定 order=0
将给出最近邻插值,order=1
将给出线性插值,任何大于 1 的值将给出指定的样条插值顺序。 (默认为 order=3
,即“三次样条”插值。)
在你的情况下,它将是:
new = zoom(data, (55/64.0, 100/64.0, 60/64.0), order=typeofinterpolationyouwant)
您还需要考虑如何处理边界。默认情况下,将原始数组之外的任何值视为 0。使用样条插值,这通常会导致数组边缘附近出现强烈的伪影。
关于python - 使用 numpy 中的小数步长调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9990084/