두 개의 1차원 시퀀스의 이산 선형 컨볼루션을 반환하려면 Python Numpy에서 numpy.convolve() 메서드를 사용합니다. 합성곱 연산자는 신호에 대한 선형 시불변 시스템의 효과를 모델링하는 신호 처리에서 자주 볼 수 있습니다. 확률 이론에서 두 개의 독립 확률 변수의 합은 개별 분포의 컨볼루션에 따라 분포됩니다. v가 a보다 길면 계산 전에 배열이 교체됩니다.
이 방법은 a 및 v의 이산 선형 컨볼루션을 반환합니다. 첫 번째 매개변수인 a(N,)는 첫 번째 1차원 입력 배열입니다. 두 번째 매개변수 v(M,)는 두 번째 1차원 입력 배열입니다. 세 번째 매개변수인 모드는 선택사항이며 값은 full', 'valid', 'same'입니다. 'valid' 모드는 길이 max(M, N) - min(M, N) + 1의 출력을 반환합니다. 합성곱 곱은 신호가 완전히 겹치는 지점에만 제공됩니다. 신호 경계를 벗어난 값은 영향을 미치지 않습니다.
기본 모드는 '전체'입니다. 이렇게 하면 출력 모양이 (N+M-1,)인 각 중첩 지점의 컨볼루션이 반환됩니다. Convolution의 끝점에서 신호가 완전히 겹치지 않고 경계 효과가 나타날 수 있습니다.
단계
먼저 필요한 라이브러리를 가져옵니다 -
import numpy as np
array() 메서드를 사용하여 두 개의 numpy 1차원 배열 만들기 -
arr1 = np.array([1, 2, 3]) arr2 = np.array([0, 1, 0.5])
배열 표시 -
print("Array1...\n",arr1) print("\nArray2...\n",arr2)
두 어레이의 차원을 확인하십시오 -
print("\nDimensions of Array1...\n",arr1.ndim) print("\nDimensions of Array2...\n",arr2.ndim)
두 배열의 모양을 확인하십시오 -
print("\nShape of Array1...\n",arr1.shape) print("\nShape of Array2...\n",arr2.shape)
2개의 1차원 시퀀스의 이산 선형 컨볼루션을 반환하려면 Python Numpy에서 numpy.convolve() 메서드를 사용하십시오 -
print("\nResult....\n",np.convolve(arr1, arr2, mode = 'full' ))
예시
import numpy as np # Creating two numpy One-Dimensional array using the array() method arr1 = np.array([1, 2, 3]) arr2 = np.array([0, 1, 0.5]) # Display the arrays print("Array1...\n",arr1) print("\nArray2...\n",arr2) # Check the Dimensions of both the arrays print("\nDimensions of Array1...\n",arr1.ndim) print("\nDimensions of Array2...\n",arr2.ndim) # Check the Shape of both the arrays print("\nShape of Array1...\n",arr1.shape) print("\nShape of Array2...\n",arr2.shape) # To return the discrete linear convolution of two one-dimensional sequences, use the numpy.convolve() method in Python Numpy print("\nResult....\n",np.convolve(arr1, arr2, mode = 'full' ))
출력
Array1... [1 2 3] Array2... [0. 1. 0.5] Dimensions of Array1... 1 Dimensions of Array2... 1 Shape of Array1... (3,) Shape of Array2... (3,) Result.... [0. 1. 2.5 4. 1.5]