본문 바로가기
카테고리 없음

엘리스 데이터 분석 - 2

by 노아론 2018. 11. 21.
Welcome file

데이터 분석 도전하기 - 2

matplotlib, numpy, pandas 사용법에 대해 다룹니다.

이전 포스트
데이터 분석 도전하기 - 2

Elice Numpy, Pandas 데이터분석 강의 와 함께 진행할 수 있습니다.

Numpy

행렬 연산을 Python으로 제공하는 라이브러리다

모든 코드에는
import numpy as np 로 Numpy import 한다.

기본 연산

행렬의 기본적인 연산을 아래와 같이 작성할 수 있다.

array = np.arange(5)
print(array)
print("array + 5:", array + 5)
print("array + 5:", array - 5)
print("array + 5:", array * 5)
print("array + 5:", array / 5)

행렬간의 덧셈, 뺄셈은 아래와 같이 가능하다.

print("배열 덧셈: ", array + array2)
print("배열 뺄셈: ", array - array2)

reshape, concatenate

reshape : 행렬 구조 변경이 가능합니다.

print("array")
array = np.arange(8)
print(array)
print("shape: ", array.shape, "\n")
array [0 1 2 3 4 5 6 7] 
shape: (8,) 
print("# reshape (2,4)")
matrix = array.reshape((2,4))
print(matrix)
print("shape: ", matrix.shape, "\n")
# reshape (2, 4) 
[[0 1 2 3]
 [4 5 6 7]]
shape: (2, 4)

concatenate : 행렬간의 붙이기가 가능합니다.
Java의 String 함수인 concat과 비슷한 기능을 합니다.

axis에 따라 행렬을 합하는 기준이 달라집니다.
아래 코드를 참고하여 쉽게 이해가 가능합니다

axis = 0 일때

print("matrix 두개 axis 0으로 붙이기")
m = np.concatenate([matrix, matrix], axis = 0)
print(m, "\n")
matrix 두개 axis 0으로 붙이기 
[[0 1 2 3]
 [4 5 6 7] 
 [0 1 2 3]
 [4 5 6 7]] 

axis = 1 일때

print("matrix 두개 axis 1으로 붙이기")
m = np.concatenate([matrix, matrix], axis = 1)
matrix 두개 axis 1으로 붙이기
[[0 1 2 3 0 1 2 3] [4 5 6 7 4 5 6 7]]

집계함수

  • sum, min, max, mean과 같은 기능을 지원한다.
matrix = np.array([[0 1 2 3], [4 5 6 7]])
print(matrix)
print("sum:", np.sum(matrix))
print("min:", np.min(matrix))
print("max:", np.max(matrix))
print("mean:", np.mean(matrix))
[[0 1 2 3]
 [4 5 6 7]]
sum: 28 
min: 0 
max: 7 
mean: 3.5




지금까지 익힌 Numpy 라이브러리 사용법을 통하여,
늑대가 나타났다!
의 문제를 풀어보았다.

이를 변형하여,
0, 1로 구성된 행렬에서 0이 아닌 수를 출력해본다.

n = [1 if i%3 else 0 for i in range(0,300)]
# 0 1 1 0 1 1 0 1 1 패턴으로 300개의 원소로 구성되어졌다.  
np_array = np.array(n)
print(np_array)
print(np.count_nonzero(np_array))

count_nonzero를 이용하여 Numpy 행렬의 원소에서 0이 아닌 것들의 합을 구할 수 있다.

# [0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1] 
200

위와 같이 출력된다.

이것으로 Numpy의 사용법에 대해 마친다.

다음 목차에서는 pandasmatplotlib에 대해 다룬다.

댓글