목록전체 글 (408)
오답노트
주인장 소개 4년제 정보통신공학 전공 정보처리기사 자격증 보유 약 2년 4개월 윈도우 응용프로그램 개발 경력 재직자 국비지원 과정 수료 경험 (약 2개월 코스) 위와 같이 간단히 나에 대해 정보를 열거하는 이유는 앞으로 내가 준비했던 과정들의 배경이 되기 때문이다. 이전까지 졸업을 위해서 그저 취직을 위해서 살아왔는데, 이대로는 더 높은 연봉, 더 좋은 대우를 받기 힘들 것이라 판단하여 퇴사 후 AI 관련 국비지원을 알아보게 되었다. AI 국비지원 교육 현재 k-digital이라는 과정으로 AI를 교육하는 기관들이 많이 존재한다. 눈여겨보던 과정들은 네이버 AI 부트캠프, 코드 스테이츠 AI 부트캠프, 그리고 KT AIVLE School이다. 다른 기관들도 있지만, 자바를 같이 배우거나 혹은 기간이 너무..
vsplit / hsplit vsplit 함수는 행으로 배열을 나누고, hsplit 함수는 열로 배열을 나눈다. 2차원 배열 분할 #2차원 배열 분할 arr = np.arange(1,13).reshape(3,4) print(arr) ''' [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] ''' # vsplit => axis=0 arr_v = np.vsplit(arr,3) print(arr_v) ''' [array([[1, 2, 3, 4]]), array([[5, 6, 7, 8]]), array([[ 9, 10, 11, 12]])] ''' #hsplit => axis=1 arr_h = np.hsplit(arr,4) print(arr_h) ''' [array([[1], [5], [9]])..
append append 함수는 두 배열을 병합하여 한 개의 배열로 반환하는 함수다. 병합 방향은 axis 옵션으로 결정할 수 있다. axis 옵션을 설정하지 않으면 1차원 배열로 병합된 결과를 반환한다. arr1 = np.arange(1,13).reshape(3,4) arr2 = np.arange(13,25).reshape(3,4) print(arr1) ''' [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] ''' print(arr2) ''' [[13 14 15 16] [17 18 19 20] [21 22 23 24]] ''' arr3 = np.append(arr1,arr2,axis = 0) print(arr3) ''' [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12..
insert insert 함수를 사용해서 배열의 원소를 추가할 수 있다. insert 함수 인자로는 원소를 추가할 배열 변수, 원소 추가 위치, 추가할 원소, axis이다. 1차원 배열 insert #1차원 배열 원소 추가 arr = np.arange(1,9) arr = np.insert(arr,2,50) print(arr)# [ 1 2 50 3 4 5 6 7 8] 2차원 배열 insert 2차원 배열 insert는 axis 옵션을 사용하여 행 또는 열을 선택하여 insert할 수 있고, 사용하지 않으면 2차원 행렬을 1차원 행렬로 변경하여 insert 된다. #2차원 배열 원소 추가 arr = np.arange(1,13).reshape(3,4) arr = np.insert(arr,2,[51,52,53,..
전치행렬 전치행렬 위키백과 전치행렬 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org Numpy에서 전치행렬 배열 변수의 T 속성이 전치행렬이다. 아래 코드를 통해 확인해보자 #전치행렬 arr = np.array([[1,2], [3,4]]) print(arr.T) ''''' [[1 3] [2 4]] ''''' arr = np.array([[1,2,3], [4,5,6], [7,8,9]]) print(arr.T) ''''' [[1 4 7] [2 5 8] [3 6 9]] ''''' arr = np.array([[1,2], [3,4], [5,6]]) print(arr.T) ''''' [[1 3 5] [2 4 6]] '''''
reshape 배열의 shape을 변경할 수 있다. 하지만 shape 을 변경할 때, 원소의 개수는 같아야한다. 예를 들어 1차원 배열에 4개의 원소가 있다면, 원소가 4개인 shape을 지정해야한다. 이 경우 2x2 행렬로 reshape 할 수 있다. 또 reshape 에서 shape의 값 중 하나를 -1로 지정할 수 있고 -1은 자동으로 계산된다. 단, 지정되지 않은 한 개의 차원에서만 사용 가능하다. #reshape arr = np.arange(12) print(arr,arr.ndim)# [ 0 1 2 3 4 5 6 7 8 9 10 11] 1 # 기존 배열의 원소의 개수와 reshape 원소의 개수가 같아야함 arr = arr.reshape([3,4]) print(arr, arr.ndim) ''''..
sort sort 함수를 통해 배열을 오름차순 또는 내림차순으로 정렬할 수 있다. 1차원 배열 정렬 sort 함수의 기본은 오름차순이다. 내림차순으로 정렬시 [::-1] 을 붙혀주면 되고, 의미는 처음부터 끝까지 반대 방향으로 보겠다는 의미다. arr = np.random.randint(10,size=10) print(arr)# [0 4 9 6 4 9 8 2 2 2] print(np.sort(arr))# [0 2 2 2 4 4 6 8 9 9] print(np.sort(arr)[::-1])# [9 9 8 6 4 4 2 2 2 0] 2차원 배열 정령 2차원 배열을 정렬 할때, aixs 속성에 따라 행을 기준으로 정렬할지 열을 기준으로 정렬할지 정할 수 있다. 그리고 None으로 주었을 경우 1차원 배열로 정..
배열의 내적 연산 https://dhjkl123.tistory.com/165 [Numpy] 배열의 내적, 절대 값, 소수 관련 연산 내적 연산 / dot product 수학에서 사용하고있는 행렬의 내적 연산을 사용한다. dot 함수를 사용하여 내적 연산을 수행한다. 1차원 배열 내적 연산 스칼라 값이 반환된다. #1차원 행렬 내적 arr1 = np.arra dhjkl123.tistory.com for 문과 속도 비교 for 문으로도 배열의 내적 연산을 구현할 수 있다. 하지만 Numpy의 함수로 사용하면 더 빠르게 연산처리를 할 수 있다. 선택 사항이 아니라 필수 사항이 될 정도로.. import time arr = np.arange(99999999) sum = 0 before = time.time() ..
브로드캐스팅(Broadcasting) 브로드캐스팅은 shape이 다른 두 배열을 연산할 때, 서로의 shape을 맞춰 연산하는 것을 의미한다. 사진 1-1을 보면 3행3열 행렬과 1행3열 행렬을 더하는 연산을 할 때, 1행3열 행렬이 3행3열 행렬로 브로드캐스팅되어 연산된다. 사진 1-2를 보면 두 행렬 모두 행의 개수, 열의 개수가 다르다. 하지만 브로드캐스팅되어 연산된 값을 출력한다. arr1 = np.array([[0,0,0], [1,1,1], [2,2,2]]) arr2 = np.array([5,6,7]) print(arr1 + arr2) ''''''' [[5 6 7] [6 7 8] [7 8 9]] ''''''' arr1 = np.array([[0], [1], [2]]) arr2 = np.array..
비교연산 두 배열의 비교연산이 가능하며 비교연산은 원소들 끼리 비교하고 그 결과를 boolean으로 반환한다. arr1 = np.array([[1,2,3], [4,5,6]]) arr2 = np.array([7,8,3]) print(arr1 == arr2) ''''''' [[False False True] [False False False]] ''''''' print(arr1 > arr2) ''''''' [[False False False] [False False True]] ''''''' array_equal array_equal 함수는 두 행렬이 같은지 아닌지를 판별한다. '==' 연산자는 원소들을 비교하지만 array_equal 함수는 배열 전체를 비교한다. arr1 = np.array([[1,2,3..