반응형

파이썬 7

자료형 내의 최대 소수 구하기

최대소수 구하기 소수란 자기자신과 1로만 나누어지는 수로, 2, 3, 5, 7, 11... 로 거의 규칙없이 존재한다. 판별 조건 소수인지 판별하는 방식으로는 자신보다 작은 모든 숫자로 나누어보고 나누어지는 숫자가 없으면 소수라고 판별할 수 있다. 최적화 하지만 모든 숫자를 나누면 비효율적이므로, 대칭성의 원리를 이용하자. 2부터 자신의 제곱근까지만 탐색한다. def is_prime(num): for i in range(2, int(math.sqrt(num))+1): if num%i == 0: return False return True C언어 자료형 최댓값 최대 소수 (signed) int (long) 2,147,483,647 2,147,483,647 unsigned int (long) 4,294,96..

python 2022.11.15

한영타 변환기를 만들어보자! [2] (tkinter로 UI만들기)

한영타 변환기를 만들어보자! [1] 한영타 변환기를 만들기 위해 설계된 기본적인 구조는 이렇게 된다. 첫번째로 영타를 한국어로 변환해 주었다. 각 영타에 대응되는 한국어를 한글자씩 딕셔너리에 넣어주고, 입력된 영타를 읽 jmook.tistory.com 저번 글에 이어서 한영타 변환기를 만들것이다. 저번에 변환에 필요한 기본 알고리즘을 구현했으니, 이번 시간에는 입력과 출력을 보기좋게 할 수있는 인터페이스를 만들거다. 파이썬에는 tkinter라는 ui를 만들수있는 기본 라이브러리가 있다. import tkinter #(python3) import Tkinter #(python2) 특이 한 점은 기본 라이브러리인데도 파이썬2와 파이썬3의 이름이 대문자 하나가 다르다는 것이다. (사용할 때 주의하자!!!) 간..

python 2022.07.04

한영타 변환기를 만들어보자! [1] (알고리즘 구성)

한영타 변환기를 만들기 위해 설계된 기본적인 구조는 이렇게 된다. 첫번째로 영타를 한국어로 변환해 주었다. 각 영타에 대응되는 한국어를 한글자씩 딕셔너리에 넣어주고, 입력된 영타를 읽어 한글로 변환하였다. ko_dict = {'q':'ㅂ', 'Q':'ㅃ', 'w':'ㅈ', 'W':'ㅉ', 'e':'ㄷ', 'E':'ㄸ', 'r':'ㄱ', 'R':'ㄲ', 't':'ㅅ', 'T':'ㅆ', 'y':'ㅛ', 'u':'ㅕ', 'i':'ㅑ', 'o':'ㅐ', 'p':'ㅔ', 'a':'ㅁ', 's':'ㄴ', 'd':'ㅇ', 'f':'ㄹ', 'g':'ㅎ', 'h':'ㅗ', 'j':'ㅓ', 'k':'ㅏ', 'l':'ㅣ', 'z':'ㅋ', 'x':'ㅌ', 'c':'ㅊ', 'v':'ㅍ', 'b':'ㅠ', 'n':'ㅜ', 'm..

python 2022.07.04

Recurrence plot (시계열 데이터를 학습시켜보자!)

딥러닝 분야는 최근 자연어, 이미지 처리를 분석하는데 활발히 사용되고있는 추세이다. 기존에 방식으로는 시계열 데이터는 1차원이므로 2d CNN과 같은 이미지 처리에 사용되는 신경망에 사용 될 수없다. 따라서 1차원 배열을 이미지화 하는 Recurrence plot을 사용 해야한다. 흔히 히트맵이라고 불리는 그래프를 생각하면 이해가 쉽다. 위의 사진이 왼쪽의 그래프를 오른쪽의 Recurrence plot으로 바꾼 이미지다. 파이썬에 관련 라이브러리를 통해 간단하게 구현할 수도있지만, numpy라이브러리를 활용해서도 만들수있다. def Recurrence_plot(s, eps=None, step=None): s = np.array(s) if eps == None: eps = 0.01 if step == No..

python 2022.05.25

python 경로 및 현재 경로의 파일 리스트

기본적인 파이썬 경로는 파이썬 파일의 위치가 아닌 파이썬을 실행하는 터미널의 위치가 현재 위치로 설정된다. 아래의 코드를 사용하여 파이썬이 위치한 경로를 얻고 해당 폴더 내에서 작업하여 다른파일들의 관리를 쉽게한다. 실행 파이썬 파일의 위치 current_path = os.path.dirname(os.path.realpath(__file__)) 현재 폴더내의 파일 리스트로 저장 current_path = os.path.dirname(os.path.realpath(__file__)) file_list = os.listdir(current_path) 현재 폴더내의 파일 프린트 current_path = os.path.dirname(os.path.realpath(__file__)) file_list = os...

python 2022.01.07

MLP를 사용한 매니퓰레이터 기구학 해석

MLP란? Multi Layer Perceptron의 약자로, 여러개의 은닉층으로 구성된 딥러닝 모델이다. 6자유도(dof)를 갖는 매니퓰레이터의 끝점의 위치를 계산하였다. 이러한 위치를 계산하는 학문을 기구학이라고 하는데, 복잡하니까 계산식 집어치우고 딥러닝학습으로만 계산해 보았다. 데이터는 캐글에서 찾아 학습시켰다. 위의 그림처럼 매니퓰레이터의 조인트각 6개를 입력층에 넣고, 끝점의 3차원 위치좌표 (x,y,z)를 출력층으로 구성하였다. 은닉층은 Relu로 3개층을 이루었고, 각각 512,512,64 노드를 갖고있다. 아래는 모델 구성 소스코드이다. class Net(nn.Module): def init(self): super(Net, self).init() self.fc1 = nn.Linear(6,..

인공지능 2021.10.25

각도 표현방식 Quaternion - Euler 변환(python 코드)

3차원 좌표계에서 회전각을 표현하는 방식 중, 대표적으로 쿼터니언(Quaternion) 방식과 오일러(Euler)방식이 있다. Euler 이 방식은 보다 직관적인 방식으로, 임의 방향의 회전을 x, y, z 성분으로 나누어 Roll, Pitch, Yaw라는 이름으로 표현하는 방식이다. 이 간단한 방식으로 3차원에서 모든 방향에 대한 회전을 표현할 수 있다. Gimbal Lock 하지만 위의 Euler 방식에는 큰 단점이 존재하는데, Gimbal Lock이 발생할 수 있다는 것이다. Gimbal Lock 이란 두개 이상의 회전축이 일치되는 현상으로, 다음 그림과 같은 상황이다. 위와 같은 현상이 문제가 되는 이유는, Gimbal Lock이 발생할 경우 그만큼 자유도를 잃기 때문이다. 만약 모든 축에 대해 ..

etc 2021.09.16
반응형