728x90

IT/언어 133

[python/scipy] scipy.interpolate.interp2d를 이용한 2차원 데이터 보간

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용이 있으면 지적해주시면 감사하겠습니다. 시작하기에 앞서 이번 포스트에서는 Python의 수치 분석 라이브러리인 SciPy의 interpolate.interp2d 클래스를 사용해 2차원 형태의 데이터를 보간하는 방법에 대해서 해설하도록 하겠다. 보간의 옵션이나 실제 보간 예에 대해서 다룰 것이다. 또한, SciPy에서 interpolate.interp2d와 동일하게 2차원 데이터를 보간하는 interpolate.griddata도 있지만, 이것은 함수이다. interp2d 클래스 interpolate.interp2d 클래스는 다음과 같이 정의되어 있다. interp2d(x, y, z, kind='linear', ..

IT/언어 2022.08.04

[python] python의 datetime으로 날짜, 시간 ⇔ 문자형 데이터 변환(strtime, strptime)

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용이 있다면 지적 부탁드립니다. python의 표준 라이브러리 dattime을 사용하여 날짜(날짜나 시간) 데이터를 처리할 수 있다. 날짜와 문자열을 상호 변환하는 메소드 strtime()과 strptime()으로 다양한 포맷의 날짜나 시간을 조작할 수 있다. 또한, 뺄셈이나 덧셈등의 연산도 가능하다. 예를 들어 10일 전이라던가 3주 이후의 날짜나 50분후의 사간 등 간단한 계산도 할 수 있다는 것이다. 이번 포스트에서 다룰 내용은 다음과 같다. datetime.datetime : 일시(날짜와 시간) datetime.date : 날짜 datatime.time : 시각 datetime.timedelta : 시간..

IT/언어 2022.07.31

[python] 순서를 지정할 수 있는 dictionary ; OrderedDict의 사용법

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. Python의 사전형(dict형 오브젝트) 데이터는 요소의 순서를 갖고 있지 않다. Python의 3.6버전부터는 순서를 가지고 잇지만, 구현하는 방식에 의존하므로 구현하는 방식에 따르게 된다. 3.7 버전부터는 언어 사양 자체적으로 순서가진 사전형 데이터가 되는듯하다. 한편 표준 라이브러리인 collections 모듈에는 순서를 가진 사전형 데이터를 사용할 수 있도록 OrderDict가 준비되어 있다. collections 모듈을 import한다. 표준 라이브러리에 포함되어 있으므로 별도의 설치는 필요하지 않다. import collections import 구문은 아래와 같..

IT/언어 2022.07.26

[python] 시간을 10분 단위로만 기록되도록 하기(시간 내림)

Django 프로젝트중 현재의 시간 데이터를 10분 단위로 기록되도록 해야 할 필요성이 있었기에(예를 들어, 데이터 기록 당시의 시간이 12시 58분 12초라면 DB에는 12시 50분 0초로 기록되도록) 그러한 기능을 구현할 수 있는 코드를 조사해 간단하게 정리해봤다. 정말 짧은 포스트가 될 것이다. 코드 3줄로 단순하다. from datetime import datetime INTERVAL_MINUTE = 10 time = datetime.strptime('2022년7월24일 12시59분1초', '%Y년%m월%d일 %H시%M분%S초') tmp = time.replace(minute=time.minute - time.minute % INTERVAL_MINUTE, second=0, microsecond=0..

IT/언어 2022.07.24

[python] Requests를 이용해 Web API 호출하기(데이터 획득, 조작)

※ 일본의 한 포스트를 번역한 글입니다. 오역 및 직역, 의역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 이번 포스팅에서는 Python의 HTTP 라이브러리인 Requests를 사용하여 REST 스타일의 Web API를 호출해 데이터를 얻어내거나 조작하는 방법에 대해서 설명하고자 한다. Qiita API (일본의 기술 포스팅 사이트)를 예로 HTTP 메소드를 이용해 Web API를 조작해 볼 것이다. 여기서 설명할 내용은 다음과 같다. HTTP 메소드 Qiita API의 액세스 토큰을 취득 POST(포스트 작성) : requests.post() GET(포스트 획득) : requests.get() PATCH(포스트 갱신) : requests.path() DELETE(포스트 삭제) : req..

IT/언어 2022.05.28

[PHP] PHP 기초 중의 기초 문법

변수 php에서는 데이터형의 선언이 없으며 JavaScript과 같은 var도 없다. 맨 처음에는 $를 붙여서 변수를 선언한다. $msg = "Hello World"; echo $msg; $msg이라는 변수에 문자열 "Hello World"를 대입하는 형태이다. echo를 사용하여 변수를 전개하여 Web 페이지에 출력해준다. 이 때의 $msg의 데이터형은 String이다. PHP에서 다루는 데이터형의 종류는 다음과 같다. 문자를 다룰 때 String 숫자를 다룰 때 int float 참거짓판단 (true/false) boolean 배열 오브젝트 null 데이터형등은 var_dump등을 이용해서 간단히 확인할 수 있다. $msg = "Hello World"; var_dump($msg); 정수 아까 봤던 변..

IT/언어 2022.04.18

[python] 0이 없는 문자형(str) 숫자 데이터 리스트 제대로 정렬하기 (1, 10, 11 정렬 문제 해결)

Python에서 리스트 등을 오름차순 혹은 내림차순으로 정렬하기 위해서 sort() 메소드나 sorted() 함수를 사용한다. 이번 포스팅에서 0로 메워지지 않은 예를 들면, 0001, 0002....가 아닌 1, 2...으로 되어 있는 문자열 형태의 숫자는 어떻게 정렬할 수 있는지 알아보고자 한다. (참고로 문자열 숫자를 별다른 과정을 거치지 않고 정렬하기 위해서는 0001, 0002와 같이 앞을 0으로 메워주면 간단하게 제대로 정렬되지 않는 문제가 해결되지만 경우에 따라 적용하지 못할 수 있기 때문에 그 방법에 대해 알아봤다. ) sort()와 sorted() 0로 메워지지 않은 숫자 문자열의 주의점 인수 key에 int()나 float()를 지정 정규표현으로 문자열 안의 숫자를 추출 - 문자열안에 ..

IT/언어 2022.03.10

[python] python으로 디렉토리(폴더) 만들기

디렉토리(폴더) 만들기 os.mkdir으로 디렉토리를 생성 제일 간단하게 단일의 디렉토리를 생성하는 방법에 대해 알아보자. 아래의 예에서는 현재 디렉토리에 "dir_01"이라는 서브 디렉토리를 만들고 있다. os.mkdir(’dir_01’) # 혹은 os.mkdir(‘./dir_01’) 그리고 다음은 예에서는 루트 디렉토리 바로 아래에 있는 tmp라는 디렉토리에 dir_01이라는 디렉토리를 생성하고 있다. os.mkdir(‘/tmp/dir_01’) 첫 번째 예에서 보았듯 현재 위치한 디렉토리에 따라 작성되는 디렉토리 생성 위치가 다르므로 주의해야할 필요가 있다. 현재 디렉토리와 관계없이 디렉토리를 생성하고 싶은 경우 반드시 루트 디렉토리를 지정하는 "/"에서 부터 디렉토리 생성 위치를 지정할 필요하다. ..

IT/언어 2022.03.06

[python] python으로 csv파일 쓰기 (list, numpy, pandas)

이번 포스팅에서는 python으로 csv 파일을 쓰는 방법에 대해 설명하고자 한다. 그리고 데이터형이 list인지, numpy인지, pandas인지에 대해 어떻게 쓰면 좋을지에 대해 나눠서 살펴볼 예정이다. list데이터의 쓰기 데이터형이 list인 경우 쓰는 방법에 대해 알아보자. list를 csv로 작성하는 경우에는 csv이라는 라이브러이의 writer 오브젝트를 사용한다. 사용방법은 간단하며, 다음의 코드와 같다. # 먼저 다음과 같이 writer 오브젝트를 선언한다. write = csv.writer(출력파일경로/파일명.csv) # 1차원 데이터의 쓰기 write.writerow(데이터) # 2차원 데이터의 쓰기 write.writerows(데이터) #그러나 아래와 같이 한 줄로 "쓰기"가 될 수..

IT/언어 2022.02.21

[python/Matplotlib] 3차원 데이터 가시화(표시)

Figure.add_subplot() 메소드로 projection에 "3d"를 전달하면, 3차원 데이터를 가시화할 수 있는 subplot(mpl_toolkits.mplot3d.Axes 3D 클래스의 인스턴스)가 있다. Axes3D오브젝트에는 아래와 같은 메소드들이 존재한다. Axes3D.plot() 파라미터 곡선 Axes3D.plot_surface() 곡면 Axes3D.plot_surface() 평면과 법선(normal(line)) Axes3D.scatter() 산포도 Axes3D.plot_wireframe() 와이어 프레임 Axes3D.plot_trisurf() 파라미터 곡면 Axes3D.contour 3차원 등고선 파라미터 곡선 Axes3D.plot()을 사용하면 파라미터 t와 매개되는 공간곡선을 그..

IT/언어 2022.01.17
728x90