데이터 분석/넘파이 7

[Numpy] 데이터 분석 실습 문제

[문제] BMI 지수 계산 및 과체중 이상인 BMI 값 확인 - 10명에 대한 키와 몸무게가 들어있는 'height_weight.txt'를 읽어 각 사람별 BMI 지수를 구하고 비만 전단계 이상인 BMI 값 확인하기 BMI 지수 = 몸무게(kg) / 키(M)의 제곱 체질량지수의 범위 값에 따른 비만도 값 지정 18.5 미만 ▶ 저체중 18.5 ~ 22.9 ▶ 정상 23 ~ 24.9 ▶ 비만 전단계 25 ~ 29 ▶ 1단계 비만 30 ~ 34.9 ▶ 2단계 비만 35이상 ▶ 고도비만 # Numpy 배열 출력 형식 변경 (소수점 이하 3자리까지) np.set_printoptions(precision=3, suppress=True) import numpy as np data = np.loadtxt('heigh..

[Numpy 연습문제]

[문제-1] 길이가 10인 0벡터를 만드세요. import numpy as np a = np.zeros(10, dtype=int) print(a) [0 0 0 0 0 0 0 0 0 0] [문제-2] 길이가 10이며 다섯번째 원소만 1이고 나머지 원소는 모두 0인 벡터를 만드세요. b = np.zeros(10, dtype=int) b[4] = 1 print(b) [0 0 0 0 1 0 0 0 0 0] [문제-3] 10 부터 49까지의 값을 가지는 벡터를 만드세요. c = np.arange(10, 50) print(c) [10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ..

[Numpy] random 모듈

▶ np.random.rand() - 0 이상 1 미만의 임의의 실수를 만든다. shape을 전달하면 그 크기에 맞는 다차원 배열을 생성한다. - [0,1) 범위에서 균등분포의 난수를 발생시킨다. a = np.random.rand() # 난수 1개 발생 print(a) b = np.random.rand(3) # 1차원 벡터 생성 print(b) c = np.random.rand(3,4) # 2차원 배열 생성 print(c) 0.3360715844645519 [0.89081653 0.19812181 0.03061665] [[0.87761494 0.72743551 0.54088093 0.13145815] [0.41366737 0.77872881 0.58390137 0.18263144] [0.82608225 ..

[Numpy] Broadcasting

- shape이 다른 다차원 배열이 연산을 하려고 할 때 특정 조건이 만족되면 자동으로 연산이 가능한 상태로 변환되는 것 - 벡터나 배열 또는 배열과 스칼라 간에 사칙연산을 하면 같은 위치의 원소끼리 계산이 이루어진다. - 이 때 벡터나 배열이 모양이 같아야 하는데, 작은 차원의 데이터가 큰 차원의 데이터로 모양이 맞춰지는 것을 Broadcasting이라고 한다.

[Numpy] 인덱싱 / 슬라이싱 / 반복

■ 인덱싱 import numpy as np a = np.arange(1, 11).reshape(2, 5) print(a) # 1의 값을 뽑아옴 print(a[0][0]) print(a[0,0]) # list에서는 불가한 표현 [[ 1 2 3 4 5] [ 6 7 8 9 10]] 1 1 ■ Boolean indexing (masking) a = np.arange(1, 25).reshape(4, 6) print(a) print('-'*20) # 짝수에 해당하는 값만 True값 반환 (masking 배열) even_arr = a % 2 == 0 print(even_arr) print('-'*20) # masking 값을 원본 데이터의 인덱싱 값으로 넣어줌 print(a[even_arr]) # print(a[a..

[Numpy] 배열 연산

■ 기본 연산 - 배열에 대한 산술연산자는 각각의 요소별로 적용된다. - 연산 시 자료형은 적절하게 형변환(upcasting) 된다. a = np.ones(3, dtype=np.int32) print(a.dtype.name) b = np.linspace(0, np.pi, 3) print(b.dtype.name) # 서로 상응하는 원소끼리 더하기 연산이 이루어짐 c = a + b print(c) int32 float64 [1. 2.57079633 4.14159265] ■ 통계 연산 - 통계 연산은 axis와 밀접한 관계가 있다. - 축 값을 입력하지 않으면 모든 원소에 대한 연산 결과를 출력한다. a = np.arange(12).reshape(3, 4) print(a) print('-'*30) # 축 값을..

[Numpy] 배열 생성

■ Numpy 개요 - URL : https://numpy.org - Numerical Python의 약자 - 고성능의 수치 해석용 Python library - Numpy는 데이터 사이언스 분야에 있어서 기초가 되는 라이브러리로써, Pandas, Matplotlib, Scikit-learn, Tensorflow 등 다른 라이브러리들에서 자주 사용된다. - Numpy 그 자체만으로는 높은 수준의 데이터 분석 기능을 제공하지 않지만, Python 상에서 Numpy를 활용해 데이터를 표현하고 다룰 줄 알아야만 조금 더 고차원적인 데이터 분석을 구현할 수 있다. Numpy는 고성능 다차원 배열과 행렬 연산에 필요한 함수와 툴을 제공 - 대규모의 다차원 배열과 행렬 연산에 필요한 다양한 함수를 제공 - matr..