in src/smclarify/util/__init__.py [0:0]
def GaussianFilter(input_array: np.ndarray, sigma: int = 1) -> np.ndarray:
"""
:param input_array: array which Gaussian Filter is applied to
:param sigma: integer which indicates standard deviation of the desired Gaussian distribution
:return: smoothed array
"""
if len(input_array) == 0:
raise ValueError("input array is empty")
def GaussianKernel(x: float, sigma: int) -> float:
return np.exp(-((x**2) / (2 * (sigma**2)))) * 1 / (np.sqrt(2 * np.pi) * sigma)
x = np.linspace(1, len(input_array), len(input_array))
centered_x = x - np.mean(x)
gauss_filter = GaussianKernel(centered_x, sigma)
return np.convolve(input_array, gauss_filter, "same")