[파이썬] numpy / pandas 연습문제

in kr •  6 years ago 

오늘은 numpy에 대한 연습문제를 가져 왔습니다!

pandas를 쓸때 유용하고 pandas는 머신러닝할 때

많이쓰여 빅데이터를 하려면 잘 알아야 한다는…!

오늘의 연습문제 입니다!

  1. 1차원 numpy 배열을 만들어 결과와 같이 출력하기
  2. 2차원 numpy 배열을 만들어 결과와 같이 출력하기
  3. 3차원 numpy 배열을 만들어 결과와 같이 출력하기
  4. 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성
  5. 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성
  6. 아래와 같은 행렬을 이용하여 조건에 맞는 코드 작성

Final exam

  1. 'ex1_지역별전기요금.csv' 파일 내용을 읽은 후 상위 5개 데이터 확인
  2. 배열의 크기 확인
  3. 중복 지역 존재 여부 확인 (unique)
  4. 전국 대상 가구수의 합
  5. 가구당 평균 전력사용량의 전국 평균값 (소수점 2자리 까지)
  6. 가구당 평균 전력사용량이 400을 넘는 지역과 대상 가구수

내가쓴식

1.png
2.png
3.png
4.png

설명주석

#1.png
#2.png
#3.png
#4.png

텍스트 식

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도 들고 오도록 하겠습니다 :)

오늘도 읽어주셔서 감사드리고 다들 좋은 하루 되세요!!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!