본문 바로가기
반응형

5-2 . Numpy 제공 자료구조/Array 연산23

[파이썬 numpy] 배열의 누적곱 (axis 방향별) [파이썬 numpy] 배열의 누적곱 (axis 방향별) 배열의 누적곱를 구할때는 cumprod 메소드를 사용합니다. 먼저 배열을 하나 정의합시다. >>> import numpy as np>>> A=np.array([1,2,3,4,5]) 배열의 누적곱 배열의 누적곱은 아래와 같이 두 가지 방법으로 구할 수 있습니다. 넘파이 함수를 사용해도 되고, 정의한 배열에 메소드를 적용해도 됩니다. >>> np.cumprod(A)array([ 1, 2, 6, 24, 120], dtype=int32) >>> A.cumprod()array([ 1, 2, 6, 24, 120], dtype=int32) 배열의 axis 에 따른 누적곱 2차원 배열을 하나 정의합시다. >>> A=np.arange(1,7).reshape(2,3).. 2020. 11. 13.
[파이썬 numpy] 배열의 누적합 (axis 방향별) [파이썬 numpy] 배열의 누적합 (axis 방향별) 배열의 누적합을 구할때는 cumsum 메소드를 사용합니다. 먼저 배열을 하나 정의합시다. >>> import numpy as np>>> A=np.array([1,2,3,4,5]) 배열의 누적합 배열의 누적합은 아래와 같이 두 가지 방법으로 구할 수 있습니다. 넘파이 함수를 사용해도 되고, 정의한 배열에 메소드를 적용해도 됩니다. >>> np.cumsum(A)array([ 1, 3, 6, 10, 15], dtype=int32) >>> A.cumsum()array([ 1, 3, 6, 10, 15], dtype=int32) 배열의 axis 에 따른 누적합 2차원 배열을 하나 정의합시다. >>> A=np.arange(6).reshape(2,3)>>> Aar.. 2020. 11. 13.
[파이썬 numpy] 배열의 표준편차 (axis 방향별) [파이썬 numpy] 배열의 표준편차 (axis 방향별) 배열의 표준편차를 구할때는 std 메소드를 사용합니다. 디폴트값은 루트n으로 나누는 표준편차입니다. 모집단의 표준편차를 구할 때 사용하고, 불편추정량인 표본표준편차을 구할 때는 ddof=1 이라는 옵션을 입력하면 됩니다. 먼저 배열을 하나 정의합시다. >>> import numpy as np>>> A=np.array([1,2,3,4,5]) 배열의 표준편차 배열의 표준편차는 아래와 같이 두 가지 방법으로 구할 수 있습니다. 넘파이 함수를 사용해도 되고, 정의한 배열에 메소드를 적용해도 됩니다. >>> np.std(A)1.4142135623730951 >>> A.std()1.4142135623730951 배열의 axis 에 따른 표준편차 2차원 배열을.. 2020. 11. 13.
[파이썬 numpy] 배열의 분산 (axis 방향별) [파이썬 numpy] 배열의 분산 (axis 방향별) 배열의 분산을 구할때는 var 메소드를 사용합니다. 디폴트값은 n으로 나누는 분산입니다. 모집단의 분산을 구할 때 사용하고, 불편추정량인 표본분산을 구할 때는 ddof=1 이라는 옵션을 입력하면 됩니다. 먼저 배열을 하나 정의합시다. >>> import numpy as np>>> A=np.array([1,2,3,4,5]) 배열의 분산 배열의 분산은 아래와 같이 두 가지 방법으로 구할 수 있습니다. 넘파이 함수를 사용해도 되고, 정의한 배열에 메소드를 적용해도 됩니다. >>> np.var(A)2.9166666666666665 >>> A.var()2.9166666666666665 배열의 axis 에 따른 분산 2차원 배열을 하나 정의합시다. >>> A=n.. 2020. 11. 13.
[파이썬 numpy] 배열의 합 (axis 방향별) [파이썬 numpy] 배열의 합 (axis 방향별) 배열의 합을 구할때는 sum 메소드를 사용합니다. 먼저 배열을 하나 정의합시다. >>> import numpy as np>>> A=np.array([1,2,3,4,5]) 배열의 합 배열의 합은 아래와 같이 두 가지 방법으로 구할 수 있습니다. 넘파이 함수를 사용해도 되고, 정의한 배열에 메소드를 적용해도 됩니다. >>> np.sum(A)15 >>> A.sum()15 배열의 axis 에 따른 합 2차원 배열을 하나 정의합시다. >>> A=np.arange(6).reshape(2,3)>>> Aarray([[0, 1, 2], [3, 4, 5]]) axis=0 방향의 합을 구해봅시다. 행방향 합입니다. >>> A.sum(axis=0)array([3, 5, 7].. 2020. 11. 13.
[파이썬 numpy] 배열의 평균 (axis 방향별) [파이썬 numpy] 배열의 평균 (axis 방향별) 배열의 평균을 구할때는 mean 메소드를 사용합니다. 먼저 배열을 하나 정의합시다. >>> import numpy as np>>> A=np.array([1,2,3,4,5]) 배열의 평균 평균은 아래와 같이 두 가지 방법으로 구할 수 있습니다. 넘파이 함수를 사용해도 되고, 정의한 배열에 메소드를 적용해도 됩니다. >>> np.mean(A)3.0 >>> A.mean()3.0 배열의 axis 에 따른 평균 2차원 배열을 하나 정의합시다. >>> A=np.arange(6).reshape(2,3)>>> Aarray([[0, 1, 2], [3, 4, 5]]) axis=0 방향의 평균을 구해봅시다. 행방향 평균입니다. >>> A.mean(axis=0)array(.. 2020. 11. 13.
[파이썬 numpy] 배열의 최댓값 최솟값 반환 [파이썬 numpy] 배열의 최댓값 최솟값 반환 max함수와 min 함수를 사용합니다. 넘파이 패키지를 불러옵니다. >>> import numpy as np 배열을 하나 정의합니다. >>> A=np.array([1,2,3,4,5]) 최댓값을 구해봅시다. >>> np.max(A)5 최솟값을 구해봅시다. >>> np.min(A)1 2020. 11. 13.
[파이썬 numpy] 넘파이에서 반올림, 올림, 버림,내림 하는 방법 [파이썬 numpy] 넘파이에서 반올림, 올림, 버림,내림 하는 방법 넘파이 패키지를 불러옵니다. >>> import numpy as np 반올림 np.round(수, 자리수) >>> np.round(345.345,1)345.3 >>> np.round(345.345,2)345.34 >>> np.round(345.346,2)345.35 넘파이는 사사오입이 아니라 오사오입 방법을 사용하는 것으로 보입니다. 올림 올림은 입력값보다 같거나 큰 정수중 가장 가까운 값을 반환합니다. ceil 함수를 사용합니다. >>> np.ceil(3)3.0 >>> np.ceil(3.4)4.0 >>> np.ceil(3.6)4.0 >>> np.ceil(-3.4)-3.0 >>> np.ceil(-3.6)-3.0 버림 버림은 소수점을 그.. 2020. 11. 13.
[파이썬 numpy] 절댓값 구하는 함수 [파이썬 numpy] 절댓값 구하는 함수 넘파이에서 절댓값을 수할 때는 abs 메소드를 사용합니다. 숫자의 절댓값 >>> import numpy as np>>> np.abs(-222)222 배열의 절댓값 >>> A=np.array([1,2,-3,-5])>>> np.abs(A)array([1, 2, 3, 5]) 2020. 11. 12.
[파이썬 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] 배열의 지수함수 (exponential) [파이썬 numpy] 배열의 지수함수 (exponential) 파이썬 넘파이에서 제공하는 지수함수들입니다. 아래와 같이 세가지가 있습니다. 배열에 적용하여 사용합니다. exp( ) : exponential 값을 구해줌exp2( ) : 배열값으로 2를 거듭제곱해줌expm1( ) : exp(배열값) - 1 배열을 하나 정의하고 각 함수를 적용해봅시다. >>> import numpy as np>>> A=np.array([1,2,3])>>> Aarray([1, 2, 3]) exp >>> np.exp(A)array([ 2.71828183, 7.3890561 , 20.08553692]) exp2 >>> np.exp2(A)array([2., 4., 8.]) expm1 >>> np.expm1(A)array([ 1.71.. 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] 배열의 두 축을 서로 바꾸기 (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] 행렬의 곱셈 하는 법 (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.
반응형