Python84 discord용 챗봇을 구축해보자!(1) 이번 포스팅에서부터 discord용 챗봇을 구축하는 방법과 응용을 해보는 법에 대해 써보도록 하겠습니다. 이 내용을 따라가기에 앞서 독자분께서 디스코드용 계정과 파이참을 이용한 파이썬 개발환경 구축이 되어있고, 자신의 디스코드 서버가 생성되어 있다는 전제하에 내용을 진행해 나가도록 하겠습니다. 우선 디스코드 개발자 포털에 들어가기 위해 아래 링크로 들어가주세요. https://discord.com/developers/applications Discord Developer Portal — API Docs for Bots and Developers Integrate your service with Discord — whether it's a bot or a game or whatever your wildes.. 업무자동화 2023. 5. 7. 파이썬으로 복소수 표현하기! 아래 문제를 풀어보면서 복소수의 개념을 짚고 가도록 하겠습니다! "복소수 공간에서 x+yi 복소수는 (x,y)의 위치에 있는 점으로 표현된다. 이 점을 원점기준으로 각도 a(라디안으로 표시)만큼 회전시키는 방법은 cos a + (sin a)j를 곱하면 되는 것으로 알려져 있다." 문제1) 어떤 좌표 (1,2)가 복소수 형태인 1+2j로 주어지면, 그림과 같이 이 좌표를 반시계 방향으로 90도 회전시키는 방법을 파이썬의 복소수 곱으로 구하여 아래와 같이 출력해보라 실행결과> 회전하기 전 : (1+2j) 90도 회전한 후: (-2+1j) 일단, 파이썬 으로 복소수를 표현하는 방법에 대해서 짚고 가겠습니다. 복소평면에서의 (1,1)의 표현은 다음과 같이 j앞에 반드시 계수(coefficient)가 하나 붙어야.. Grammer 2023. 4. 22. 푸리에 변환에 대해 알아보자! 푸리에 변환이란? 푸리에 변환(Fourier Transform)은 시간영역에서 정의된 신호를 주파수 영역으로 변환하는 수학적인 변환기법입니다. 신호를 주파수 성분으로 분해하여, 주파수 대역별로 신호의 강도(진폭)와 위상정보를 얻을 수 있습니다. 이는 다양한 분야에서 신호 처리, 영상 처리, 통신, 음성 처리, 음악, 신호 분석등의 분야에서 널리 사용되고 있습니다. 푸리에 변환(줄여서 F.T)은 주파수 도메인에서 신호의 주파수 성분들을 분석하기 위해 사용됩니다. 주파수 도메인에서는 원래 신호를 구성하는 주파수 성분들의 진폭과 위상 정보를 알 수 있어, 신호의 주파수 특성을 자세히 분석할 수 있습니다. 이를 통해 다양한 신호 처리 작업을 수행할 수 있죠. 예를 들어보도록 하겠습니다. 푸리에 변환을 이용하여 .. matplolib/신호및시스템 2023. 4. 12. Numpy - where() 사용 방법 import numpy as np #조건(해당요소가 3보다 크다)을 만족하는 Index찾기 arr = np.array([1,2,3,4,5]) print(arr) print(type(arr)) result = np.where(arr>3) print(result) print(type(result)) print(result[0])#3번과 4번 인덱스가 위 조건을 만족한다. #양수,음수를 1과 0으로 변경(양수면 1로, 음수면 0으로 변경) arr = np.array([-1,2,-3,4,-5]) result = np.where(arr>0, 1 , 0) #arr에 있는 값이 0보다 크면, 두번쨰 파라미터(1)을 반환하고, 0보다 작거나 같으면 세번째 파라미터(0)를 반환합니다. print(result) #조건에 .. 자료구조/numpy 자료구조 2023. 3. 25. numpy flatten() 함수, 1차원 배열로 변환(평탄화) import numpy as np #2차원 배열을 1차원으로 변환 arr = np.array([[1,2,3],[4,5,6]]) print(arr.flatten()) #3차원 배열을 1차원을 변환 arr = np.array([[[1,2],[3,4]],[[5,6],[7,8]]]) #2행2열 print(arr.flatten()) #2차원 배열을 1차원으로 변환하고 오름차순 정렬 arr = np.array([[3,2,1],[6,5,4]]) print(arr.flatten()) print(np.sort(arr.flatten())) 참고 및 출처: https://codechacha.com/ko/python-numpy-flatten/ numpy flatten() 함수, 1차원 배열로 변환(평탄화) numpy의 fla.. 자료구조/numpy 자료구조 2023. 3. 25. numpy hstack, vstack 함수 (배열 연결) import numpy as np #두개의 배열 생성 arr1 = np.array([[1,2], [3,4]]) arr2 = np.array([[5,6], [7,8]]) #hstack을 사용하여 두 배열 행 방향으로 결합 result1 = np.hstack((arr1, arr2)) print(result1) #2행1열과 2행1열을 합쳐서 2행1열을 만듬 #vstack을 사용하여 두 배열을 수직방향으로 결합 result2 = np.vstack((arr1, arr2)) print(result2) #2행1열과 2행1열을 합쳐서 4행1열을 만듬 참고 및 출처: https://codechacha.com/ko/python-numpy-hstack-vstack/ numpy hstack, vstack 함수 (배열 연결) .. 자료구조/numpy 자료구조 2023. 3. 25. np.linspace와 np.arange의 차이에 대해 알아보자! import numpy as np #0에서 20사이에 11개의 변수생성 a = np.linspace(0,3,3) # np.linspace(a,b,c)라고 할떄, a 자료구조/numpy 자료구조 2023. 3. 25. ReLU함수에 대해 알아보자! 이전 시간에 계단함수의 태생적인 문제점인, 미분이 불가능하다는 성질로 인해, 이를 대체할 함수를 두가지 설명했는데요! 바로, sigmoid함수와 ReLU함수입니다. 이번시간에는 ReLU함수에 대해 알아보도록 하겠습니다. 소스코드> import numpy as np import matplotlib.pyplot as plt def ReLU(x): return np.maximum(0,x) x = np.linspace(-10, 10, 1000) y = ReLU(x) plt.plot(x, y) plt.title('ReLU function') plt.xlabel('x') plt.ylabel('y') plt.show() 위 코드를 실행했을때, -10부터 10까지의 범위에서 1000개의 점으 생성하고, 이점에 대해 R.. matplolib/신호및시스템 2023. 3. 24. sigmoid(시그모이드)함수에 대해 알아보자! 이전 시간에 단위계단함수를 정리해보았는데요! 한번 더 복습을 하자면, 이 함수는 입력신호 0을 기준으로 출력신호 0또는1로 분류하는 함수로서, 입력값이 특정값 이상인 경우 1을 출력하고, 그렇지 않은 경우, 0을 출력합니다. 하지만 이 계단함수는 신호해석에만 조금 사용되지 머신러닝 분야에서는 거의 쓰이지 않는데요, 머신러닝에서 미분이 중요하게 다뤄지는데, 이 계단함수를 연속적인 함수가 아니기 때문에, 태생적으로 미분이 불가능하기 때문이죠. 그러나! 계단함수와 유사한 함수들이 존재하는데요, 대표적으로 sigmoid함수와 ReLU함수입니다. 이 함수들은 계단함수와같이 입력을 기준으로 출력을 분류하는 특성을 가지고 있으면서도, 미분이 가능한 함수들이기 때문에, 머신러닝에서 널리 쓰이는 함수들입니다. 그래서 이.. matplolib/신호및시스템 2023. 3. 24. 단위계단함수에 대해 알아보자! 단위계단함수란? 단위계단함수는 계단함수의 일종으로, 0보다 작은 값에 대해서는, 0을, 0보다 큰 값에 대해서는 1을 출력하는 함수입니다. 아래는 파이썬 코드로 단위계단함수를 구현한 예시입니다. 아래 코드에서는 'numpy'와 'matplotlib' 라이브러리를 사용하였습니다. 'numpy'는 수학적 계산을 위해, 'matplotlib'는 수학계산을 토대로 그래프를 그리기 위해 사용됩니다. 소스코드> import numpy as np import matplotlib.pyplot as plt def unit_step_function(x): return np.where(x>0, 1, 0) x = np.linspace(-5.0, 5.0, 1000) y = unit_step_function(x) plt.plot.. matplolib/신호및시스템 2023. 3. 24. 사각펄스 함수[rect()]에 대해 알아보자!(2) 지난시간에는 사각펄스 함수에서 상승구간과 하강구간의 너비를 변경해보는 시간을 가졌었습니다. 이번시간에는 지난시간에 이어서 진폭을 높이는 코드를 작성해보았습니다. 파이썬코드> import numpy as np import matplotlib.pyplot as plt from pylab import subplot #define the function def x(t,m): #return t * np.where(np.abs(t) < np.pi, 1, 0) return np.where(np.abs(t) < 1, m, 0) #create the time vector t = np.linspace(-20, 20, 100) plt.figure(figsize=(15, 5)) denomi= [1,2,4,8] #denomin.. matplolib/신호및시스템 2023. 3. 22. 사각펄스 함수[rect()]에 대해 알아보자!(1) 사각펄스란? 사각펄스는 크기와 폭이 1이고 사각형 모양의 펄스이며, 소위 구형파라고도 하는데요, 사각파는 기본적으로 아래와 같이 계단함수의 조합으로 나타낼 수 있습니다. 아래코드는 rect()함수의 변수 아래에 분모값이 1,2,4,8 순서로 커질때 화면에 어떻게 출력되는지를 확인할 수 있는 코드입니다. 파이썬코드> import numpy as np import matplotlib.pyplot as plt from pylab import subplot #define the function def x(t,m): #return t * np.where(np.abs(t) < np.pi, 1, 0) return np.where(np.abs(t/m) < 1, 1, 0) #create the time vector t .. matplolib/신호및시스템 2023. 3. 22. 이전 1 2 3 4 5 6 7 다음