Machine Learning/numpy & pandas & maplotlib

[NumPy] np.pad에 대한 이해

코딩상륙작전 2023. 10. 3. 01:15

* np.pad

numpy에 padding을 적용하는 메서드이다.

z축, y축, x축 axis에 대한 이해가 필요하다. (axis에 대한 이해)

 

numpy.pad(array, pad_width, mode='constant', **kwargs)

1. array

array는 padding을 적용할 배열

 

2. pad_width

  • pad_width는 ((before_1, after_1), ... (before_N, after_N))의 형태이다. (before,after)는 해당 배열의 해당 축에 패딩을 (앞,뒤)로 덧붙이는 패딩의 갯수를 의미한다. 예를들면,
  • pad_width가 ((0,0), (3,3), (3,3),(0,0))라고 할 때 각각, m(샘플 수)축, z축, y축, x축의 (앞, 뒤)를 의미한다.
  • m축은 (0,0)이므로 패딩을 덧붙이지 않는다 -> No padding
  • z축은 (3,3)이므로 해당 배열의 위 아래 row에 pad를 덧붙인다.
  • y축은 (3,3)이므로 해당 배열의 좌 우 column에 pad를 덧붙인다.
  • x축은 (0,0)이므로 해당 channels의 앞 뒤에 pad를 덧붙인다.

 

3. constant_values

constant_values=(before,after)

constant mode에서 배열에 덧붙일 상수값을 지정해준다. (앞, 뒤)에 어떤 값을 덧붙일지 지정할 수 있다. (0,0)은 해당 배열의 앞, 뒤로 0값을 padding한다는 의미로, zero-padding을 의미한다.

 

* 참고

https://numpy.org/doc/stable/reference/generated/numpy.pad.html