备注:
这与其说是一个问题,不如说是一个贡献,因为我会回答我自己的问题,不过,我仍然对社会如何解决这个问题感兴趣,所以请随便回答。
故事:
因此,当我在Python中使用QT(即PySide6)和它的Volume渲染功能时,我注意到在设置数据数组时出现了一些问题。长话短说:我不知道(如果在QT文档中有说明的话)提供的纹理必须是每个维度都是2的幂的形状。
因此,我想将数组重新缩放为满足此条件的形状。
使用numpy计算此形状非常简单:new_shape = numpy.power(2, numpy.ceil(numpy.log2(old_shape))).astype(int)
现在剩下的唯一问题是将形状为old_shape
的数组重新缩放为形状为new_shape
的新数组,并正确地插入值。
由于我通常只对某种通用的方法感兴趣(谁知道这对谁有好处,谁知道将来对谁有好处),下面的问题确实出现了:
问题
如何通过适当的插值将old_shape
形状的任意Numpy NDArray调整为new shape
形状的Numpy NDArray?
我试着用Scipy RegularGridInterpolator来重新缩放我的数组,它确实起作用了。
1条答案
按热度按时间o2rvlv0m1#
我使用scipy的RegularGridInterpolator对数组进行插值。
其他插值器也应该可以工作。