Numpy Array Aggregation functions

2022. 6. 29. 23:00Data Science/with Python(Numpy, Pandas …ect.)

Aggregation functions

Numpy에서 많이 사용되는 또다른

함수들로 전체 데이터에 대한 계산값을

돌려주는 함수라 따로 뺐다.

mat1 = np.random.randn(5.3)

앞서 만들었던 mat1을 이어서 사용할 거다.

 

# 행렬의 모든 값들의 합
np.sum(mat1)

# 옵션 추가 - column 별 총합 뽑아내기
np.sum(mat1, axis=0)

# 옵션 추가 - row 별 총합 뽑아내기
np.sum(mat1, axis=1)

# 평균
np.mean(mat1)

옵션에서 axis=0은 열을 의미하고,

axis=1은 행을 의미한다고 이미

약속되어 있는 거다.

 

mat3 = np.random.rand(5,3)

다른 평균값들 계산을 위해 행렬을 하나

더 생성하였다. 근데 이때 사용한 함수는

randn이 아닌 단순한 rand로 0~1 사이의

양수값만 갖는 것이 특징이자 차이점이다.

갑자기 randn이 아닌 rand를 사용하는 건

별다른 이유가 아니라 그냥 보기 편하려고;;;ㅎ

 

# 표준편차
np.std(mat3)

# 최소값 - 아래 경우 각 column에서 최솟값만 뽑아낸 거.
np.min(mat3, axis=0)

# 최대값 - 아래 경우 각 row에서 최대값만 뽑아낸 거.
np.max(mat3, axis=1)

여기까지는 옵션에 대한 사전 지식만

있으면 이해하는 데는 크게 어려움이 없다.

 

아래는 더 자주 사용하는 함수로

최솟(대)값이 들어있는 원소의

index를 출력해주는 함수이다.

# 최솟값이 있는 Index
np.argmin(mat3)

# 최대값이 있는 Index
np.argmax(mat3)

# 각 column에서 최솟값의 Index들 출력
np.argmin(mat3, axis=0)

# 각 row에서 최대값의 Index들 출력
np.argmax(mat3, axis=1)

# 누적합 - index 순서
np.cumsum(mat3)

# row 별 누적합
np.cumsum(mat3, axis=1)

# column 별 누적 product
np.cumprod(mat3, axis=0)

그 다음으로 또 자주 사용하는

함수가 바로 정렬이다.

# 그냥 정렬 (row 별로 : default값)
np.sort(mat3)	# 그래서 왼쪽 코드는 np.sort(mat3, axis=1)와 같다. axis=0이면 column별로.

# index 정렬
## 정렬된 다음의 index를 원래 원소의 위치에 표시해준다.
np.argsort(mat3)

ndex 정렬은 row별로

0 : 첫번째로 큼, 1 : 두번째로 큼,

2 : 3번째로 큼… 라고 츨력된다.

argument sorting에서 정렬된 값의

원래 위치를 보여준다고 생각하면 된다.

# index 정렬 - column 별 version
np.argsort(mat3, axis=0)

그리고 만약 column 별로 나타내고 싶다면

argsort 역시 옵션에 axis=0을 넣어주면 된다.

'Data Science > with Python(Numpy, Pandas …ect.)' 카테고리의 다른 글

Pandas 란..  (0) 2022.06.30
Numpy performance test  (0) 2022.06.30
Numpy Array Functions  (0) 2022.06.29
Numpy Indexing+Masking  (0) 2022.06.29
Numpy Operation  (0) 2022.06.29