Python 33

11-1. Numpy 재정리 - 연산, 인덱싱, 정렬

1. 연산 (기본 집계 연산) 1) 기본적으로 python 연산보다 numpy 내장 메소드를 사용하는 것이 빠르다. ndarray일 경우, A.min() 으로 해주면 알아서 numpy연산이 됨 2) 다차원일 경우에도 동일하다. (행과 열이 생길뿐) 집계 함수 총 정리 2. 연산 (브로드캐스팅) 1) 브로드캐스팅에는 다음과 같은 규칙이 있다. 규칙 1 : 두 배열의 차원이 다르면, 작은 차원의 배열을 1로 간주하여 같은 차원으로 만든다. 규칙 2 : 두 배열의 차원이 다르고, 행열도 일치하지 않는다면 행 또는 열 중 1인 값이 늘어난다. 규칙 3 : 두 배열의 차원이 다르고, 행열도 다르며, 1도 없으면 오류가 발생함. Ex 1) 규칙 1처럼 차원이 다르기 때문에, 1차원 배열을 (1,3)인 2차원 배열로..

Python/Numpy 2020.02.18

11. Numpy 재정리 - 생성, 인덱싱, 슬라이싱, 재구조화

1. 배열 생성 1) 그냥 np.array()에 넣어준다. 2) zeros, ones, full, eye 3) arange, linspace 4) random.random / random.normal / random.randint 2. 인덱싱 1) [행, 열]로 인덱싱하면 됨. 3. 슬라이싱 기본적으로 x[start : stop : step] 1) 1차원 슬라이싱 2) 다차원 슬라이싱 3) 슬라이싱의 특징 일부를 슬라이싱 한 뒤, 값을 변경하면 원본 데이터의 값이 변경된다. 원본이 변경되지 않게 값을 수정하고 싶다면, 하드카피를 이용해서 수정해야 한다. copy( ) 4. 배열의 재구조화, 연결, 분할 1) 재구조화 reshape( ) 1차원배열을 다차원으로, 다차원배열을 1차원으로 쉽게 바꿀 수 있다...

Python/Numpy 2020.02.13

10. Jupyter Notebook 단축키

1. tab (자동 완성) 파이썬 객체와 연결된 속성과 메소드를 검색해서 다음과 같이 결과 값을 보여준다. import에서도 가능하다. 2. cell관련 명령어 shift + Enter : 실행 후, 아래 cell로 이동 alt + Enter : 실행 후, 아래 cell을 추가 H : 단축키설정 보기 A : 위에 cell 추가 B : 아래에 cell 추가 X : Cut C : Copy V : Paste Z : Undo F : Find & Replace DD - 셀 삭제 3. %명령어 (매직 명령어) 1) %run : 외부의 py파일을 실행가능 (ipynb파일은 실행이 불가능함) 2) %timeit : 실행 시간을 측정해줌. (한줄만) 여러줄을 측정하고 싶으면 %%timeit을 사용하면 된다. timeit..

9. python numpy 메소드

numpy는 numeric python의 약자로 파이썬의 연산을 빠르게 해주는 패키지이다. numpy의 메소드들이 엄청 많아서 모든것을 외울 수는 없다. 없으면 찾아서 적용하면 됨! 그래도 최소한 이런 것들이 있다는 것은 알아야 찾아볼 수 있을 것... 기본적으로 numpy는 C를 기반으로 연산하기 때문에, 파이썬의 계산보다 훨씬 빠르다. 따라서 numpy의 메소드에 for문을 사용하는 건 절대 하지말아야 할 일. 1. Array만들기 numpy는 dynamic typing을 지원하지 않음. 여러가지 형의 데이터를 넣을 수 없다. 숫자만 쓰도록 하자. #Rank 1 Array(1차원) #Rank 2 Array(2차원) #3차원은 tensor import numpy as np #1차원 x=np.array(..

Python/Numpy 2019.10.03

8. Python의 여러 내장함수

1. 문자열.split(",") string을 잘라서 list를 만듬 a='Hello my name is K' a,b,c,d,e = a.split() #unpacking #split(",") 는 ,를 기준으로 자름 #a=Hello b=my c=name d=is e=k 2. ",".join(리스트) list를 합쳐 string을 생성 a='Hello my name is K' result = a.split() #unpacking remake = ",".join(result) #'Hello,my,name,is,K' 3. list comprehension list 선언하면서 동시에 for문을 실행. (속도가 빠르다고 함) #일반적 코드 result = [] for i in range(10): result.app..

Python/기초 2019.09.26

파이썬 버전관리를 위한 아나콘다 사용법(파이참 연동)

1. 아나콘다를 설치하자. https://www.anaconda.com/distribution/ Anaconda Python/R Distribution - Free Download Anaconda Distribution is the world's most popular Python data science platform. Download the free version to access over 1500 data science packages and manage libraries and dependencies with Conda. www.anaconda.com 자신의 os에 맞는 설치파일을 다운로드 + 설치진행 path추가는 하고싶으면 하고, 하기 싫으면 하지말자. 2. anaconda prompt 실행해..

7. 파이썬의 클래스, 모듈, 패키지

Class 1. 클래스 생성 및 기초 같은 객체를 여러개 만들어야할 때, 클래스를 만들어두면 인스턴스를 쉽게 생성할 수 있다. class Bank: def __init__(self, name): self.name = name def get_name(self): return self.name def call_name(self, num): print("좋아 은행의 %s고객님은 %d번째 손님입니다" % (self.name, num)) x = Bank("Jack") print(x.get_name) x.call_name(3) 1)메소드는 def 함수명(변수): 내용 2) self라는 인수는 입력하지 않아도 알아서 인스턴스 명으로 호출되어 들어간다 3) __init__은 생성자로 클래스로 인스턴스를 만들때 반드시 ..

Python/기초 2019.09.22

6. 파이썬의 함수, 입출력

함수 1. 함수의 구조 1) 입력인수가 있고, 리턴값도 있음 def 함수명(입력 인수) : 내용 return 2) 입력 인수가 있고, 리턴값은 없음 def 함수명(a,b): 내용 3) 입력인수가 없지만, 리턴값만 있음 def 함수명(): 내용 return 4) 입력 인수가 없고, 리턴값도 없음 def 함수명(): 내용 2. 입력 값이 여러개일 경우 1) *args를 사용 def sum(*args): sum=0 for i in args: sum += i return sum 2) 일반 인수랑 *args를 동시에 사용할 수도 있다. def calc(what, *args): result = 0 if what == 'sum': if i in args: result += i elif what == 'sub': if..

Python/기초 2019.09.22

4. 파이썬의 자료형(딕셔너리, 집합)

1. 딕셔너리 key, value값을 가지는 자료형 순서가 없음(인덱싱이 불가능함) 리스트나 튜플과는 다르게 key값을 통해서 value값을 구함 d1={'sports':'baseball','name':'홍길동','age':'35','family':[홍버지, 홍머니]} #value에는 리스트를 넣을 수도 있다. 이때 ' '는 사용하지않는다. (숫자형도 마찬가지) d1['sports'] #key값을 갖는 value를 가져옴. 결과 : baseball 1) 딕셔너리 추가, 삭제 a={1:'a'} #삽입 a[2]='b' #a={2:'b',1:'a'} #삭제 del a[1] #a={2:'b'} 이때 1은 key값을 말함. 2) 관련함수 key리스트 만들기 keys d1={'sports':'baseball','n..

Python/기초 2019.09.19