728x90

파이썬 53

Python으로 결측치 확인 후 보간(내삽)하기

오늘은 파이썬으로 결측치의 개수를 확인하고 내삽까지 해보도록 하겠습니다 기상 데이터를 받아서 사용하다보면 결측치가 존재하는 경우가 자주 있습니다 과거 데이터의 경우에는 3시간 간격으로 기입했기 때문이고 최근의 자료들에서는 관측이 제대로 안됐거나 잠시 기기 이상이 있었던 경우 결측치가 존재합니다 하지만 모델에 데이터를 사용하기 위해서는 데이터의 양이 충분히 많다면 결측치들을 0으로 처리해도 그 영향이 매우 미미하기 때문에 상관이 없지만 데이터가 충분하지 않을 경우는 영향을 주기 때문에 결측치를 0이 아닌 다른 방법으로 채워주어야합니다 pandas 라이브러리에서는 내장함수로 interpolate를 지원합니다 보간 방식은 많은 보간 방식을 지원하지만 자주 사용되는 것들은 아래 5개 정도인 것 같습니 'line..

파이썬 2024.01.24

Python을 이용해서 다수의 csv파일 한 번에 합치기

오늘은 Python을 사용해서 다수의 csv 파일을 한 번에 합쳐보겠습니다 저는 기상자료개방포털이라는 곳에서 기상자료를 가지고 옵니다 짧은 특정 기간 자료가 아니라 1년 동안의 1시간 단위 자료, 일 단위 자료 이렇게 자료를 크게 가져올 경우 데이터를 쪼개서 주는 경우가 있습니다 특히 제가 이번에 사용중인 1분 단위 자료는 자료의 양이 방대하기 때문에 한 달 단위로 쪼개서 제공합니다 대충 이런 모양이 됩니다 하지만 이 친구들을 전부 따로 사용할게 아니라 한 번에 사용하고 싶기 때문에 한 번에 묶는 방법을 생각해서 코드를 짜봤습니다 혹시 더 깔끔하고 간단하게 짜셨거나 조언이 있으신 분들은 언제든지 댓글 부탁드립니다! #Lbrary Import import numpy as np import tensorflo..

파이썬 2024.01.24

Mayavi 라이브러리를 이용해서 전구 기압 분포 3D 시각화

오늘은 전구 기압 분포를 3차원 구에 시각화해보겠습니다 이번 포스팅을 하게된 계기는 Spherical harmonics를 공부하던 중 전구 기압 분포를 3차원 구에 시각화한 뒤 애니메이션으로 회전시키면서 보면 좋을 것 같아서 진행해봤습니다 먼저 구를 만들기 위해서는 구면 좌표계를 사용해야합니다 이는 plt를 활용하여 그릴때도 똑같이 적용됩니다 구면 좌표계는 위키 백과의 정의로 "3차원 공간 상의 점들을 나타내는 좌표계의 하나로, 보통 (r, Φ, Θ) 로 나타낸다" 라고 설명되어 있습니다 각 성분들은 r은 원점으로부터의 거리, Φ 는 방위각, Θ는 고도각으로 3차원 공간인 구에서 위치를 표현할 수 있습니다 구면좌표계는 경우에 따라 좌표값이 한 점을 여러 좌표가 가리키는 경우가 있기 때문에 변수들의 범위는..

파이썬 2023.11.28

Python으로 라이브러리 사용 없이 3가지 테일러 급수 구현해보기

오늘은 Python으로 라이브러리 사용 없이 테일러 급수를 구현해보겠습니다 오늘 제가 구현할 테일러 급수는 아래의 3가지 함수입니다 첫 번째와 두 번째 함수는 정의역을 크게 고려하지 않고 코드를 짜도 무리는 없지만 세 번째 함수는 반드시 정의역을 만족시켜서 해야합니다 ln(x)로도 함수를 만들 수 있습니다 x 자리에 x-1을 대입하여 식을 다시 만들면 가능합니다 정의역 역시 0 1: print("Range out Value") global re self.re = [] for i in range(1, n+1, 1): if i%2 == 0: self.a = -1 * ((self.v**i)/i) self.re.append(self.a) elif i%2 == 1: self.a = (self.v**i)/i sel..

Python으로 라이브러리 사용 없이 팩토리얼 구현해보기

요즘 수치해석학을 공부하고 있습니다 아무래도 수치모델을 전공하려 하다보니 필요해보이더군요 그래서 당분간 제가 공부하는 책에서 나오는 공식들을 라이브러리 사용 없이 파이썬으로 구현해보려고 합니다 그 첫번째로 정말 간단한 것부터 출발해보겠습니다 오늘은 팩토리얼 구현을 해보겠습니다 먼저 팩토리얼에 대해서 간단하게 알아보겠습니다 팩토리얼은 우리말로 계승이라는 뜻입니다 위키백과의 정의로는 "수학에서, 자연수의 계승 또는 팩토리얼은 그 수보다 작거나 같은 모든 양의 정수의 곱이다" 라고 나와있습니다 수학적 기호로는 숫자 뒤에 느낌표를 붙여서 사용합니다 5의 계승 또는 5 팩토리얼은 5보다 작거나 같은 모든 양의 수 즉, 1, 2, 3, 4, 5 5가지 숫자의 곱을 의미합니다 여기서 하나 알 수 있는건 팩토리얼을 구..

Python 환경에서 지역 변수와 전역 변수 (global)

오랜만에 포스팅을 하는 것 같습니다 시험 기간도 있었고 대학원 준비도 하다 보니 많이 미뤄진 것 같습니다 그래서 다시 리로딩하는 마음으로 간단한 것부터 다시 시작해보겠습니다 globals라는 전역 변수 선언 기능을 최근들어 정말 많이 사용한 것 같습니다 특히 선언해야할 변수들이 개수가 엄청 많은데 이름들이 비슷한 경우, 굳이 이름을 특별하게 지어야할 필요가 없지만 개수를 많이 선언해야 할 경우 이런 경우에 globals를 많이 사용해왔습니다 다음 포스팅에서 여러개의 csv 파일들을 하나로 합치고 이름을 지정하는 것을 해볼건데 빌드업 느낌으로 오늘은 동적 변수를 선언하는 방법을 알아보겠습니다 먼저 전역 변수와 지역 변수에 대해 알아보겠습니다 def나 class처럼 자기 만의 틀을 가지고 있는 부분에서 변수..

파이썬 2023.11.06

데이터 프레임에서 특정 데이터 추출(globals())

정말 간만에 포스티입니다 현생이 너무 바빠서 오랜만에 쓰는 것 같습니다 제 블로그 누적 방문자수가 드디어 1만명을 넘었습니다! 많은 관심 감사드리고 앞으로도 유용한 코드 많이 기록해보겠습니다! 오늘은 특정 데이터에서 특정 날짜와 최대, 최소를 추출하는 법을 써보겠습니다 먼저 이 코드를 만들게 된 계기는 같은 학과 후배의 도움 요청으로 하게 되었습니다 이 코드가 하는 일은 1973년부터 2023년까지의 9월 평균기온, 최고기온, 최저기온을 가져옵니다 9월 1일부터 30일 별로 최고기온, 최소기온을 모아서 새로운 리스트를 동적변수를 사용해서 만듭니다 그리고 30일치의 최고기온에서 최대, 최소, 최저기온에서도 최대 최소를 각각 뽑아내어 그림을 그릴겁니다 코드입니다 import numpy as np import..

파이썬 2023.10.18

건조공기의 이상기체 방정식 그래프 그리기(대기 열역학)

오늘은 건조 공기의 이상기체 방정식인 Pv = RT(alpha가 없어서 v로 썼습니다)를 비적과 온도를 변화시켜가며 그려보겠습니다 이 포스팅은 대기 열역학 과제입니다 정확한 문제는 다음과 같습니다 문제 4. Pv = RT [for dry air], 건조공기이므로 R을 그대로 사용하여 v - P diagram을 그리시오 (v의 범위는 1.0 ~ 2.5) 먼저 코드입니다 import numpy as np import matplotlib.pyplot as plt x1 = np.arange(0.574, 2.51, 0.01) x2 = np.arange(0.861, 2.51, 0.01) x3 = np.arange(1.148, 2.51, 0.01) t1 = 200 t2 = 300 t3 = 400 r = 287 p =..

파이썬 2023.09.25

Monin-Obukhov Similarity Theory Curve 파이썬으로 그려보기

이번에는 대기 경계층 시간에 배운 Monin-Obukhov Similarity Theory Curve를 그려보겠습니다 구체적인 수식은 위키피디아에서 참고했습니다 https://en.wikipedia.org/wiki/Monin%E2%80%93Obukhov_similarity_theory Monin–Obukhov similarity theory - Wikipedia From Wikipedia, the free encyclopedia Monin–Obukhov (M–O) similarity theory describes the non-dimensionalized mean flow and mean temperature in the surface layer under non-neutral conditions as ..

파이썬 2023.09.19

WRF-PYTHON 라이브러리로 WRF 결과물 시각화 (getvar, smooth2d)

이번 포스팅은 파이썬 라이브러리인 WRF-PYTHON을 사용해서 제가 만든 WRF 결과물을 시각화해보겠습니다 먼저 코드 입니다 1 import pygrib 2 import numpy as np 3 import matplotlib.pyplot as plt 4 from netCDF4 import Dataset 5 from wrf import to_np, getvar, smooth2d, get_basemap, latlon_coords 6 7 from matplotlib.cm import get_cmap 8 9 from mpl_toolkits.basemap import Basemap 10 11 f = Dataset('./wrfout_d01_2016-10-06_03.nc') 12 13 t = getvar(f, "..

파이썬 2023.09.01