본문 바로가기
반응형

머신러닝을 위한 파이썬 기초/넘파이9

[파이썬 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.
[파이썬 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.
파이썬 넘파이 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.
[파이썬 넘파이] 크기, 차원, 행 수, 전체 원소 수 아래 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.
[파이썬 넘파이] 배열에서 최댓값 및 최솟값 위치 출력 최댓값 위치(인덱스) 출력 np.argmax(변수명) 최솟값 위치(인덱스) 출력 np.argmin(변수명) 2023. 9. 21.
[파이썬 넘파이] 배열에서 True 인 원소의 인덱스를 추출하기 True 와 False를 원소로 갖는 배열을 하나 만들어 줍니다. a=np.array([True,True,False,False,True]) >>> a array([ True, True, False, False, True]) True 인 행의 index만 추출하는 방법은 아래와 같습니다. >>> a.nonzero() (array([0, 1, 4], dtype=int64),) 2023. 9. 18.
[파이썬] ValueError: Expected 2D array, got 1D array instead: 오류 해결 방법 입력값이 1차원 배열이라서 발생하는 문제입니다. 1차원 배열을 2차원으로 바꿔주면 되는데, 그 방법을 알아봅시다. 아래와 같은 1차원 배열이 있습니다. ar=np.array([1,2,3,4,5]) 차원을 확인해봅시다. >>> ar.ndim 1 1차원입니다. 위 배열을 2차원 배열로 바꾸는 방법은 아래와 같습니다. ar2=ar.reshape(5,1) >>> ar2 array([[1], [2], [3], [4], [5]]) 차원을 확인해봅시다. >>> ar2.ndim 2 2차원으로 바뀌었습니다. 변환을 편하게 하는 법 변환할 때, (5,1) 을 입력했는데 이때 5는 배열 원소 수입니다. 배열 원소 수가 얼마든 상관 없이 (어쩌구,1)로 변형하고 싶을 때는 -1을 사용하면 됩니다. 아래와 같이 사용합니다. >.. 2023. 9. 5.
반응형