본문 바로가기

FALL in/G.MA's 파이썬

[파이썬 Numpy] - 브로드 캐스팅 브로드 캐스팅(Broadcasting) - 브로드 캐스팅이 아닌 방법으로 행렬 연산하기1>>> import numpy as np>>> x = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])>>> v = np.array([1,0,1])>>> y = np.empty_like(x) # x의 모양(4,3)과 같은 행렬을 만들어준다.>>> for i in range(4):... y[i,:] = x[i,:] + v... >>> print y[[ 2 2 4] [ 5 5 7] [ 8 8 10] [11 11 13]] x행렬과 v행렬초기화했을때 구조이다. for문에서 y에 값을 넣는 방식이다. - 브로드 캐스팅이 아닌 방법으로 행렬 연산하기2>>> vv = np.tile(v,(4,1)).. 더보기
[파이썬 Numpy] - 배열 수학 배열 수학(Array math) >>> import numpy as np >>> x = np.array([[1,2],[3,4]], dtype = np.float64) >>> y = np.array([[5,6],[7,8]], dtype = np.float64) # 덧셈 연산>>> print x + y [[ 6. 8.] [ 10. 12.]] >>> print np.add(x,y) [[ 6. 8.] [ 10. 12.]] # 뺄셈연산>>> print x - y[[-4. -4.] [-4. -4.]] >>> print np.subtract(x,y)[[-4. -4.] [-4. -4.]] # 곱셈 연산>>> print x * y[[ 5. 12.] [ 21. 32.]] >>> print np.multiply(x,y)[[.. 더보기
[파이썬 Numpy] - 데이터 타입 데이터타입(Datatypes) >>> import numpy as np >>> x = np.array([1,2])>>> print x.dtype # x의 데이터타입을 출력한다.int64 >>> x = np.array([1.0,2.0])>>> print x.dtypefloat64 >>> x = np.array([1,2],dtype = np.int64) # 특정 데이터타입으로 지정한다.>>> print x.dtypeint64 더보기
[파이썬 Numpy] - 배열 인덱싱 배열 인덱싱(Array indexing) >>> import numpy as np >>> a = np.array([[1,2,3,4,],[5,6,7,8],[9,10,11,12]])>>> print a[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] >>> b = a[:2,1:4] # 0부터 2앞행까지 (0~1행), 1부터 4앞열까지 (1~3열) 잘라서 b배열에 넣는다. >>> print b[[2 3 4] [6 7 8]] >>> print a[0,1]2 >>> b[0,0] = 100 >>> print a[0,1] # b의 [0,0]를 바꾸었는데 원본(a)도 같이 바뀌었다. 100b[0,0]은 a[0,1]와 같은 데이터 조각이다. 따라서 하나를바꾸면 다른 하나도 바뀐다. >>> import .. 더보기
[파이썬 Numpy] - 배열 배열(Arrays) 리스트는 서로다른 타입을 요소로 가질수있다. numpy의 array는 다른 타입섞을수 없다.array는 인덱스를 튜플로 보여준다.(a,b) (as ->numpy.~ 안하고 np.~가능하도록)>>> import numpy as np >>> gma = np.array([1,2,3,4]) # 1차원 배열이 생성된다. >>> print type(gma) >>> print gma[0],gma[1],gma[2],gma[3] # 배열의 인덱스 접근이 가능하다.1 2 3 4 >>> gma[1] = 0 # 배열요소의 변경이 가능하다.>>> print gma[1 0 3 4]>>> >>> gma2 = np.array([[1,2,3],[4,5,6]]) # 2차원 배열이 생성된다.>>> print gma2... 더보기
[파이썬 클래스] 클래스(classes) >>> class Gma(object):... def __init__(self,name):... self.name = name... def hello(self,loud = False):... if loud:... print 'HELLO,%s!' % self.name.upper()... else:... print 'Hello,%s' % self.name... >>> >>> g = Gma('JiYeon') >>> g.hello()Hello,JiYeon >>> g.hello(loud = True)HELLO,JIYEON! >>> 파이썬에서는 클래스 내부에 선언되는 함수는 self를 첫번째 인자로 가져야한다. self는 자기자신 인스턴스를 의미한다. __init__는 생성자를 의미한다. 객.. 더보기
[파이썬 함수] 함수(Functions) >>> def gma(x): ... if x == 0:... return 'zero'... elif x == 1:... return 'one'... else:... return 'two'... >>> for x in range(3): # range(3) -> [0,1,2]... print gma(x)... zeroone two함수 정의할때는 ' def ' 키워드를 사용한다. >>> def hello(name,loud = False): ... if loud:... print 'HELLO,%s!' % name.upper()... else:... print 'Hello,%s' % name... >>> hello('JiYeon')Hello,JiYeon>>> hello('G.ma',lou.. 더보기
[파이썬 Containers] - 튜플 튜플(Tuples) 튜플은 변하지않는(immutable) 값들의 순서있는 리스트이다. 튜플은 리스트와 유사하지만, 중요한 차이점은 튜플은 딕셔너리의 '키(key)'로 사용될수 있다. 키 값은 변할수 없으므로 리스트는 키로 사용될수 없다. >>> dic = {(x,x+1):x for x in range(10)} # 튜플을 키로한 딕셔너리를 만든다. >>> print dic{(0, 1): 0, (1, 2): 1, (6, 7): 6, (5, 6): 5, (7, 8): 7, (8, 9): 8, (4, 5): 4, (2, 3): 2, (9, 10): 9, (3, 4): 3} >>> tup = (6,7) # 튜플을 생성한다.>>> print type(tup) >>> print dic[tup] # (6,7)을 키로한.. 더보기
[파이썬 Containers] - 집합 집합 (Sets) 집합은 순서가 없고, 중복되면 안된다. >>> fruits = {'apple','orange'} # 집합 초기화 >>> print 'apple' in fruits # fruits집합안에 'apple'이 있으면 True를 리턴.True >>> print 'banana' in fruitsFalse >>> fruits.add('banana') # fruits집합에 banana를 추가한다.>>> print 'banana' in fruitsTrue >>> print len(fruits) # 집합의 길이 반환.3 >>> fruits.remove('apple') # fruits집합에서 'apple'를 제거한다.>>> print len(fruits)2 -집합 루프(loops)>>> fruits = {.. 더보기
[파이썬 Containers] - 딕셔너리 딕셔너리 (Dictionaries) 딕셔너리는 (key, value)를 저장하는데 key는 구분자이고 value는 내용이다. 예를들어 사전에서 apple을 찾는다고하자. apple은 key가 되는것이고 apple에 대한 설명이 value 가 되는것이다. >>> dic = {'G.ma':'blog','Jiyeon':'person'} # 딕셔너리 초기화 >>> print dic['Jiyeon'] # dic에서 'Jiyeon' 인 키를 찾아 value를 출력한다.person >>> print 'Jiyeon' in dic # dic안에 'Jiyeon'이라는 키가 있는지 찾는다. 있으면 True 출력True >>> dic['cat'] = 'animal' # dic에 key와 value를 추가한다.>>> print.. 더보기