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]])