2020년 3월 13일 금요일

Day_00. Intro_01


9.Python 소개
 공짜에 여러가지 package 역시 쉽게 설치 가능

10.사용 package
 Numpy-다차원 배열에 좋음
 Scipy,matplot,pandas,sklearn package 사용예정

11.python 설치 & jupyter 설치
 Python 3버전 이상으로 설치, 상단에서 진행함

12.python 기초
 Mutable(변경 가능) VS immutable(변경불가)
 -list tuple 의 차이와 같음, 대용량 data의 경우 tuple로 설정해야 메모리의 활용면에서 좋다
 -index VS attribute와도 비슷

 Tuples
-immutable
 -parenthesis(괄호)는 꼭 필요하다
 -zero base index, 고정되어 있기 때문에 요소를 추가하거나 수정이 불가능하다

 List
 -mutable, 생성시 []로 생성
 -생성과 추가시 단일행으로 생성해야 메모리에 부담이 적음
 --list를 생성후 반복문을 사용하는게 아니라 생성과동시에 []안에 반복문을 사용해 생성해준다

Numpy array manipulations
 -행렬 속석,인덱스,슬라이싱,재배열기능

Numpy exercise
 -1. 0으로 채워진 10칸 배열 생성 -- Create len(10) integer array filled with zeros
 --import numpy as np
 --num1=np.zeros(10)
 --num1
-----array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
 **zeros() 함수로 괄호안에 배열의 크기를 지정하면됨, 2x2 배열을 0으로 채우면 2,2로 입력

 -2. 1로 채워진3x5 부동소수점 행렬 생성 -- Create 3x5 floating point array filled with ones
 --import numpy as np
 --num2=.np.ones( (3,5) )
 --num2
-----array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])

 --num2.dytpe
-----dtype('float64')
**ones() 함수에 크기를 지정하면 해당 크기만큼 1로 채워진 배열이 만들어진다

 -3. 3.14로 채워진 3x5 행렬 생성 -- Create 3x5 array filled with 3.14
 --import numpy as np
 --num3=np.full( (3,5),3.14 )
 --num3


-----array([[3.14, 3.14, 3.14, 3.14, 3.14],
[3.14, 3.14, 3.14, 3.14, 3.14],
[3.14, 3.14, 3.14, 3.14, 3.14]])
**full 함수를 사용해서 크기지정 및 채울 숫자를 지정한다

 -4. 0부터 20까지 2씩 증가하는 수로 이루어진 1차원 행렬 생성하기 -- Create an array filled with a linear space starting at 0, ending at 20, stepping by 2
 --num4=np.arange(0,20,2)
 --num4
-----array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
 **arrange parameter로 시작,,공차를 입력

 --num4_1=np.linspace(0,20,50)
 --num4_1


-----array([ 0. , 0.40816327, 0.81632653, 1.2244898 , 1.63265306, 2.04081633, 2.44897959, 2.85714286, 3.26530612, 3.67346939,
4.08163265, 4.48979592, 4.89795918, 5.30612245, 5.71428571,
6.12244898, 6.53061224, 6.93877551, 7.34693878, 7.75510204,
8.16326531, 8.57142857, 8.97959184, 9.3877551 , 9.79591837,
10.20408163, 10.6122449 , 11.02040816, 11.42857143, 11.83673469,
12.24489796, 12.65306122, 13.06122449, 13.46938776, 13.87755102,
14.28571429, 14.69387755, 15.10204082, 15.51020408, 15.91836735,
16.32653061, 16.73469388, 17.14285714, 17.55102041, 17.95918367,
18.36734694, 18.7755102 , 19.18367347, 19.59183673, 20. ])



 -5. 0 1 사이의 간격으로 5개의 값이 있는 배열을 만들기
 -6. 0,1로 균일하게 분포된 3x3 배열 만들기


 -7. 평균이 0이고 표준편차가 1 3x3 배열 만들기
 --num7=np.random.rand(3,3)
 --num7


-----array([[0.1149239 , 0.64128163, 0.03596898], [0.63310452, 0.48144656, 0.46173581],
[0.56705924, 0.34693734, 0.60664531]])
 --num7_1=np.random.normal(0,1,(3,3))
 --num7_1


-----array([[-0.01807637, 0.73399572, -0.27706428], [ 0.82435219, -0.05362918,-0.32663484],
[ 1.22582156, 1.40465787, 1.67893858]])

 -8. [0,10] 사이의 임의의 정수로 구성된  3x3 배열 만들기
 --num8=np.random.randint(0,10,size=(3,3))
 --num8


-----array([[4, 9, 7], [0, 8, 8],[8, 7, 2]])
**randint 함수로 시작,,배열 사이즈를 지정
***rand=0~1사이의 균일 분포 , randn=가우시안 표준 정규분포 randint=지정 숫자 범위 내에서의 랜덤수


 -9. 3x3 identity (정방단위)행렬 만들기
 --num9=np.identity(3)
 --num9


-----array([[1., 0., 0.], [0., 1., 0.],[0., 0., 1.]])
 --num9_1=np.eye(3,k=0,dtype=int)
 --num9_1


-----array([[1, 0, 0], [0, 1, 0],[0, 0, 1]])

댓글 없음:

댓글 쓰기