본문 바로가기
반응형

전체 글387

[파이썬 numpy] 배열의 거듭제곱, 제곱근, 세제곱근 [파이썬 numpy] 배열의 거듭제곱, 제곱근, 세제곱근 배열의 거듭제곱 (**연산자) 배열을 하나 정의합시다. >>> import numpy as np>>> A=np.arange(6).reshape(2,3)>>> A array([[0, 1, 2], [3, 4, 5]]) 거듭제곱을 할 때는 ** 연산자를 사용합니다. **뒤에 원하는 거듭제곱값을 입력하면 됩니다. >>> A**2array([[ 0, 1, 4], [ 9, 16, 25]], dtype=int32) 배열의 제곱근(sqrt 메소드) 배열을 하나 정의합시다. >>> A=np.arange(6).reshape(2,3)>>> A array([[0, 1, 2], [3, 4, 5]]) 제곱근을 구할 때는 넘파이의 sqrt 메소드를 사용합니다. >>> np... 2020. 11. 12.
[파이썬 numpy] 배열의 두 축을 서로 바꾸기 (swapaxes 메소드) [파이썬 numpy] 배열의 두 축을 서로 바꾸기 (swapaxes 메소드) swapaxes 는 정의된 배열에서 두 축을 서로 바꿔줍니다. 오직 두개의 축만 입력할 수 있습니다. 예를들어 4차원 배열이라면, 그 중 축 2개를 골라서 입력해 주어야 합니다. swapaxes 메소드는 T메소드를 포함하고, transpose 메소드에는 포함되는 개념입니다. 집합관계를 나타내면 아래와 같습니다. T메소드 >> A=np.arange(6).reshape(2,3)>>> Aarray([[0, 1, 2], [3, 4, 5]]) swapaxes 를 적용하면 T나 transpose 를 적용한 것과 같은 결과가 나옵니다. >>>.. 2020. 11. 11.
[파이썬 numpy] 배열의 전치를 원하는 방향으로 (transpose 메소드) [파이썬 numpy] 배열의 전치를 원하는 방향으로 (transpose 메소드) transpose 메소드는 T메소드보다 확장된 방법이다. T메소드는 배열의 shape을 역방향으로 바꾸는 것만 할 수 있지만 transpose 메소드는 원하는 방향으로 바꿀 수가 있다. 방향이 정방향과 역방향 둘 뿐인 2차원 배열에서는 T메소드와 transpose 메소드의 결과가 같다. 하지만 3차원 이상에서는 달라질 수 있다. 2차원 배열 shape이 (2,3)인 배열을 하나 정의하자. 2행 3열로 해석할 수도 있다. >>> A=np.arange(6).reshape(2,3)>>> Aarray([[0, 1, 2], [3, 4, 5]]) T메소드를 적용해보자. >>> A.Tarray([[0, 3], [1, 4], [2, 5]].. 2020. 11. 11.
[파이썬 numpy] 원하는 크기의 배열 쉽게 만드는 방법 [파이썬 numpy] 원하는 크기의 배열 쉽게 만드는 방법 배열을 공부할 때 여러 차원의 배열을 정의하며 이래저래 변형해 보고 싶은 경우가 있습니다. 매번 리스트를 이용하여 정의하기가 귀찮은데요. 이럴 때 사용하는 방법입니다. arrange 메소드와 reshape 메소드를 함께 사용해주면 됩니다. 몇가지 예시를 통해 알아봅시다. 2행4열짜리 배열 (shape이 2,4) >>> A=np.arange(8).reshape(2,4)>>> Aarray([[0, 1, 2, 3], [4, 5, 6, 7]]) 3행5열에 높이 2짜리 배열 (shape이 2,3,5) >>> A=np.arange(30).reshape(2,3,5)>>> A: array([[[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [1.. 2020. 11. 11.
[파이썬 기초] 이스케이프 문자 [파이썬 기초] 이스케이프 문자 이스케이프 문자는 역슬래쉬와 조합하여 만들어진 특수문자입니다. 예를들어 문자열을 만들 때 두 줄로 만들고 싶다고 해봅시다. 엔터를 입력해도 개행이 되지 않습니다. 이런 경우 이스케이프 문자인 \n을 사용합니다. \ 첫행 또는 마지막행 자동개행 무시\\ 역슬레쉬\' 작은따옴표\" 큰따옴표\a Bell\b 백스페이스\f formfeed\n 개행\r carriage return (이스케이프 문자 무시하고 그대로 출력)\t Horizontal tab\v Vertical tab\xhh 16진수로 아스키 문자 표현\ooo 8진수로 아스키 문자 표현\N{ id } id 를 지정하여 유니코드 문자 표현\uhhhh 16비트 16진수로 유니코드 문자 표현\Uhhhhhhhh 32비트 16진수.. 2020. 11. 11.
[파이썬 기초] 리스트 생성 시 값만 참조하는 방법 [파이썬 기초] 리스트 생성 시 값만 참조하는 방법 A라는 리스트를 만들고, A를 참조하여 B를 만들었다고 합시다. >>> A=[1,2,3]>>> B=A>>> B[1, 2, 3] 위와 같이 참조할 경우 A의 일부가 바뀌면 B가 함께 바뀐다는 문제가 있습니다. >>> A[0]=100>>> B[100, 2, 3] 물론 의도한 것이라면 상관 없습니다. 만약 의도한 것이 아니고, A의 일부가 바뀌어도 B가 바뀌지 않길 원한다면 아래와 같이 B를 정의해주면 됩니다. >>> A=[1,2,3]>>> B=A[:]>>> B[1, 2, 3] A의 일부를 수정해봅시다. >>> A[0]=1000>>> B[1, 2, 3] B가 바뀌지 않은 것을 알 수 있습니다. 2020. 11. 10.
[파이썬 기초] 리스트 생성 시 주의할 점 (리스트 참조) [파이썬 기초] 리스트 생성 시 주의할 점 (리스트 참조) 리스트를 참조하여 생성할 때 주의할 사항이 있습니다. 이해를 위해 예를 하나 들겠습니다. 리스트 A를 정의하고, A를 참조하여 B를 만들겠습니다. >>> A=[1,2,3]>>> B=A>>> B[1, 2, 3] 만약 A를 통채로 바꾸면 B가 어떻게 될까요? >>> A=[10,20]>>> B[1, 2, 3] B는 처음에 참조한 값에서 바뀌지 않습니다. 그렇다면 한번 참조한 뒤에는 A의 변화가 B에 영향을 미치지 않는걸까요? 다시 A를 정의하고, A를 참조하여 B를 만들어봅시다. >>> A=[1,2,3]>>> B=A>>> B[1, 2, 3] 이번에는 A의 첫번째 원소만 바뀌봅시다. >>> A[0]=100>>> B[100, 2, 3] B가 바뀌었습니다... 2020. 11. 10.
[파이썬 numpy] 행렬의 곱셈 하는 법 (dot 메소드) [파이썬 numpy] 행렬의 곱셈 하는 법 (dot 메소드) 파이썬에서 행렬의 곱셈을 할 때는 dot 메소드를 사용합니다. inner 메소드도 행렬의 곱셈이 수행되기는 하나 우리가 알고 있던 행렬의 곱셈과는 결과가 다릅니다. dot 메소드와 inner 메소드의 비교는 다른 글에서 하겠습니다. 이번 글에서는 dot 메소드를 사용하여 행렬의 곱셈을 해봅시다. 두 행렬을 정의합시다. >>> import numpy as np>>> A1=np.array([[1,2,3],[4,5,6]])>>> A2=np.array([[1,2,3],[4,5,6]]) dot 메소드를 적용해봅시다. >>> np.dot(A1,A2)Traceback (most recent call last): File "", line 1, in np.do.. 2020. 11. 10.
[파이썬 numpy] 벡터곱 하는법 (고등학교에서 배운 그 외적, cross 메소드) [파이썬 numpy] 벡터곱 하는법 (고등학교에서 배운 그 외적, cross 메소드) 넘파이에서 벡터곱을 하는 방법을 알아봅시다. 고등학교에서 배운 그 외적이 맞습니다만, 외적이라 불리는 다른 연산이 있어서 혼동을 피하기 위해 벡터곱이라고 불렀습니다. 텐서곱을 의미하는 outer product 도 번역하면 외적입니다. 따라서 외적이라고 부를 경우 둘 중 무엇을 의미하는지 헷갈리기 때문에, 영문명으로 부르던지 아니면 벡터곱과 텐서곱으로 부르는 것이 좋습니다. 앞으로 벡터곱이라고 하면, 여러분이 고등학교에서 사용한 그 외적을 떠올리시면 됩니다. 두 벡터를 정의합시다. >>> import numpy as np>>> V1=np.array([3,0,0])>>> V2=np.array([0,2,0]) 벡터곱을 해봅시.. 2020. 11. 10.
[파이썬 numpy] 외적이 헷갈리는 이유 (cross product, outer product 차이) [파이썬 numpy] 외적이 헷갈리는 이유 (cross product, outer product 차이) 외적이라 불리는 연산은 두가지가 있습니다. 1) cross product (고등학교에서 배운 벡터의 외적, 벡터곱)2) outer product (외적, 텐서곱) 고등학교에서 우리는 1번을 외적이라고 불렀습니다. 하지만 영어 의미를 생각했을 때, 외적이라고 번역되기에는 2번이 더 알맞아 보입니다. 실제로 2번도 외적이라고 불립니다. 여기서 혼동이 발생합니다. 누군가 '외적' 이라고 말하면, 그것이 무엇을 의미하는지 알 수가 없는 것입니다. 고등학교에서 배운 외적은 cross product로 전혀 외적으로 번역될 이유가 없습니다. 그런데 왜 외적으로 불리게 된걸까요? 그 이유는 내적의 반대의미로 불리게 .. 2020. 11. 10.
[파이썬 numpy] 벡터의 내적 (dot 또는 inner 메소드) [파이썬 numpy] 벡터의 내적 (dot 또는 inner 메소드) 벡터의 내적에는 dot 메소드 또는 inner 메소드가 사용됩니다. 벡터의 내적은 dot 연산 또는 스칼라곱이라고도 부릅니다. 벡터의 내적은 내적의 한 종류입니다. 2차 이상의 배열인 행렬부터는 dot 메소드와 inner 메소드의 결과가 다르지만, 1차원 배열인 벡터에서는 결과가 동일합니다. 두 벡터를 정의해봅시다. >>> import numpy as np>>> V1=np.array([1,2,3])>>> V2=np.array([1,2,3]) dot 메소드를 적용해봅시다. >>> np.dot(V1,V2)14 inner 메소드를 적용해봅시다. >>> np.inner(V1,V2)14 2020. 11. 10.
[파이썬 numpy] 배열 전치하는 법 (T 메소드) [파이썬 numpy] 배열 전치하는 법 (T 메소드) 배열을 하나 정의합시다. A=np.array([[1,2,3],[4,5,6]]) 2행 3열인 배열입니다. >>> Aarray([[1, 2, 3], [4, 5, 6]]) 위 배열의 전치배열을 만들 때는 T 메소드를 사용합니다. >>> A.Tarray([[1, 4], [2, 5], [3, 6]]) 고차원 배열에도 적용해봅시다. A2=np.arange(24).reshape(2,3,4) 3행4열짜리 배열이 2층 쌓여있다고 해석할 수 있습니다. >>> A2array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]) 전치를 .. 2020. 11. 9.
[파이썬 numpy] 배열과 비교연산자 [파이썬 numpy] 배열과 비교연산자 배열과 배열 사이에 비교연산자를 적용해봅시다. 먼저 아래와 같이 두 배열을 정의합시다. >>> A=np.array([1,2,3])>>> B=np.array([4,5,6]) 비교연산자를 적용해봅시다. >>> A>> A>Barray([False, False, False]) >>> A==Barray([ True, True, True]) >>> A>=Barray([ True, True, True]) >>> A 2020. 11. 9.
[파이썬 numpy] 배열과 제곱, 나머지 연산자 [파이썬 numpy] 배열과 제곱, 나머지 연산자 배열과 배열 사이에 제곱과 나머지 연산자를 적용해봅시다. 먼저 아래와 같이 두 배열을 정의합시다. >>> A=np.array([1,2,3])>>> B=np.array([4,5,6]) 제곱과 나머지 연산자를 적용해봅시다. >>> A**Barray([ 1, 32, 729], dtype=int32) >>> A%Barray([1, 2, 3], dtype=int32) 같은 위치에 있는 원소끼리 연산이 수행됩니다. 2020. 11. 9.
[파이썬 numpy] 배열의 사칙연산 [파이썬 numpy] 배열의 사칙연산 배열과 배열 사이에 사칙연산을 적용해봅시다. 먼저 아래와 같이 두 배열을 정의합시다. >>> A=np.array([1,2,3])>>> B=np.array([1,2,3]) 사칙연산을 수행합시다. >>>A+Barray([2, 4, 6]) >>> A-Barray([0, 0, 0]) >>> A*Barray([1, 4, 9]) >>> A/Barray([1., 1., 1.]) 같은 위치에 있는 원소끼리 연산이 수행됩니다. 2020. 11. 9.
[파이썬 numpy] 다른 배열의 데이터타입을 이용하여 데이터타입 정의 [파이썬 numpy] 다른 배열의 데이터타입을 이용하여 데이터타입 정의 데이터 타입이 실수인 배열을 하나 정의합시다. >>> A=np.array([1,2,3],dtype=np.float64)>>> A.dtypedtype('float64') A의 데이터타입을 이용하여 배열 B를 정의합시다. >>> B=np.array([4,5,6],dtype=A.dtype)>>> B.dtypedtype('float64') 2020. 11. 9.
[파이썬 numpy] 배열 데이터타입 변경 (astype메도스) [파이썬 numpy] 배열 데이터타입 변경 (astype메도스) 배열을 하나 정의합시다. >>> A=np.array([1,2,3]) 데이터 타입은 정수형입니다. >>> A.dtypedtype('int32') astype을 이용하여 실수로 변경하고, A2에 저장합시다. >>> A2=A.astype(np.float64)>>> A2array([1., 2., 3.]) 데이터타입이 실수로 변경되어 A2에 저장된 것을 알 수 있습니다. >>> A2.dtypedtype('float64') 2020. 11. 9.
[파이썬 numpy] 난수 배열 생성 (표준정규분포) [파이썬 numpy] 난수 배열 생성 (표준정규분포) 표준정규분포에서 원하는 사이즈의 배열을 생성하는 방법입니다. 넘파이의 random.randn 메소드를 사용합니다. 사용 방법은 아래와 같습니다. np.random.randn(행의수,열의수) 아래는 예시입니다. >>> np.random.randn(1,5)array([[-0.53474255, -0.26824767, 0.40051976, 0.20902571, 0.85302316]]) >>> np.random.rand(5,1)array([[0.09908128], [0.69543208], [0.47818293], [0.29011454], [0.28634044]]) >>> np.random.rand(3,2)array([[0.62751618, 0.35258331].. 2020. 11. 9.
[파이썬 numpy] 난수 배열 생성 (균등분포) [파이썬 numpy] 난수 배열 생성 (균등분포) 0~1사이의 실수값을 갖는 균등분포에서 원하는 사이즈의 배열을 생성하는 방법입니다. 넘파이의 random.rand 메소드를 사용합니다. 사용 방법은 아래와 같습니다. np.random.rand(행의수,열의수) 아래는 예시입니다. >>> np.random.rand(1,5)array([[0.52472279, 0.91808213, 0.24951246, 0.46484689, 0.24740284]]) >>> np.random.rand(5,1)array([[0.61691968], [0.23109204], [0.93270193], [0.00745551], [0.93411614]]) >>> np.random.rand(3,2)array([[0.13940972, 0.487.. 2020. 11. 9.
[파이썬 numpy] 난수 배열 생성 (구간 사이 정수값) [파이썬 numpy] 난수 배열 생성 (구간 사이 정수값) 특정 구간 사이값을 갖는 하나의 정수를 추출하는 방법입니다. 넘파이의 random.randint 메소드를 사용합니다. 사용 방법은 아래와 같습니다. np.random.randint(시작값,끝값+1) 아래는 예시입니다. -5이상, 2이하의 정수 중 하나를 임의로 출력합니다. >>> np.random.randint(-5,3)2 >>> np.random.randint(-5,3)-3 >>> np.random.randint(-5,3)-3 2020. 11. 9.
[파이썬 기초]텍스트 파일 읽기 [파이썬 기초] 텍스트 파일 읽기 텍스트 파일을 읽을 때는 open 함수를 사용합니다. 아래와 같은 형식으로 사용합니다. open('경로',옵션) 옵션은 아래와 같습니다. 디폴트는 r입니다. r 읽기전용w 쓰기전용. 새 파일을 생성, 같은 이름의 파일 삭제x 쓰기전용; 새파일을 생성, 같은 이름의 파일 있으면 생성안됨a 기존 파일 끝에 추가r+ 읽고 쓰기b 뒤에 b를 붙이면 이진파일에 해당. (ex. wb,rb) 텍스트 파일 만들기 먼저 원하는 경로에 텍스트 파일을 하나 생성하고 아래 내용을 적고 myfile 이라는 이름으로 저장해봅시다. The Apple is redThe Banana is yellowThe Orange is orange 제가 저장한 경로는 아래와 같습니다. C:\Users\Public.. 2020. 11. 6.
파이썬 작업 디렉토리(working directory) 확인 및 변경 파이썬 작업 디렉토리(working directory) 확인 및 변경 디렉토리 확인,변경 메소드 사용을 위해 os 라이브러리 가져오기 >>> import os 작업 디렉토리 확인 get current working directory 의 약거인 getcwd 메소드 이용 >>> os.getcwd() 작업 디렉토리 변경 change directory 의 약어 chdir 이용 >>> os.chdir('원하는 경로') 2020. 11. 6.
[파이썬 기초] 부분집합 여부 확인 [파이썬 기초] 부분집합 여부 확인 부등호를 이용합니다. >>> A={1,2,3}>>> B={1,2} >>> A>> B 2020. 11. 6.
파이썬에서 반올림,올림,버림,내림 하는 법 파이썬에서 반올림,올림,버림,내림 하는 법 반올림 round(수, 자리수) >>> round(345.345,1)345.3 >>> round(345.345,2)345.35 >>> round(345.345,-1)350.0 >>> round(345.345,-2)300.0 올림 올림은 입력값보다 같거나 큰 정수중 가장 가까운 값을 반환합니다. math 라이브러리의 ceil 메소드를 이용합니다. >>> import math >>> math.ceil(3)3 >>> math.ceil(3.4)4 >>> math.ceil(3.6)4 >>> math.ceil(-3.4)-3 >>> math.ceil(-3.6)-3 >>> math.ceil(-3)-3 버림 버림은 소수점을 그냥 버리는 것입니다. math 라이브러리의 trunc.. 2020. 11. 5.
[파이썬 기초] 논리연산자 [파이썬 기초] 논리연산자 논리연산자는 논리값인 True와 False 사이의 연산을 다루기 때문에 논리연산자입니다. 논리연산자에는 and, or, not이 있습니다. 논리연산의 결과는 아래와 같습니다. >>> True and TrueTrue >>> True and FalseFalse >>> False and FalseFalse >>> True or TrueTrue >>> True or FalseTrue >>> False or FalseFalse >>> not TrueFalse >>> not FalseTrue 2020. 11. 5.
[파이썬 기초] 비교 연산자 [파이썬 기초] 비교 연산자 == 같다!= 다르다> 왼쪽이 크다= 왼쪽이 크거나 같다>> 3>1True >>> a=1>>> b=3>>> a==bFalse 2020. 11. 5.
[파이썬 기초] 산술 연산자 (사칙연산, 나머지, 제곱) 뎃셈 + 뺄셈 - 곱셈 * 나눗셈 / 나눗셈 // (반올림하여 정수 결과 반환) 나머지 % 제곱 ** 제곱만 예시를 들겠습니다. >>> 2**3 8 2020. 11. 4.
[파이썬 기초] 함수 정의하기 [파이썬 기초] 함수 정의하기 파이썬에서 함수를 정의하는 방식은 아래와 같습니다. 함수 내용은 한 칸이상 띄워주어야 합니다. def myfun(x,y): return x+y 사용해봅시다. >>> myfun(1,5)6 2020. 11. 4.
[파이썬 기초] 파이썬 숫자 자료형 (2진수,8진수,16진수) [파이썬 기초] 파이썬 숫자 자료형 (2진수,8진수,16진수) 파이썬에서는 정수,실수,복소수 외에 숫자 자료형으로 2진수,8진수,16진수를 제공합니다. 2진수 0b 를 앞에 붙여주면 2진수로 입력됩니다. >>> 0b101010 8진수 2.x버전은 앞에 0을 붙여줌3.x버전은 앞에 0O를 붙여줌. >>> 0O1715 16진수 앞에 0x를 붙여줍 >>> 0x1723 2020. 11. 4.
[파이썬 기초] set 합집합,교집합,차집합,대칭차집합 구하는 법 (연산자 이용) [파이썬 기초] set 합집합,교집합,차집합,대칭차집합 구하는 법 (연산자 이용) 두 set 정의합시다. a={1,2,3,4,5}b={3,4,5,6,7} 합집합 or 연산자인 | 를 사용합니다. >>> a|b{1, 2, 3, 4, 5, 6, 7} 교집합 or 연산자인 &를 사용합니다. >>> a&b{3, 4, 5} 차집합 >>> a-bOut[182]: {1, 2} 대칭차집합 >>> (a-b)|(b-a)Out[183]: {1, 2, 6, 7} 2020. 11. 4.
반응형