기계는 거짓말하지 않는다

Python NumPy 슬라이스, 통계 본문

Python

Python NumPy 슬라이스, 통계

KillinTime 2021. 6. 28. 19:12

ndarray 배열 슬라이싱

import numpy as np

arr = np.arange(0, 10)
arr1 = arr[2:6]
arr1[0] = 15 # shallow copy
print(arr)
print(arr1)

print()
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr1 = arr[:2, 1:3]
arr1[0, 0] = 5 # shallow copy
print(arr)
print(arr1)

실행 결과

배열을 잘라 따로 가지고 올 수 있지만 위와 같은 코드는 얕은 복사가 되며, 원본 데이터도 같이 바뀌게 된다.

아래와 같이 copy()를 이용한다.

import numpy as np

arr = np.arange(0, 10)
arr1 = arr[2:6].copy()
arr1[0] = 15 # shallow copy
print(arr)
print(arr1)

print()
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr1 = arr[:2, 1:3].copy()
arr1[0, 0] = 5 # shallow copy
print(arr)
print(arr1)

실행 결과

NumPy 기본 통계 메서드

메서드 설명
sum 배열 전체, 혹은 특정 축에 대한 모든 원소의 합
mean 산술 평균 계산
std 표준 편차 계산
var 분산 계산, std의 제곱과 같음
min 최솟값
max 최댓값

 

CSV 임의 데이터

위와 같은 CSV 파일도 불러와 메서드 사용 결과를 확인 할 수 있다.

import numpy as np

try:
	# delimiter 기준으로 나누고 1행을 무시한다, datatype은 int형으로
    data_set = np.loadtxt(fname='임의데이터.csv', delimiter=',', skiprows = 1, dtype='int64')
except IOError:
    print('파일을 불러올 수 없습니다')
    exit(1)

print('전체 데이터 값')
print(data_set, '\n')
print('shape: ', data_set.shape) # (행, 열)

print('전체 데이터 합: {}'.format(data_set.sum()))
print('전체 데이터 평균: {}'.format(data_set.mean()))
print('각 열의 평균: {}'.format(data_set.mean(axis=0, dtype='int64'))) # x 축으로 (column), 데이터 셋의 열 별(axis=0은 열을 뜻함)
print('각 열의 최댓값: {}'.format(data_set.max(axis=0)))
print('각 열의 최솟값: {}'.format(data_set.min(axis=0)))

실행 결과

'Python' 카테고리의 다른 글

Python Pandas(Panel Data)  (0) 2021.07.01
Python Direct kernel connection broken 에러  (0) 2021.06.30
Python NumPy(Numerical Python)  (0) 2021.06.27
Python 반복문  (0) 2021.06.26
Python 조건문, 관계, 논리, 비트 연산자  (0) 2021.06.25
Comments