파이썬/NIPA 데이터분석 강의

NIPA 데이터분석 첫번째 활용선택 : NumPy 사용해보기

mcdn 2020. 9. 29. 13:04
반응형

2020/09/26 - [파이썬/NIPA 데이터분석 강의] - NIPA 온라인 데이터분석 체험 특강 : 04 그래프까지

 

NIPA 온라인 데이터분석 체험 특강 : 04 그래프까지

마지막으로 학습된 모델로부터 데이터를 예측해보고, 실제 주가 데이터와 예측된 결과값이 어떠한지 확인해보도록 하겠습니다. 지난 실습까지 하여 모델을 성공적으로 학습시켰다면, 이제는 �

so-es-immer.tistory.com

저번에 했던 체험형 특강을 다 듣고 

이제 선택 강의를 듣게 되었다!

 

생각보다 유익하고 간단해서 즐겁게 들을 수 있을 것 같다 ;D

 

첫번째 강의는 01 NumPy 사용해보기다 (22개임 ㅋㅋㅋㅋㅋㅋㅋ)

 

1. NumPy는 Numerical Python의 줄임말이었다 (이름 귀여웠는데 그냥 Num Py 였던거임) 

 

2. NumPy가 필요한 이유 : 데이터의 대부분은 숫자 배열로 나타낼 수 있다. 이때 일차원 배열이 아닌 다차원 배열로 표현해야 하는 자료가 많으므로 다차원 배열을 쉽게 쓸 수 있는 넘파이 라이브러리가 필요한 것. 

3. NumPy 배열 만드는 법 

import numpy as np 로 불러오고 

np.array ([])로 만든다 

 

4. array객체로 만드는 array 함수는 그냥 정수면 정수데이터들로 

실수가 하나라도 있으면 모두 float로 바꿔주고 

dtype를 설정하면 float로 바꿀 수 있다 

Python list와 다르게 단일 타입으로만 이루어져야 한다!

 

5. arr.astype(int)면 float64를 int로 바꿔주는 함수인셈

6. 다양한 배열 만들어 보기 

zeros면 0으로만 이루어진 배열을 

ones는 1로 이루어진 배열을 만든다 

 

arange(0,20,2)같은 경우 for _ in range (x x x ) 처럼 수열을 집어넣어주고 

 

linspace의 경우 0과 1을 5개로 divide해서 집어넣어준다 :D

 

7. 난수로 채워진 배열 만들기 

random.random 아예 랜덤인 숫자를 (2,2) 차원 배열에 맞게 만들어준다. 

random.normal 은 평균이 0이고 표준편차가 1인 숫자를 2,2 에 맞게 만들어주세요라는 뜻이다. (정규분포에서 숫자를 따오게 됨) 

random.randint는 0~10까지 숫자 중에서 골라와 2,2 형태로 만들어주세요다. 

 

퀴즈 성공!

8. 배열의 기초 

다음 x2를 통해 다양한 속성을 확인할 수 있다 

ndim 은 차원을 묻는다 

shape는 사이즈형태를 묻는다 

size는 사이즈 곱을 묻는다 

dtype는 전에 배웠던 자료값 속성을 묻는다. randint로 만들었으니 int 다

 

9. 인덱싱

arange함수 (arrange '정렬' 아니다) 로 순서대로 0~6까지가 들어 있는 리스트가 뽑히게 된다 

 그 전 강의에서 arange(0,20,2)같은 경우 for _ in range (x x x ) 처럼 수열을 집어넣어준다고 말해줬다 

이제 x리스트에서 3, 7 같이 인덱스로 확인해볼 수 있다. 

x[0] = 10하면 0이 10으로 교체된다 

 

10. 파이썬 리스트와 비슷하다! 1:4하면 1 2 3 을 

1: 하면 1부터 끝까지 

::2 하면 0 2 4 6 같이 2씩 건너뛰어 주세요도 요구할 수 있다. 

type(array)와 array.dtype의 차이 

위의 예시에서 type(array)는 class 'numpy.ndarray'이고 array.dtype는 int64다 

 type(array)의 의미는 array라는 변수가 파이썬에서 어떤 자료형으로 저장되고 있는지 알 수 있는 것입니다.

array의 dtype을 출력해보세요. dtype이란, numpy 배열이 갖고 있는 요소의 자료형을 의미합니다.

11. 이차원 배열도 

[2][3] [0:2][1:4]식으로 인덱싱할 수 있다 

11. 다시 

numpy에서 배열은 [2,3]이런식으로 소환한다;; 사실 [2][3]은 문제 없지만 

[0:2][1:4]이게 안된다 

[0:2, 1:4] 이거만 된다!!!!!

 

12. 모양바꾸기 

아까 x.shape했을 때 (8, ) 로 찍어졌다 

reshape((2,4))을 하면 2차원으로 바꿔준다!! 

나누기 보다 모양을 바꿔주는 거다

뒤에 나누는 함수랑 구분지을 것. 

13. concatenate 는 두개의 array를 붙여주는 역할을 한다. 

순서 주의해야 

참고로 concatenate는 사슬같이 잇는다는 뜻으로 컴퓨터 프로그래밍에서 보통 문자열 연결을 의미한다고 한다. 

14. concatenate 는 축을 결정지을 수도 있다. 

우선 matrix변수에 arange(4) [0, 1, 2, 3]이라는 배열을 2, 2로 재구성 시킨다. 그러면 [[0,1][2,3]] 형태의 matrix배열이 탄생. 

concatenate로 matrix를 두번 axis = 0으로 붙여주면 이렇게 세로로 이어진다 

15. axis = 0은 세로 방향 axis = 1은 가로 방향으로 붙는다 

16. 이번에는 나누는 split함수를 본다 

upper, lower처럼 두개가 필요하다 

axis = 0 / axis = 1처럼 가로냐 세로냐로 나누고 

[3] 이전을 기준으로 나눈다 

반응형