ndarray의 원소 추가와 삭제 1) concatenate() 원소 추가 ndarray에 row(s) 혹은 column(s)을 추가 하기 위한 함수 result = np.concatenate(어떤것을 서로 붙일지, 행으로 붙일지 열로 붙일지) axis=0: 행방향/ 가로방향 Python list의 원소 추가 : append() ndarray의 원소 추가 append()가 있긴 하지만 잘 쓰진 않는다. concatenate()를 더 많이 쓴다. 하나의 ndarray와 다른 ndarray 연결 arr에 new_row vector를 하단에 붙인다. 결과적으로 3 x 3 matrix 생성 import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) # 2 x 3 nd..
ndarray 정렬 Numpy array는 axis를 기준으로 정렬하는 sort() 함수 제공 만약, axis를 지정하지 않으면 -1값으로 지정 => 마지막 axis np.sort() : 원본은 변하지 않고, 정렬된 결과 ndarray를 리턴 arr.sort() : 원본을 정렬, return은 None 1) 1차원 ndarray 정렬 import numpy as np arr = np.arange(10) np.random.shuffle(arr) print(np.sort(arr)) # 오름차순 정렬 (default) # ndarray는 특수한 indexing 제공 => 역순으로 정렬하기 위한 index print(np.sort(arr)[::1]) # 한칸씩 움직이기 # [0 1 2 3 4 5 6 7 8 9]..
집계함수 import numpy as np arr = np.arange(1, 7, 1).reshape(2, 3).copy() print(arr) # [[1 2 3] # [4 5 6]] print(arr.sum()) # 21 print(np.sum(arr)) # 21 print(np.cumsum(arr)) # 누적합 => [ 1 3 6 10 15 21] print(np.mean(arr)) # 3.5 print(np.max(arr)) # 6 print(np.min(arr)) # 1 print(np.argmax(arr)) # 최대값의 인덱스/ 순번 => 5 print(np.argmin(arr)) # 최소값의 인덱스/ 순번 => 0 print(np.std(arr)) # 표준편차 1.707 print(np.exp..
Transpose 전치행렬 원본행렬의 행은 열로, 열은 행으로 바꾼 행렬을 의미한다. 전치행렬의 표현은 윗첨자로 T를 이용한다. import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) # 2 x 3 ndarray t_arr = arr.T # 3 x 2 ndaray # [[1 2 3] [[1 4] # [4 5 6]] => [2 5] # [3 6]] # 2 x 3 -> 3 x 2 print(arr) print(t_arr) 원본 행렬의 값을 바꾸면 전치 행렬도 바뀐다. arr[0][0] = 100 print(arr) # [[100 2 3] # [ 4 5 6]] print(t_arr) # [[100 4] # [ 2 5] # [ 3 6]] 벡터(= 1차원 ndarr..
ndarray의 사칙연산, 행렬곱, Broadcasting 사칙연산 : +, -, *, / 행렬곱 : dot product Broadcasting은 사칙연산에서만 일어나고, dot product에서는 일어나지 않는다! 1. 행렬 덧셈 python의 list에서, + 연산자는 concatenation!! ndarray에서 + 연산자는 vector, matrix 연산 ndarray의 사칙연산의 기본 전제는 shape이 같아야 연산이 성립 import numpy as np arr1 = np.array([[1, 2, 3], [4, 5, 6]]) # 2 x 3 ndarray arr2 = np.array([[7, 8, 9], [10, 11, 12]]) # 2 x 3 ndarray print(arr1) print(a..
Numpy05 - ndarray의 Indexing & Slicing 1. 1차원 ndarray import numpy as np arr = np.arange(10, 20, 1) print(arr) # [10 11 12 13 14 15 16 17 18 19] # enumerate() 함수 for (idx, tmp) in enumerate(arr): print("idx : {}, data : {}".format(idx, tmp)) # idx : 0, data : 10 # idx : 1, data : 11 # idx : 2, data : 12 # .. arr = np.arange(10, 20, 1) print(arr[3]) # 13 print(arr[1:4]) # [11 12 13] print(arr[:-1]..
ndrary의 shape 조절 함수 reshape(): 원하는 형태 (shape)으로 ndarray의 shape을 조절 rave(): 1차원 vector (1차원 ndarray)로 shape을 변형 둘 다 view만 바꿈 resize(): reshape()과 상당히 유사 reshape()은 요소가 갯수가 맞지 않으면 안되지만 resize()는 요소의 갯수가 맞지 않아도 shape이 변경된다. 1. reshape() 함수 ndarray는 shape을 가지고 있다. shape 속성의 값을 바꾸어서 ndarray의 형태를 변경하는 것은 그다지 좋지 않다. 대신, reshape() 함수를 사용한다. 1) reshape()은 새로운 ndarray를 만드는게 아니라, View를 생성한다. import numpy a..
랜덤으로 ndarray 생성하기 ndarray를 생성할 때 랜덤값 기반으로 생성할 수 있다. 총 5가지 방법으로 ndarray를 생성할 수 있다. np.random.normal() np.random.rand(d0, d1, d2.. ) np.random.randn() np.random.ranadint(low, high, shape) np.random.random(shape) 1. np.random.normal() 정규분포(평균, 표준편차 이용) 확률밀도함수에서 실수 표본을 추출해서 ndarray 생성 mean = 50 # 평균 std = 2 # 표준편차 arr = np.random.normal(mean, std, (10000, )) # 난수 10000개 추출 print(arr) # [44.50727651 ..