728x90
1. 연산 함수
연산 함수: 배열 내부 연산을 지원하는 함수
축: 배열의 랭크가 증가할 떄 마다 새로운 축이 추가되어 차원 증가
- sum 함수: 각 요소의 합을 반환
In | import numpy as np test_array = np.arange(1, 11) test_array.sum() |
Out | 55 |
- sum함수를 랭크가 2이상인 배열에 적용할 떄 축으로 연산의 방향을 설정
In | test_array = np.arange(1,13).reshape(3,4) test_array |
Out | array([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12]]) |
In | test_array.sum(axis=0) |
Out | array([15, 18, 21, 24]) |
In | test_array.sum(axis=1) |
Out | array([10, 26, 42]) |
In | test_array.mean(axis=1) # axis=1 축을 기준으로 평균 연산 |
Out | array([ 2.5, 6.5, 10.5]) |
In | test_array.std() # 전체 값에 대한 표준편차 연산 |
Out | 3.452052529534663 |
In | test_array.std(axis=0) # axis=0 축을 기준으로 표준편차 연산 |
Out | array([3.26598632, 3.26598632, 3.26598632,3.26598632]) |
In | np.sqrt(test_array) # 각 요소에 제곱근 연산 수행 |
Out | array([[1. , 1.41421356, 1.73205081, 2. ], [2.23606798, 2.44948974, 2.64575131, 2.82842712], [3. , 3.16227766, 3.31662479, 3.46410162]]) |
2. 연결 함수
- 연결함수: 두 객체 간의 결합을 지원하는 함수
- vstack 함수: 배열을 수직으로 붙여 하나의 행렬을 생성
- hstack 함수: 배열을 수평으로 붙여 하나의 행렬을 생성
넘파이는 열 벡터를 표현할 수 없어 2차원 행렬 형태로 표현
In | v1 = np.array([1, 2, 3]) v2 = np.array([4, 5, 6]) np.vstack((v1, v2)) |
Out | array([[1, 2, 3], [4, 5, 6]]) |
In | np.hstack((v1,v2)) |
Out | array([1, 2, 3, 4, 5, 6]) |
- concateneat 함수: 축을 고려하여 두 개의 배열을 결합
스택 계열의 함수와 달리 생성될 배열과 소스가 되는 배열의 차원이 같아야 함
두 벡터를 결합하고 싶다면, 해당 벡터를 일단 2차원 배열 꼴로 변환 후 행렬로 나타내야 함
In | v1 = np.array([[1, 2, 3]]) v2 = np.array([[4, 5, 6]]) np.concatenate((v1,v2), axis=0) |
Out | array([[1, 2, 3], [4, 5, 6]]) |
In | v1 = np.array([1, 2, 3, 4]).reshape(2,2) v2 = np.array([[5,6]]).T v1 |
Out | array([[1, 2], [3, 4]]) |
In | v2 |
Out | array([[5], [6]]) |
In | np.concatenate((v1,v2), axis=1) |
Out | array([[1, 2, 5], [3, 4, 6]]) |
3. 사칙연산 함수
In | x = np.arange(1, 7).reshape(2,3) x |
Out | array([[1, 2, 5], [3, 4, 6]]) |
In | x + x |
Out | array([[ 2, 4, 6], [ 8, 10, 12]]) |
In | x - x |
Out | : array([[0, 0, 0], [0, 0, 0]]) |
In | x / x |
Out | array([[1., 1., 1.], [1., 1., 1.]]) |
In | x ** x |
Out | array([[ 1, 4, 27], [ 256, 3125, 46656]], dtype=int32 |
- dot함수: 벡터의 내적 연산
In | x_1 = np.arange(1, 7).reshape(2,3) x_2 = np.arange(1, 7).reshape(3,2) x_1 |
Out | array([[1, 2, 5], [3, 4, 6]]) |
In | x_2 |
Out | array([[1, 2], [3, 4], [5, 6]]) |
In | x_1.dot(x_2) |
Out | array([[22, 28], [49, 64]]) |
- 브로드캐스팅 연산: 하나의 행렬과 스칼라 값들 간의 연산이나 행렬과 벡터간의 연산
In | x = np.arange(1, 10).reshape(3,3) x |
Out | array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) |
In | x + 10 |
Out | array([[11, 12, 13], [14, 15, 16], [17, 18, 19]]) |
In | x - 2 |
Out | array([[-1, 0, 1], [ 2, 3, 4], [ 5, 6, 7]]) |
728x90
'Study > AI' 카테고리의 다른 글
Titanic Survival Prediction (1) | 2024.04.10 |
---|---|
넘파이(Numpy) - 비교 연산과 데이터 추출 (0) | 2023.04.09 |
넘파이(Numpy) - 배열 객체 다루기 (2) | 2023.04.09 |
데이터의 이해 (0) | 2023.04.02 |
머신러닝의 기초 (0) | 2023.04.02 |