[파이썬 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] 배열의 전치를 원하는 방향으로 (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.
[파이썬 기초] 리스트 생성 시 값만 참조하는 방법
[파이썬 기초] 리스트 생성 시 값만 참조하는 방법 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] 배열 전치하는 법 (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] 난수 배열 생성 (표준정규분포) 표준정규분포에서 원하는 사이즈의 배열을 생성하는 방법입니다. 넘파이의 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.
파이썬에서 반올림,올림,버림,내림 하는 법
파이썬에서 반올림,올림,버림,내림 하는 법 반올림 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.
[파이썬 기초] 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.