logo

Python의 numpy.pad()

Python의 numpy 모듈은 배열에서 패딩을 수행하는 numpy.pad()라는 함수를 제공합니다. 이 함수에는 여러 가지 필수 매개변수와 선택적 매개변수가 있습니다.

통사론:

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

매개변수:

배열: array_like

이것이 우리가 채우려는 소스 배열입니다.

pad_width: int, 시퀀스 또는 array_like

이 매개변수는 각 축의 가장자리에 채워지는 값의 수를 정의합니다. 각 축의 고유한 패드 너비는 (before_1, after_1), (before_2, after_2), ... (before_N, after_N))으로 정의됩니다. 각 축에 대해 ((이전, 이후),)는 패드 이전 및 이후와 동일하게 처리됩니다. 모든 축에 대해 int 또는 (pad)는 이전 = 이후 = 패드 너비에 대한 지름길입니다.

모드: str 또는 function(선택 사항)

이 매개변수는 다음 문자열 값 중 하나를 갖습니다.

'상수'(기본값)

'뱅커'의 알고리즘'

mode 매개변수에 상수 값을 할당하면 패딩은 상수 값으로 수행됩니다.

'가장자리'

배열의 가장자리 값입니다. 패딩은 이 가장자리 값으로 수행됩니다.

'선형_램프'

이 값은 Edge 값과 End 값 사이의 선형 램프로 패딩을 수행하는 데 사용됩니다.

'최고'

이 매개변수 값은 각 축을 따라 벡터 부분 또는 전체의 최대값을 사용하여 패딩을 수행합니다.

'평균'

이 매개변수 값은 각 축을 따라 벡터 부분 또는 전체의 평균값을 통해 패딩을 수행합니다.

'중앙값'

이 매개변수 값은 각 축을 따라 벡터 부분 또는 전체의 중앙값을 통해 패딩을 수행합니다.

'최저한의'

이 매개변수 값은 각 축을 따라 벡터 부분 또는 전체의 최소값을 통해 패딩을 수행합니다.

'반영하다'

이 값은 각 축을 따라 시작 및 끝 벡터 값에 미러링되는 벡터 반사를 통해 배열을 채웁니다.

'대칭'

이 값은 배열의 가장자리를 따라 미러링되는 벡터 반사를 통해 배열을 채우는 데 사용됩니다.

'포장하다'

이 값은 축을 따라 벡터를 래핑하여 배열 패딩을 수행하는 데 사용됩니다. 시작 값은 끝 부분을 채우는 데 사용되고, 끝 값은 시작 부분을 채우는 데 사용됩니다.

'비어 있는'

스트링 빌더

이 값은 정의되지 않은 값으로 배열을 채우는 데 사용됩니다.

stat_length: int 또는 시퀀스(선택 사항)

이 매개변수는 '최대', '최소', '평균', '중앙값'에 사용됩니다. 정적 값을 계산하는 데 사용되는 각 가장자리 축의 값 수를 정의합니다.

상수_값: 스칼라 또는 시퀀스(선택 사항)

이 매개변수는 'constant'에서 사용됩니다. 각 축에 패딩된 값을 설정하기 위한 값을 정의합니다.

end_values: 스칼라 또는 시퀀스(선택 사항)

이 매개변수는 'linear_ramp'에서 사용됩니다. 이는 선형_램프의 마지막 값에 사용되는 값을 정의하고 패딩된 배열의 가장자리를 형성합니다.

Reflect_type: 짝수 또는 홀수(선택)

이 매개변수는 '대칭'과 '반사'에 사용됩니다. 기본적으로 Reflect_type은 가장자리 값 주변의 반사가 변경되지 않은 '짝수'입니다. 두 배의 가장자리 값에서 반사된 값을 빼면 배열의 확장된 부분이 '홀수' 스타일로 생성됩니다.

보고:

패드: ndarray

이 함수는 pad_width에 따라 모양이 증가하는 배열과 동일한 순위의 패딩된 배열을 반환합니다.

예시 1:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y 

산출:

 array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4]) 

위의 코드에서

  • 별칭 이름이 np인 numpy를 가져왔습니다.
  • 우리는 x 값의 목록을 만들었습니다.
  • 변수 y를 선언하고 np.pad() 함수의 반환 값을 할당했습니다.
  • x, pad_width 목록을 전달하고 모드를 다음으로 설정했습니다. 끊임없는 그리고 상수_값 기능에서.
  • 마지막으로 y 값을 출력해 보았습니다.

출력에는 정의된 크기와 값으로 채워진 ndarray가 표시됩니다.

예 2:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y 

산출:

 array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4]) 

예시 3:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y 

산출:

 array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5]) 

예시 4:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y 

산출:

 array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5]) 

예시 5:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y 

산출:

 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

예시 6:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y 

산출:

 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

예시 7:

 import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y 

산출:

 array([[1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [3, 3, 3, 3, 4, 3, 3], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1]]) 

예시 8:

 import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) y = np.pad(x, 3, pad_with) y 

산출:

 array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31]) 

위의 코드에서

  • 별칭 이름이 np인 numpy를 가져왔습니다.
  • 우리는 함수를 만들었습니다 pad_with ~와 함께 벡터 , 패드 너비 , , 그리고 크와그스 .
  • pad_value 변수를 선언하여 패딩 값을 가져왔습니다. 얻다() 기능.
  • 벡터의 일부에 패딩 값을 전달했습니다.
  • np.arange() 함수를 사용하여 배열 x를 생성하고 reshape() 함수를 사용하여 모양을 변경했습니다.
  • 변수 y를 선언하고 np.pad() 함수의 반환 값을 할당했습니다.
  • 함수에 x 및 pad_width 목록을 전달했습니다.
  • 마지막으로 y 값을 출력해 보았습니다.

출력에는 정의된 크기와 값으로 채워진 ndarray가 표시됩니다.

예시 9:

 import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with) 

산출:

 array([[10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 0, 1, 10, 10, 10], [10, 10, 10, 2, 3, 10, 10, 10], [10, 10, 10, 4, 5, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10]]) 

예시 10:

 import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): ... pad_value = kwargs.get('padder', 10) ... vector[:pad_width[0]] = pad_value ... vector[-pad_width[1]:] = pad_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with, padder=100) 

산출:

 array([[100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 0, 1, 100, 100, 100], [100, 100, 100, 2, 3, 100, 100, 100], [100, 100, 100, 4, 5, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100]])