📜  np.pad - Python (1)

📅  最后修改于: 2023-12-03 15:17:59.244000             🧑  作者: Mango

np.pad - Python

np.pad 是一个 Numpy 库中的函数,用于给数组填充元素以便在指定的维度上达到特定的形状。填充可以在数组的边缘、其中心或者其它位置进行。

语法
numpy.pad(array, pad_width, mode='constant', **kwargs)
参数
  • array:需要填充的数组。
  • pad_width:可以是一个包含长度为 2 * array.ndim 的元组,每个元素是一个长度为 2 的元组,表示在每个轴上需要填充的元素数。例如,如果某个轴上值为 n,则表示需要在该轴上向两边填充 n 个元素。
  • mode:填充模式,可以取以下值:
    • constant(默认值):在数组的边缘填充给定值(默认为 0),这是默认的填充模式。
    • edge:在数组边缘的元素进行对称填充。
    • linear_ramp:在填充的边缘上创建坡道,以零填充的边缘为起点,以其它端点的值填充。
    • maximum:在边缘元素上填充最大值。
    • mean:在边缘元素上填充平均值。
    • median:在边缘元素上填充中位数。
    • minimum:在边缘元素上填充最小值。
    • reflect:对称填充。
    • symmetric:制造对称填充,但不重复边缘值。
    • wrap:类似于反射模式(reflect),但用另一边的元素进行填充。
  • kwargs:用于传递一些模式的特定选项。
返回值

返回一个填充后的数组。

示例
import numpy as np

a = np.arange(6).reshape((2, 3))
print(f"原始数组:\n{a}\n")

# 对行在两侧均填充 1 个元素,对列在两侧均填充 2 个元素,填充模式为常数 0。
b = np.pad(a, pad_width=((1, 1), (2, 2)), mode='constant', constant_values=0)
print(f"填充后的数组:\n{b}\n")

# 对行在两侧均填充 1 个元素,对列在两侧均填充 2 个元素,填充模式为对称填充。
c = np.pad(a, pad_width=((1, 1), (2, 2)), mode='symmetric')
print(f"填充后的数组:\n{c}\n")

# 对行在两侧均填充 1 个元素,对列在两侧均填充 2 个元素,填充模式为反射填充。
d = np.pad(a, pad_width=((1, 1), (2, 2)), mode='reflect')
print(f"填充后的数组:\n{d}\n")

输出:

原始数组:
[[0 1 2]
 [3 4 5]]

填充后的数组:
[[0 0 0 0 0 0 0]
 [0 0 0 1 2 0 0]
 [0 0 0 4 5 0 0]
 [0 0 0 0 0 0 0]]

填充后的数组:
[[4 3 2 1 2 3 4]
 [1 0 1 2 3 4 5]
 [4 3 4 5 4 3 4]
 [1 0 1 2 3 4 5]]

填充后的数组:
[[2 1 0 1 2 3 2]
 [1 0 1 2 3 4 5]
 [2 1 0 1 2 3 2]
 [5 4 3 4 5 0 0]]
引用