오늘은 numpy에 대한 연습문제를 가져 왔습니다!
pandas를 쓸때 유용하고 pandas는 머신러닝할 때
많이쓰여 빅데이터를 하려면 잘 알아야 한다는…!
오늘의 연습문제 입니다!
- 1차원 numpy 배열을 만들어 결과와 같이 출력하기
- 2차원 numpy 배열을 만들어 결과와 같이 출력하기
- 3차원 numpy 배열을 만들어 결과와 같이 출력하기
- 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성
- 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성
- 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성
Final exam
- 'ex1_지역별전기요금.csv' 파일 내용을 읽은 후 상위 5개 데이터 확인
- 배열의 크기 확인
- 중복 지역 존재 여부 확인 (unique)
- 전국 대상 가구수의 합
- 가구당 평균 전력사용량의 전국 평균값 (소수점 2자리 까지)
- 가구당 평균 전력사용량이 400을 넘는 지역과 대상 가구수
내가쓴식
설명주석
텍스트 식
1. 1차원 numpy 배열을 만들어 결과와 같이 출력하기
#[ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
import numpy as np
ex1 = np.array([i for i in range(1,30) if i%2 == 0 ])
#[ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
ex1 = np.array(range(0,30,2))
#[ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
print(ex1)
#[ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
2. 2차원 numpy 배열을 만들어 결과와 같이 출력하기
[[10, 20, 30, 40],
50, 60, 70, 80]]
ex2 = np.array([[10,20,30,40],[50,60,70,80,]])
print(ex2)
[[10, 20, 30, 40],
50, 60, 70, 80]]
3. 3차원 numpy 배열을 만들어 결과와 같이 출력하기
#[[ 1, 2, 3],
[ 4, 5, 6]],
#[[ 7, 8, 9],
[10, 11, 12]],
#[[13, 14, 15],
[16, 17, 18]],
#[[19, 20, 21],
[22, 23, 24]]]
ex3 = np.array([range(1,25)]).reshape(4,2,3)
print(ex3)
#[[ 1, 2, 3],
[ 4, 5, 6]],
#[[ 7, 8, 9],
[10, 11, 12]],
#[[13, 14, 15],
[16, 17, 18]],
#[[19, 20, 21],
[22, 23, 24]]]
#4. 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성
#vector = np.array(range(0, 30, 2))
- 값 24 인덱싱
- 값 6 인덱싱
vector = np.array(range(0, 30, 2))
#[ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
print(vector[12])
#24
print(vector[3])
#6
#5. 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성
matrix = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
])
#- 값 8 인덱싱
#- 값 2 인덱싱
#- 값 9 인덱싱
#- 값 15 인덱싱
#arr[행인덱스,열인덱스]
print(matrix[1,3])
#8
print(matrix[0,1])
#2
print(matrix[2,0])
#9
print(matrix[3,2])
#15
#6. 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성
vector = np.array(range(-1, -6, -1))
#[-1, -2, -3, -4, -5]
코드 작성 – boolean 배열 이용
boolean_idx = [False, True, False, True, False]
print(vector[boolean_idx])
#[-2 -4]
int_idx = [1,3]
print(vector[int_idx])
#[-2 -4]
#6. 1 ~ 30 의 실수로 이루어진 5 x 6 형태의 데이터 행렬을 만든 후 조건에 맞는 코드 작성
ex_6 = np.array(range(1,31)).reshape(5,6)
print(np.max(ex_6))
#30
print(np.sum(ex_6, axis = 1))
#[ 21, 57, 93, 129, 165]
print(np.mean(ex_6, axis = 0))
#[13., 14., 15., 16., 17., 18.]
#7 [[1, 2, 3], [4, 5, 6]]를 각행에 각각 10,20입력
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[10,20]])
ex7=np.concatenate((a,b.T),axis = 1)
#다른버전 -> ex7=np.concatenate((a,b.transpose()),axis = 1)
print(ex7)
[[ 1, 2, 3, 10],
[ 4, 5, 6, 20]]
#Final exam
#1. 'ex1_지역별전기요금.csv' 파일 내용을 읽은 후 상위 5개 데이터 확인
ex1 = np.loadtxt('/Users/rexypark/spyder_py/rexyPython/ex1_지역별전기요금.csv', delimiter = ',', encoding = 'ISO-8859-1', dtype = np.int)
ex1
ex1[0:5]
#[[ 1, 565082, 273, 27177],
[ 2, 2827233, 444, 45111],
[ 3, 1144913, 289, 29043],
[ 4, 1131034, 230, 22436],
[ 5, 380425, 391, 38020],
[ 6, 668623, 364, 35245]]
#2. 배열의 크기 확인
print(ex1.shape)
#(17, 4)
#3. 중복 지역 존재 여부 확인 (unique)
print(np.unique(ex1[:, 0]))
#[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
#4. 전국 대상 가구수의 합
print(np.sum(ex1[:, 1]))
#14882047
#5. 가구당 평균 전력사용량의 전국 평균값 (소수점 2자리 까지)
print(round(np.mean(ex1[:,2]), 2))
335.18
#6. 가구당 평균 전력사용량이 400을 넘는 지역과 대상 가구수
print(ex1[ex1[:, 2] > 400, 0:2])
#[[ 2, 2827233],
[ 10, 49394]]
numpy 이해만 조금하면 쉽게 풀리는 것 같아요!
다음에 기회되면 빠르게 pandas도 들고 오도록 하겠습니다 :)
오늘도 읽어주셔서 감사드리고 다들 좋은 하루 되세요!!