填充一个 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 对整数组成沿每个轴和每个方向填充。
我需要将特定形状 (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 对整数组成沿每个轴和每个方向填充。