Python 为什么np.pad没有按我期望的方式工作?

Python 为什么np.pad没有按我期望的方式工作?,python,numpy,runtime-error,Python,Numpy,Runtime Error,我的代码生成一个4x2的数组。 它还生成另一个10x6的阵列 我想用零填充每个数组,以便填充后它在14x12的数组中居中 TypeError:pad()正好接受3个参数(给定2个)这样,您将得到一个形状为(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

我的代码生成一个4x2的数组。 它还生成另一个10x6的阵列 我想用零填充每个数组,以便填充后它在14x12的数组中居中


TypeError:pad()正好接受3个参数(给定2个)

这样,您将得到一个形状为(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(索引不能包含负值)


此外,如果目标维度和源维度都不是偶数或奇数,则目标维度可能不正确。

为什么在函数调用中有两次参数
padder=0
?您还有两个右括号。这是一个在参数顺序上玩游戏的产物,跟随其他人过去的做法。有关如何填充2d数组的参考,这是一个非常漂亮的代码!它在你提出的限制范围内工作。非常感谢。
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")