填充一个 numpy 数组以满足所需的大小

Pad a numpym array to meet a required size

我需要将特定形状 (4,5) 的数组传递给函数。但是,当最初生成此数组时,它可能小于所需的形状,例如(2,5) 或 (1,5)。我将如何填充此数组以满足我所需的 (4,5) 形状?

对于二维数组,

np.pad(x, ((num_rows_before, num_rows_after), (num_cols_before, num_cols_after)))

会给你想要的形状。

示例:

In [11]: x
Out[11]: array([[8, 3, 5, 1, 5]])

In [12]: np.pad(x, ((3, 0), (0, 0)))
Out[12]:
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [8, 3, 5, 1, 5]])

In [13]: np.pad(x, ((0, 3), (0, 0)))
Out[13]:
array([[8, 3, 5, 1, 5],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])

一般来说,您可以为 n 维数组传递 n 个二元组,其中每个二元组由 before-after 对整数组成沿每个轴和每个方向填充。