본문 바로가기
728x90
반응형
SMALL

Python Library180

[SciPy] B-spline Signal Processing 신호 처리 도구 상자에는 현재 일부 필터링 기능, 필터 설계 도구의 제한된 집합, 1D 및 2D 데이터에 대한 B-spline 보간 알고리즘이 포함되어 있다. 그리고 SciPy의 신호가 실수 또는 복잡한 숫자의 배열이라는 것을 이해해야 한다. B-spline B-spline은 B-spline 계수와 매듭 점의 관점에서 유한 영역에 대한 연속 함수의 근사이다. 매듭 점이 간격으로 동일하게 이격되어 있으면 1-D 함수에 대한 B-spline 근사는 유한 기저 확장이다. 매듭 간격이 있는 2차원에서 함수 표현은 다음과 같다. 이러한 식에서 βo는 공간 제한 B-spline 기저 함수의 차수 o이다. 동일한 간격의 매듭 점과 동일한 간격의 데이터 점이 필요하므로 샘플 값 yn에서.. 2023. 7. 31.
[Matplotlib] 눈금 시간 설정 눈금 시간 설정 데이터프레임에서 str 타입의 시간을 축으로 사용하기 위해 pd.to_datetime() 함수를 사용한다. 이 함수를 사용하여 문자열을 datetime64 형식으로 변환하고 데이터프레임의 x축으로 사용할 수 있다. df['Time'] = pd.to_datetime(df['time']) import matplotlib.pyplot as plt import matplotlib.dates as mdates fig, ax = plt.subplots() ax.plot(df['Time'], df['Value']) ax.set_xlabel('Time') ax.set_ylabel('Value') ax.set_title('Time vs Value') # x축 눈금 간격 설정 (1시간 간격으로 눈금 표시).. 2023. 7. 28.
[SciPy] 영 위상 필터 (Zero-Phase Filter) 영 위상 필터 (Zero-Phase Filter) 영 위상 필터 (Zero-Phase Filter)는 신호 처리에서 사용되는 필터 중 하나이다. 이 필터는 신호를 두 번 처리하여 위상 지연을 제거하는 방법으로 작동한다. 영 위상 필터는 전체적인 신호의 위상을 유지하면서 주파수 응답을 변형시키는 필터이다. 이 필터는 주로 신호 처리에서 사용되며, 신호의 위상이 중요한 경우에 사용된다. Scipy에서의 기능은 선형 디지털 필터를 앞으로 한 번, 뒤로 한 번 총 두 번 적용한다. 결합된 필터는 위상이 0이고 필터 차수가 원본의 두 배이다. 이 기능는 2차 섹션에서 숫자 문제가 적기 때문에 대부분의 필터링 작업에서 sosflitflit (output='filter'를 사용한 필터 설계) 필터링 기능이 flitf.. 2023. 7. 10.
[Scikit-Learn] HistGradientBoostingClassifier sklearn.ensemble.HistGradientBoostingClassifier 이 추정기는 큰 데이터 세트(n_samples >= 10,000)에서 GradientBoostingClassifier보다 훨씬 빠르다. 이 추정기는 누락된 값 (NaN)을 기본적으로 지원한다. 훈련하는 동안 나무 재배자는 누락된 값이 있는 샘플이 잠재적 이득에 따라 왼쪽 또는 오른쪽 자식으로 이동해야 하는지 여부를 각 분할 지점에서 학습한다. 예측할 때 누락된 값이 있는 샘플은 결과적으로 왼쪽 또는 오른쪽 자식에 할당된다. 교육 중에 지정된 기능에 대해 누락된 값이 없으면 누락된 값이 있는 샘플은 가장 많은 샘플이 있는 하위 항목에 매핑된다. 결측치 처리 import numpy as np import pandas as .. 2023. 7. 5.
[SciPy] 버터워스 필터 (Butterworth Filter) 버터워스 필터 (Butterworth Filter) 버터워스 필터는 주파수 응답 특성이 매우 부드러운 필터로, 위상 왜곡을 최소화하는 필터이다. 버터워스 필터는 주파수 영역에서 특정 주파수 범위를 통과시키고, 그 외의 주파수 범위는 차단하는 필터이다. 버터워스 필터는 주파수 응답 특성을 설정할 수 있는 매개 변수인 Q값을 가지고 있다. Q값이 높을수록 주파수 응답 특성이 더 부드러워지고, 위상 왜곡이 줄어든다. 버터워스 필터로 위상 왜곡을 없애려면 Q값을 매우 높게 설정해야 한다. Q값을 너무 높게 설정하면 필터의 통과 대역폭이 매우 좁아져서 필터링된 신호의 품질이 저하될 수 있다. 따라서, Q값을 적절하게 설정하여 위상 왜곡을 최소화하고 필터링된 신호의 품질을 유지해야 한다. Q값은 품질 계수를 의미한.. 2023. 7. 5.
[Selenium] AttributeError: 'WebDriver' object has no attribute 'find_element_by_' 셀레니움이 업데이트되면서 find_element_by_와 같은 문법을 사용할 수 없다. 따라서, 아래 모듈을 가져와야 한다. from selenium.webdriver.common.by import By 변경된 문법 By.ID 태그의 id값으로 추출 By.NAME 태그의 name값으로 추출 By.XPATH 태그의 경로로 추출 By.LINK_TEXT 링크 텍스트값으로 추출 By.PARTIAL_LINK_TEXT 링크 텍스트의 자식 텍스트 값을 추출 By.TAG_NAME 태그 이름으로 추출 By.CLASS_NAME 태그의 클래스명으로 추출 By.CSS_SELECTOR css 선택자로 추출 2023. 5. 31.
[Matplotlib] 다중 축을 사용한 그래프 생성 import matplotlib.pyplot as plt import numpy as np # 데이터 1 data1 = [(1, 4), (3, 7), (5, 9)] # 데이터 2 data2 = [(2, 6), (4, 8), (6, 10)] # 가로 막대 그래프 생성 fig, ax1 = plt.subplots() # 데이터 1을 막대 그래프로 표시 for i, (start, end) in enumerate(data1): ax1.barh(i, end-start, left=start, height=0.4, align='center', color='steelblue', alpha=0.7) # 데이터 2를 막대 그래프로 표시 for i, (start, end) in enumerate(data2): ax1.barh.. 2023. 5. 25.
[Matplotlib] 공백 지우기 공백 지우기 matplotlib로 plt.imshow()를 통해서 보여진 이미지를 변형해서 다시 이미지 파일로 넣어줄 때 margin, padding 등이 적용되어 있기에 다음과 같은 방법으로 지워줄 수 있다. plt.axis('off') 축 없애기 plt.xticks([]), plt.yticks([]) 틱 없애기 plt.tight_layout() 공백을 잘 배치 plt.subplots_adjust(left, bottom, right , top, hspace, wspace ) subplot 위치 조절 plt.axis('off'), plt.xticks([]), plt.yticks([]) plt.tight_layout() 2023. 4. 27.
[Pandas] groupby pandas.DataFrame.groupby 매퍼를 사용하거나 일련의 열로 DataFrame을 그룹화한다. 그룹화 작업에는 개체 분할, 함수 적용 및 결과 결합의 일부 조합이 포함된다. 이는 이러한 그룹에서 많은 양의 데이터 및 계산 작업을 그룹화하는 데 사용할 수 있다. import pandas as pd df = pd.DataFrame({'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot'], 'Max Speed': [380., 370., 24., 26.]}) df Animal Max Speed 0 Falcon 380.0 1 Falcon 370.0 2 Parrot 24.0 3 Parrot 26.0 df.groupby(['Animal']).mean() Max Spee.. 2023. 3. 30.
[Pandas] rolling pandas.DataFrame.rolling 판다스에서는 롤링 윈도우 계산을 제공한다. import pandas as pd df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]}) df B 0 0.0 1 1.0 2 2.0 3 NaN 4 4.0 window 관측치 2개의 window 길이를 사용한 롤링 합계는 다음과 같이 구현 가능하다. df.rolling(2).sum() B 0 NaN 1 1.0 2 3.0 3 NaN 4 NaN window 범위가 2초인 롤링 합계는 다음과 같다. df_time = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]}, index = [pd.Timestamp('20130101 09:00:00'), pd.Timestamp('20.. 2023. 3. 30.
728x90
반응형
LIST