본문 바로가기
반응형

머신러닝을 위한 파이썬 기초40

[파이썬 numpy] 여러 점들에 변환행렬 한번에 적용하기 아래와 같이 여러개의 점이 하나의 배열에 들어 있습니다. import numpy as nppoints = np.array([[4, 5, 6], [7, 8, 9], [10, 11, 12], [10, 11, 12], [10, 11, 12]]) 아래와 같은 변환행렬을 각각의 점에 적용하고 싶은 상황입니다. x축 대칭이동을 해주는 변환행렬입니다. T=np.array([[1,0,0],[0,-1,0],[0,0,1]])1. 원초적인 방법가장 원초적인(?) 방법은 for 문을 이용하여 한 점씩 변환하는 것입니다. 아래와 같이 합니다. ar=np.empty([0,3])for point in p.. 2024. 10. 13.
[파이썬 numpy] 비어있는 배열 만들고 원소 추가하기 비어있는 배열을 만들고 점(point)와 같은 원소를 추가해야 하는 상황에서 사용하는 방법입니다. 비어있는 배열에 아래와 같이 3차원 점들을 for 문을 이용하여 하나씩 추가해주려고 합니다.points = np.array([[4, 5, 6], [7, 8, 9], [10, 11, 12], [10, 11, 12], [10, 11, 12]]) 비어있는 배열을 하나 만들어줍니다. 추가할 배열들의 차원과 일치하는 크기로 만들어주어야 합니다.ar=np.empty([0,3]) 위 코드를 잘 이해해야 합니다. 행렬로 생각해보면 0행 3열입니다. x,y,z 라는 열 이름만 만들어 놓은 상태라고.. 2024. 10. 13.
비주얼스튜디오 코드에서 파이썬 코드라인 shift+tab 으로 실행되게 하기 비주얼스튜디오 코드 위에 있는 검색창에서 아래 코드를 입력합니다. >Preferences: Open Keyboard Shortcuts 단축키 검색창에 shift+enter 을 입력하고 Python: python.execSelectionInTerminal 를 제외한 나머지를 지워줍니다. Python: 으로 시작하는 것만 지우면 됩니다. 2024. 10. 12.
[파이썬 numpy] 벡터와 행렬의 연산 이해하기 벡터와 행렬의 연산에는 numpy의 dot product를 사용하면 됩니다. dot product는 우리가 흔히 아는 행렬의 곱셈입니다. 차이가 있다면 3x3행렬과 행벡터를 곱해도 곱셈이 수행됩니다. 열벡터로 바꿔주지 않아도 알아서 곱셈이 수행됩니다. 몇가지 곱셈을 봅시다. 3x3 행렬과 벡터 사이의 곱을 해봅시다. 아래와 같이 3x3 행렬과 벡터 하나를 정의했습니다.import numpy as npA=np.array([[1,2,3],[10,20,30],[100,200,300]])b=np.array([4,5,6]) 위 행렬과 벡터를 곱할 때는 dot 연산자를 사용합니다.>>> np.dot(A,b)array([ 32, 320, 3200]) 아래 곱셈의 결과와 같습니다. $$  \begin{bmatrix.. 2024. 10. 12.
파이썬으로 텍스트 읽는 방법 (문장단위, 줄단위) mytext.txt 라는 파일이 있다고 합시다. 여러 줄의 내용이 적혀 있는 텍스트 파일 입니다. 내용은 숫자도 있고 문자도 있습니다. 내용은 아래와 같습니다.  파이썬에서 이 파일의 내용을 불러오기 위해서 먼저 이 파일을 열어줘야 합니다.  일단 코드를 봅시다.  file_path='C:/documents/myfile.txt'file_opened=open(file_path, 'r')myfile.txt 라는 파일을 열었습니다. r은 read 를 의미합니다.  '읽기 위해 열었다'  정도로 생각하면 됩니다.  이제 내용을 가져오겠습니다. 내용을 가져오는 방법은 두 가지가 있습니다. 전체 내용을 문자열로 가져오는 방법과, 각 줄을 리스트 원소로 가져오는 방법입니다.  1) 전체 내용을 문자열로 가져오기rea.. 2024. 7. 1.
[파이썬 판다스] 데이터프레임 특정 조건을 만족하는 특정 열에 접근하기 데이터 분석 및 조작을 위해 널리 사용되는 판다스 라이브러리는 데이터프레임이라는 효율적인 자료구조를 제공합니다. 때로는 특정 조건을 만족하는 데이터에만 관심이 있을 때가 있습니다. 이때, 특정 열에 접근하여 원하는 데이터를 추출하는 방법을 알아봅시다. import pandas as pd # 예시 데이터프레임 생성 data = {'이름': ['Alice', 'Bob', 'Charlie', 'David'], '나이': [25, 30, 22, 35], '성별': ['여', '남', '남', '여']} df = pd.DataFrame(data) print(df) # 나이가 25세 이상인 데이터만 추출 condition = df['나이'] >= 25 filtered_df = df[condition] print(f.. 2024. 1. 10.
파이썬에서 함수를 다른이름으로 정의해서 사용하기 파이썬에서 아래와 같은 함수를 정의했다고 합시다. def myfun(a,b) : return a+b 이 함수를 다른 이름으로 불러와서 사용하고 싶은 경우 아래와 같이 변수를 정의하면 됩니다. fun1=myfun 이제 fun1 이라는 이름으로 사용할 수 있습니다. 아래와 같이 정의할 경우 사용 시 에러가 발생합니다. fun2=myfun() 2023. 12. 20.
파이썬 인스턴스를 함수처럼 사용하는 방법 __call__ 클래스를 가지고 인스턴스를 정의한 뒤에, 인스턴스이름(x,y)와 같은 형태로 메소드를 사용하고 싶은 경우 __call__ 메소드를 사용합니다. 예를 들어 봅시다. 아래와 같이 덧셈과 곱셈을 해주는 클래스를 하나 정의합시다. class calculator : def __init__(self): self.name='my function' def add(self,x,y): return x+y def mult(self,x,y): return x*y 아래와 같이 작동합니다. >>> mycal=calculator() >>> mycal.add(1,5) 6 >>> mycal.mult(1,5) 5 우리는 mycal(x,y) 라고 입력하면 곱셈이 수행되도록 하고 싶은 상황입니다. 인스턴스를 함수처럼 사용하고 싶은 것입니다.. 2023. 11. 3.
파이썬 클래스 상속과 super 이해하기 상속은 클래스 사이에서 일어납니다. A라는 클래스를 먼저 정의했다고 합시다. 이어서 B라는 클래스를 정의하는데, A라는 클래스의 메소드들을 가져와서 쓰고싶은 경우 B가 A를 상속받을 수 있습니다. 이때 메소드를 제공하는 클래스를 parent 또는 super 라고 부르고, 상속을 받는 클래스를 child 또는 sub 라고 부릅니다. parent(상속자)-child(피상속자) super(상속자)-sub(피상속자) 예를 한번 들어봅시다. 아래와 같이 부모 클래스를 하나 만들었습니다. class parent_or_super : def __init__(self): print("") def add(self,x,y): return x+y def mult(self,x,y): return x*y 인스턴스를 정의하고 메소.. 2023. 11. 2.
파이썬 for문 이용하여 여러 그래프 한 화면에 그리기 (MNIST) MNIST 데이터는 손글씨 데이터입니다. train 데이터만 60000장입니다. 이중 원하는 개수를 for 문을 이용하여 화면분할 그래프를 그리는 방법입니다. 코드는 아래와 같습니다. #필요한 패키지들 불러오기 from torchvision.datasets import MNIST from torchvision.transforms import ToTensor import matplotlib.pyplot as plt #MNIST 데이터 불러오기 training_data=MNIST(root="./",train=True,download=True,transform=ToTensor()) test_data=MNIST(root="./",train=False,download=True,transform=ToTensor().. 2023. 11. 2.
파이썬 넘파이 1차원 열벡터로 바꾸는 방법 reshape 함수를 사용합니다. 아래와 같이 사용합니다. import numpy as np a=np.array([[1,2,3],[4,5,6]]) >>> a.reshape((-1,1)) array([[1], [2], [3], [4], [5], [6]]) -1이 뭔지 궁금해하시는 분들이 많은데 -1은 열벡터로 만들겠다는 뜻입니다. -1,1 은 열벡터로 만들고 원소 하나씩을 갖게 하겠다는 의미입니다. -1,2 는 열벡터로 만들고 원소 두개씩을 갖게 합니다. >>> a.reshape((-1,2)) array([[1, 2], [3, 4], [5, 6]]) 2023. 10. 26.
파이썬 print 에서 f와 {} 의 의미 print 함수에서 f를 붙이면 {}안에 변수를 넣어 사용할 수 있습니다. %와 비슷한 포멧팅 기능인데 더 최신기능입니다. 아래는 예시입니다. >>> a=3 >>> print(f"이건 {a} 라구") 이건 3 라구 2023. 10. 26.
[파이썬 넘파이] 크기, 차원, 행 수, 전체 원소 수 아래 array를 예로 들어 설명하겠습니다. >>> ar=np.array([[1,2,3],[5,6,7]]) >>> ar array([[1, 2, 3], [5, 6, 7]]) 1. 크기 >>> ar.shape (2, 3) 2. 차원 >>> ar.ndim 2 3. 행의 수 (첫번째 차원 수) >>> len(ar) 2 4. 전체 원소 수 >>> ar.size 6 2023. 10. 11.
[파이썬 넘파이] 반올림, 올림, 버림 반올림 np.round(배열이름,자릿수) 올림 np.ceil(배열이름,자릿수) 버림 np.trunc(배열이름,자릿수) 2023. 10. 11.
파이썬 리스트 원소를 부울형(논리형)으로 바꾸는 법 아래와 같은 리스트의 원소를 논리형으로 바꾸는 방법을 알아봅시다. gene=[1,1,1,1,1,1,1,1,1,1,0,0,0,0,0] 어떤 값을 논리형으로 바꾸는 함수는 bool 인데 개별 값에만 적용 가능하므로 리스트에 적용하려면 for문을 사용해야 합니다. for문 사용 아래와 같은 for문을 작성하면 됩니다. li=[] for x in gene : li.append(bool(x)) 결과는 아래와 같습니다. >>> li [True, True, True, True, True, True, True, True, True, True, False, False, False, False, False] 함수 정의 아래와 같이 함수를 정의해서 사용할 수도 있습니다. def convert_to_bool(li): retu.. 2023. 10. 11.
반응형