목록Python/Numpy (17)
오답노트
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..
최소값 min 함수를 사용해 배열의 원소 중 최소 값을 찾을 수 있다. 혹은 aixs 옵션을 사용해 행 또는 열 중에 최소 행 또는 최소 열을 찾을 수 있다. arr = np.array([[1,2,3], [0,1,4]]) #최소값 print(np.min(arr))# 0 print(arr.min())# 0 # axis => 0: 행 1: 열 print(arr.min(axis = 0)) # [0 1 3] print(arr.min(axis = 1)) # [1 0] 최대값 max 함수를 사용해 배열의 원소 중 최대 값을 찾을 수 있다. 혹은 aixs 옵션을 사용해 행 또는 열중에 최소 행 또는 최소 열을 찾을 수 있다. arr = np.array([[1,2,3], [0,1,4]]) #최대값 print(np.ma..