我有一个矩阵列表,其中一些的高度(.shape[0])比其他的要大,我想让它们都处于相同的高度。所以我想找到最大矩阵的高度,然后用差值填充其余矩阵,使 amtrix 的内容保持在中间。(如果差异甚至没有,那么添加到底部比顶部多一行。这是我到目前为止的代码:
def equalize_heights(matrices,maxHeight):
newMatrices = []
matricesNum = len(matrices)
for i in xrange(matricesNum):
matrixHeight = matrices[i].shape[0]
if (matrixHeight == maxHeight):
newMatrices.append(matrices[i])
else:
addToTop = (maxHeight-matrixHeight)/2
addToBottom = (maxHeight-matrixHeight)/2 +((maxHeight-matrixHeight)%2)
现在,没有最大矩阵那么高的矩阵应该将“addToTop”行添加到矩阵顶部(行填充为 0)和“addToBottom”行添加到底部。
我想我应该使用 numpy.pad 功能,但我不明白到底是怎么回事。