Coursera.org 에서 Michigan University의 Applied Data Science with Python의 강의를 토대로 정리한 내용입니다.
오늘은 Numpy라는 파이썬을 활용한 데이터마이닝에셔 결코 빠질 수 없는 아주 기본적인 라이브러리에 대해서 알아보도록 할게요.
import numpy as np #이런식으로 라이브러리를 불러오면 된답니다.
mylist = [1, 2, 3]
x = np.array(mylist)
# x가 array([1, 2, 3])와 같은 형식으로 저장이 됩니다.
m = np.array([[7, 8, 9], [10, 11, 12]])
#array([[ 7, 8, 9],
# [10, 11, 12]]) 와 같은 형식으로 저장이 됩니다.
m.shape
# (2,3)이 출력이 되겠죠?
n = np.arange(0, 30, 2) #이런식으로 일정의 규칙을 우리가 만들어 데이터를 생성할 수도 있습니다.
# array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]) 이 될 것 같네요!
이 외에도 Numpy가 지원하는 수많은 기능들이 있는데요. 이는 공식 documentation 이나 구글링을 통해서 알아보실 수 있구요.
위에 간단하게 보인 특성에서도 드러나듯이 Numpy는 행렬이나 일반적으로 대규모차원의 데이터를 다루는 데 매우 유용하답니다.
뿐만 아니라 Numpy는 다양한 수학적인 함수들을 제공하고 있어요.
.sum() .max() .mean() .median() .std() 다 어떤 함수들일 지 예상이 가시죠?
.argmax()나 .argmin()은 각각 최댓값과 최솟갓의 index를 리턴한답니다.
Numpy를 활용하면서 주의해야하는 것 중 하나는 copy() 기능이에요.
아래의 설명을 참고하세요 :)
r = np.arange(36)
r.resize((6, 6))
#위의 코드를 통해 r은 1부터 36까지 6*6행렬로 나타나게 된답니다.
r2 = r[:3,:3] # 이 중 3행과 3열까지 3*3행렬을 r2에 할당한 후,
r2[:] = 0 #을 통해 모든 값들을 0으로 바꾼다면 r2는 당연히 np.zeros((3*3))과 같이 3*3 0행렬이 되죠.
#그런데 주의해야할 점은 이러한 설정이후
print(r) #을 해보면 r 역시 3행 3열까지 0으로 바뀌어있다는 것을 알 수 있습니다.
#이를 통해 numpy에서의 =을 활용한 할당은 copy가 아닌 주소복사가 일어난 다는 것을 알 수 있는데요.
#이를 예방하기 위해서는
r_copy = r.copy() #와 같이 .copy()를 활용하여 값을 복사하면 된답니다.
'Programming > Data mining' 카테고리의 다른 글
6. Pandas 심화 (Merge(), Pandorable code) (0) | 2020.02.04 |
---|---|
5. pandas 기초(Querying a DataFrame, Indexing) (0) | 2020.02.04 |
4. pandas 기초(series, dataframe) (0) | 2020.02.04 |
2. Objects and map() (0) | 2020.02.03 |
1. 왜 파이썬인가? _ 파이썬을 활용한 데이터마이닝 (0) | 2020.02.03 |