[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/Data & AI 99

[파이썬] Numpy 배열의 연산

Numpy 배열 기본연산 리스트와는 다르게 연산이 각 요소에 대해 진행된다. a = np.array([1, 2, 3]) print(a*3) print(a+a) print(np.repeat(a, 3)) =결과= [3 6 9] [2 4 6] [1 1 1 2 2 2 3 3 3] Numpy 배열끼리의 연산 Numpy 배열끼리의 연산도 각 요소에 대해 하나씩 이루어진다. a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) print(a+b) print(a-b) print(a*b) print(1.0*a/b) =결과= [5 7 9] [-3 -3 -3] [ 4 10 18] [0.25 0.4 0.5 ] 연산의 벡터화 그 외의 특수연산도 마찬가지로 각 요소에 대하여 하나씩 처리된다. x ..

[파이썬] Numpy 배열의 확장 및 삭제

Numpy 행렬의 확장 a = np.array([1, 2, 3]) b = np.append(a, [4, 5, 6]) print(b) =결과= [1 2 3 4 5 6] append 함수를 활용한다. 이는 비항구적으로 작용한다. (a자체가 변경되지는 않음) 기존 numpy에 배열값을 파라미터로 활용해 추가할 수 있다. a = np.array([[1, 2], [3, 4]]) b = np.append(a, [[9, 9]], axis=0) =결과= [[1 2] [3 4] [9 9]] axis 옵션을 조정해 행 혹은 열에만 값을 추가할 수도 있다. axis를 0으로 설정하면 행값이 추가된다. c = np.append(a, [[9], [9]] , axis=1) print(c) =결과= [[1 2 9] [3 4 9]]..

[파이썬] Numpy 배열의 참조 (reshape를 통해 생성한 배열과 값을 공유하는 이유?)

a = np.arange(10) b = a.reshape(2,5) c = a[0:3] a[0] = -999 print(a) print(b) print(c) print(id(a)) print(id(b)) print(id(c)) =결과= [-999 1 2 3 4 5 6 7 8 9] [[-999 1 2 3 4] [ 5 6 7 8 9]] [-999 1 2] 1859077923104 1859077926544 1859077951696 Numpy 배열을 다루는 도중 이해가 안되는 부분이 있었다. a의 값을 변경하면 reshape 혹은 슬라이싱을 통해서 만들어준 Numpy의 배열의 값도 변경된다. 하지만 내가 의문을 가졌던 것은 이 셋의 id가 모두 다름에도 값변경이 공유된다는 점이 의아했다. Numpy 배열 : Vi..

[파이썬] Numpy Fancy Indexing

행 접근하기 a = np.array([[1,2,3],[4,5,6],[7,8,9]]) a[[1, 2]] # =결과= # array([[4,5,6], # [7,8,9]]) 앞서 간단하게 소개했던 바와 같이 [[]]안에 번호를 입력하면 특정 행(ROW)를 불러올 수 있다. 행과 열 접근하기 a = a.array([[1,2,3],[4,5,6],[7,8,9]]) a[[0, 1]][:, [0, 2]] # =결과= # array([[1, 3], # [4, 6]]) 앞서 사용한 방법의 응용이다. 선택한 행에서 첫번째와 세번째 열에 해당하는 요소만 불러온다. Boolean Indexing arr = np.arange(100) arrMask = ( (arr % 5) == 0 ) arr[arrMask] # =결과= # ar..

[파이썬] Numpy 기초

Numpy 패키지란? 과학 계산과 데이터 다루기를 용이하게 해주는 패키지 고차원 배열을 객체로 제공하여 이와 관련된 메소드를 제공한다 Python에서 C이나 Fortran 에 근접한 연산능력을 보여주기 때문에 유용하다 연산의 벡터화를 제공하기 때문에 코딩하기에도 편리하다 리스트와는 다르게 배열의 크기가 정해져있어, 크기 변경시 새 객체가 생성된다. 원소 자료형이 모두 일치되어야 한다 리스트 자료형 이상의 수많은 수학 연산을 기본으로 제공한다. 다른 패키지에서도 Numpy 배열을 기초 자료형으로 사용하곤 한다. Numpy 배열 생성 : 기존 객체 이용 import numpy as np # numpy 패키지를 np라는 이름으로 가져온다 np.__version__ # 버전 확인가능 arr1 = np.array..

딥러닝 기초

딥러닝 인간의 신경망 이론을 이용한 인공신경망의 일종 계층구조로 구성되어 입력층과 출력층 사이에 하나 이상의 은닉층을 가지고 있는 심층 신경망 뉴런의 입력은 다수이고, 출력은 하나이다. 여러 신경세포로 부터 전달받은 신호를 기반으로 일정 수치의 신호를 만든다. 해당 수치가 설정값 이상이면 출력신호가 생기고, 그렇지 않으면 출력신호가 생기지 않는다. 인공신경망도 이와 마찬가지로 입력값을 가중치로 계산해서 특정 값을 만들고, 해당 값에 따라 출력을 한다. 인간의 뇌를 형성하는 뉴런의 집합체를 수학 모델로 표현한 것 1957년 코넬 대학의 Frank Rosenblatt에 의해 고안된 퍼셉트론부터 시작한다. 이후 다층퍼셉트론, 역전파이론, 순환신경망, Drop Out 알고리즘 등 다양한 아이디어를 거치며 발전한..

머신러닝 기초수학2 - 미분

머신러닝의 시작 머신 러닝의 시작은 함수만들기이다. 그래프의 점들을 하나로 표현할 수 있는 함수를 찾는다. (ex. y = ax + b) 보통 머신러닝에서는 기울기와 절편 등의 변수를 세타(θ1, θ2, ...)로 표현한다. 이러한 기울기와 절편의 값을 과거의 관측을 기반으로 조절해가면서 미래 예측에 가장 정확한 값을 찾아가는 것이다. 목적함수 모든 점을 다 지나는 그래프가 있다면 좋겠지만 이는 현실적으로 불가능하므로, 모든 점에서 생기는 오차가 가능한 작아지도록 하는 함수를 찾는 것이 우리의 목표이다. 이러한 오차의 합을 계산하는 함수를 목적함수라고 한다. 목적함수는 각 케이스의 예측치(앞서 결정한 함수이용)와 실제값의 차의 제곱을 모두 더하고, 거기에 1/2을 곱해준 것이다. 여기서 '1/2'은 결과..

머신러닝 기초수학1 - 통계학

통계학 기초 수치 데이터의 수집, 분석, 해석, 표현 등을 다루는 수학의 한 분야 기술 통계학 : 연속형 데이터 / 범주형 데이터 추론 통계학 : 가설 검정 등의 방식으로 전체에 대한 추론을 하는 것 통계 모델링 : 데이터에 통계학을 적용해 변수의 유의성을 분석, 방대한 양의 데이터에 숨겨진 특징을 찾아내는 것. 여러 데이터를 하나의 수학적 모델로 나타낸다. (y = ax + b, 정규분포 등) 확률 분포 : 최빈값, 중앙값(정규분포에서는 중앙값이 최빈값과 동일), 평균(정규분포에서는 중강값,최빈값과 동일) import numpy as np from scipy import stats np.random.seed(0) data_A = np.random.randint(0,100,10000) data_B = n..

머신러닝의 분류

머신러닝 개요 인간이 직접 데이터를 분석해 규칙을 유도, 모델을 구축하는 '기호주의 방식' 머신러닝은 데이터를 이해하는 알고리즘의 과학이자 하나의 어플리케이션이다. 머신러닝은 데이터를 지식으로 바꿀 수 있다. 머신러닝을 활용해 더 효율적으로 지식을 추출할 수 있다. 머신러닝 분류 : 지도학습 지도학습 : 레이블 된 훈련 데이터를 활용해 모델을 학습시켜, 본 적 없는 가까운 미래 데이터에 대한 예측값을 출력하는 것. 분류 : 지도학습의 하위 카테고리. 과거의 관측을 기반으로 새로운 샘플의 범주형 클래스 레이블 예측이 목적. 클래스 레이블은 이 때 클래스를 구분하는 규칙을 점선으로 표현하기도 하는데, 이는 '결정경계'라고 불리기도 한다. (클래스 레이블, 불연속적인 일종의 데이터가 속한 그룹) 대표적인 예로..