[파이썬 numpy] 배열에서 정수와 소수부분 분리
[파이썬 numpy] 배열에서 정수와 소수부분 분리 modf 함수를 사용하면 배열의 정수와 소수부분을 분리할 수 있습니다. 정수부분과 소수부분을 각각 튜플의 원소로 반환합니다. 변수 두개를 입력할 경우 각 변수에 저장할 수도 있습니다. 배열의 정수와 소수부분을 튜플로 반환 배열을 하나 정의합시다. >>> import numpy as np>>> A=np.array([1.3,2.5,-1.3,-2.5]) modf 메소드를 사용해봅시다. >>>np.modf(A)(array([ 0.3, 0.5, -0.3, -0.5]), array([ 1., 2., -1., -2.])) 정수부분과 소수부분이 각각 튜플의 원소로 반환됩니다. 정수부분과 소수부분을 변수에 저장 아래와 같이 변수 두개를 선언해줍니다. >>> A1,A2=..
2020. 11. 12.
[파이썬 numpy] 두 배열의 원소를 비교하여 최대값 반환 (maximum 함수)
[파이썬 numpy] 두 배열의 원소를 비교하여 최대값 반환 (maximum 함수) 넘파이의 maximum 함수는 두 배열의 원소를 비교하여 최대값을 갖는 배열을 반환합니다. 먼저 두 배열을 정의합시다. >>> import numpy as np>>> A=np.array([1,2,3,4,5])>>> B=np.array([5,4,3,2,1]) maximum 함수를 적용해봅시다. >>> np.maximum(A,B)array([5, 4, 3, 4, 5]) 두 배열의 크기가 다를 경우 오류가 발생합니다.
2020. 11. 12.
[파이썬 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.
[파이썬 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.
[파이썬 numpy] 배열 요소 삭제하기
[파이썬 numpy] 배열 요소 삭제하기 배열 요소를 삭제할 때는 np.delete 메소드를 사용합니다. 아아래와 같은 형식으로 사용합니다. np.delete(배열, 인덱스, axis) 1차원 배열에서 요소 삭제 1차원배열을 정의하고, 첫번째 요소를 삭제해봅시다. A=np.array([1,2,3,4,5]) >>> Aarray([1, 2, 3, 4, 5]) >>> np.delete(A, 0)Out[450]: array([2, 3, 4, 5]) 2차원 배열에서 행 삭제 2차원배열을 정의하고 1행을 삭제해봅시다. 2차원배열에서 행방향으로 첫번째 행을 제거하는 것이므로 axis 에 0을 넣어줍니다. A2=np.array([[1,2,3],[4,5,6]]) >>> A2array([[1, 2, 3], [4, 5, 6..
2020. 10. 21.
파이썬 numpy의 array(배열)에 관한 의문
파이썬 numpy의 array(배열)에 관한 의문 numpy의 배열에 대한 의문은 아래 배열에서 시작되었다. >>> A=np.array([1,2,[3,4],5])>>> Aarray([1, 2, list([3, 4]), 5], dtype=object) 이게 왜 정의가 되지? 라는 의문이었다. 내가 알던 배열은 벡터, 행렬, ... 로 확장되는 개념이 아니었던가? 저건 뭐지? 라는 의문이었다. 한동안 고민했다. 내가 알던 배열에서 더 확장된 개념이 존재하는 것인가라는... A를 두번 더해봤다. >>>A+Aarray([2, 4, list([3, 4, 3, 4]), 10], dtype=object) 리스트는 그대로 리스트 연산이 적용된다. 이건뭐지? 이 요소는 뭐라고 불러야 하지? R과 매트랩에도 배열이 있어서..
2020. 10. 21.
[파이썬 Pandas] 시리즈(Series) 인덱스에 원하는 이름 부여하기
[파이썬 Pandas] 시리즈(Series) 인덱스에 원하는 이름 부여하기 시리즈는 R의 벡터처럼 인덱스에 원하는 이름을 부여할 수 있습니다. 아래와 같은 방법으로 이름을 부여합니다. 인덱스에 이름을 부여할 때도 리스트 자료구조를 사용합니다. import pandas as pd A1=pd.Series([1,2,3,4], index=['a','b','c','d']) >>> A1a 1b 2c 3d 4dtype: int64 하나의 문자가 아니라 여러개의 문자로도 가능할까요? 가능합니다. A2=pd.Series([1,2,3,4], index=['hi','b','c','d']) >>> A2hi 1b 2c 3d 4dtype: int64 띄어쓰기가 있는 문장으로도 가능할까요? 가능합니다. A3=pd.Series([1..
2020. 10. 21.