🚩 Numpy(Numeric python)

: 수리적 파이썬 활용을 위한 파이썬 패키지
: np.arrary 다차원 배열을 사용하여 벡터의 산술 연산 가능
: 브로드캐스팅을 활용하여 shape이 다른 데이터의 현산 가능
🧷import numpy as np


🌈 데이터 구분

🔸스칼라(Scalar)

: 실수 혹은 정수
: +, -, *, / 사칙 연산 결과 → 스칼라

🔸벡터(Vector)

: [1, 2, 3, 4] - 배열, 문자열
: +, -, 내적, / 사칙 연산 결과 → +, - : 벡터, 내적 : 스칼라
✨벡터와 벡터의 내적(A^TA)
: 벡터가 마주하는 shape의 개수(길이)가 같야아 함
➡️ n x m 행렬이면 m x q와 내적 가능
: 연산 앞에 위치한 벡터는 전치(transpose) 되어야 함

🔸매트릭스(Matrix)

: n x m 형태의 행렬
🧷[[1, 2, 3, 4],
   [5, 6, 7, 8]]

🔸텐서(Tensor)

: n x m x q 형태의 다차원 배열
🧷[[[1, 2, 3, 4],
   [5, 6, 7, 8]],
   [1, 2, 3, 4],
   [5, 6, 7, 8]]]


🌈 브로드캐스팅

: 벡터 연산 시 shape이 큰 벡터의 길이만큼 shape이 작은 벡터가 연장되어 연산
: 저차원 배열의 연산을 고차원 배열로 확장
🧷예를 들어 np.arange(3) + 5 → [[1, 2, 3]] + 5 : 각 요소에 5 더해짐 → [[6, 7, 8]]


🌈 Numpy 함수

🔸수리연산

🧷prod()-곱, dot()-내적(@사용 권장),
🧷sum(), cuprod() - 누적곱, cumsum() - 누적 합
🧷abs(), sqaure() - 제곱, sqrt(), exp() - 지수 변환, log() 등

🔸통계연산

🧷mean(), std(), var(), max(), min()
🧷argmax() - 최대값의 인덱스, argmin() - 최소값의 인덱스

🔸로직연산

🧷arange(시작포인트, 마지막 포인트, 스텝수) - 범위설정으로 데이터 생성
🧷isnan() - 결측치 확인, isinf() - 발산 확인,
🧷unique() - 중복값 제거(set 적용 가능)

🔸수리연산

🧷shape(), reshape(array명, (변경할 shape)), ndim() - 차원확인, transpose() - 전치행렬

🔸범위 데이터 생성

🧷np.linspace(시작포인트, 마지막포인트 + 1, 데이터개수) - 지정한 범위의 지정한 개수만큼 생성

🔸정렬

🧷np.sort() - () 안에 axis = 0 : 행, axis = 1 : 열을 설정하여 행/열 기준을 설정하여 정렬


🌈 array

🔸Numpy array(배열, 행렬)

: numpy 연산의 기본이 되는 데이터 구조
: 브로드캐스팅 연산 지원
: 같은 type의 데이터만 저장 가능
🧷np.array(배열변환 대상 데이터)
🧷np.arange(start, end, step_forward)
🧷np.linspace(start, end, 데이터 개수) - 소수점 데이터도 만들어줌

💭특수 형태의 array를 함수로 생성

🍀np.ones() : 배열을 1로 초기화하여 생성
🍀np.zeros() : 배열을 0으로 초기화하여 생성
🍀np.empty() : 배열을 빈 값으로 초기화하여 생성
🍀np.eye() : 항등행렬 초기화(shape이 안맞는 경우 연산이 가능하도록 할때)

💭array 속성

🍀array명.dtype : 데이터 타입 확인
🍀array명.shape : 데이터 구조 확인
🍀array명.ndim : 데이터 차원 확인
🍀array명.T : 전치행렬

💭array 내장함수는 numpy 함수와 같음

💭array 내적

🧷 a @ b
: 가중합을 계산할 때 쓰일 수 있음
🍀가중합(weighted sum)
: 복수의 데이터를 단순히 합하는 것이 아니라 각각의 수에 어떤 가중치 값을 곱한 후 이 곱셈 결과들을 다시 합한 것
a = np.array([1, 2, 3]), b = np.array([100, 200, 300])
a @ b → (1 x 100 ) + (2 x 200) + (3 x 300) = 1400

💭✨array 인덱싱, 슬라이싱

➡️ 리스트와 동일

🍀인덱싱
: 데이터 집합 안에 든 내용 하나에 접근하는 명령, 내용의 순번

🍀슬라이싱
: 데이터 집합 안에 든 내용 여러가지에 접근하는 명령
🧷array명[행 인덱스, 열 인덱스, ...n축 인덱스]
🧷3차원이라면 array명[내부 배열 집합 인덱스, 행 인덱스, 열 인덱스]

🍀팬시인덱싱
: numpy에서 벡터 연산을 통해 bool 형태의 벡터를 기준으로 데이터를 선별하는 방법
🧷리스트명[조건식, 추출할 데이터 인덱스]

profile
To be Data Analysist

0개의 댓글