我的代码生成一个4x2的数组。 它还会生成另一个10x6的数组 我想用零填充每个数组,以便在填充后以14x12的数组为中心。
https://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html
a = some array 4x2
b = some array 10x6
c = np.pad(a, padder=0, 2, 'pad_width', padder=0))
TypeError:pad()恰好接受3个参数(给定2个参数)
答案 0 :(得分:0)
像这样,您得到一个形状为(14,12)的数组,其中较小的数组居中。
source_array = np.random.rand(10,6)
target_array_shape = (14,12)
pad_x = (target_array_shape[0]-source_array.shape[0])//2
pad_y = (target_array_shape[1]-source_array.shape[1])//2
target_array = np.pad(source_array, ((pad_x,pad_x),(pad_y,pad_y)), mode="constant")
很明显,只有在源数组小于目标数组的情况下,居中才能正确,否则您将得到ValueError(index can't contain negative values)
。
如果目标尺寸和源尺寸都不是偶数或奇数,则目标尺寸可能也不正确。