본문 바로가기
반응형

array27

[파이썬 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] 유용한 where 함수 (조건에 맞는 값의 위치, 값 변경) [파이썬 numpy] 유용한 where 함수 (조건에 맞는 값의 위치, 값 변경) where 함수는 두가지 기능을 합니다. - 특정 조건에 맞는 원소의 위치를 반환- 특정 조건에 맞는 원소와 그렇지 않은 원소를 원하는 값으로 변경 특정 조건에 맞는 원소의 위치를 반환 배열을 하나 정의합시다. >>> A=np.array([1,2,3,4,5,6]) 3보다 큰 값의 위치를 구해봅시다. >>> np.where(A>3)(array([3, 4, 5], dtype=int64),) 특정 조건에 맞는 원소와 그렇지 않은 원소를 원하는 값으로 변경 위 배열에서 3보다 큰 원소는 100으로, 그렇지 않은 원소는 0으로 바꿔봅시다. >>> np.where(A>3,100,0)array([ 0, 0, 0, 100, 100, 10.. 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.
[파이썬 Pandas] 시리즈(Series) 인덱싱 (1) 숫자 인덱스 사용 [파이썬 Pandas] 시리즈(Series) 인덱싱 (1) 숫자 인덱스 사용 시리즈의 인덱싱과 수정방법을 알아봅시다.인덱싱은 특정 원소(들)에 접근하는 것입니다. 특정원소에 접근하면 그 값을 다른 값으로 바꿀 수 있기 때문에 원소의 수정도 함께 배울 것입니다. 먼저 시리즈를 하나 정의합시다. >>> A=pd.Series([1,2,3,4])>>> A0 11 22 33 4dtype: int64 하나의 원소에 접근 시리즈 A의 첫번째 원소에 접근해보겠습니다. 대괄호를 사용합니다. >>> A[0]1 구간을 이용하여 여러 원소에 접근 구간을 이용할 때는 콜론 : 을 사용합니다. 첫번째와 두번째 원소에 접근할 때는 어떻게 해야할까요? 아마 A[0:1]가 떠오르실 것입니다. 아쉽게도 결과는 아래와 같습니다. 첫번째 .. 2020. 10. 21.
[파이썬 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) 정의하기 딕셔너리를 이용하여 시리즈를 정의하는 방법은 아래와 같습니다. dic = {'list':[1,2,3], 'num':123456, "char": 'hi'}B=pd.Series(dic) >>> Blist [1, 2, 3]num 123456char hidtype: object 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.
[파이썬 Pandas] 시리즈(Series) 소개, 정의 [파이썬 Pandas] 시리즈(Series) 소개, 정의 시리즈는 1차원 배열과 비슷한 자료구조입니다. 딕셔너리와도 비슷합니다. 시리즈는 1열로만 이루어진 자료구조인데 두가지 특징을 가집니다. - 열의 이름을 지정할 수 있음- 각 셀에는 서로 다른 모든 자료형을 넣을 수 있고, 다차원 배열도 넣을 수 있음 직접 사용해보며 이해해봅시다. 먼저 판다스 라이브러리를 불러옵시다. pd라는 이름으로 불러오는 것이 일반적입니다. numpy도 사용할 것이라 함께 불러옵시다. np라는 이름으로 불러오는 것이 일반적입니다. import pandas as pdimport numpy as np 이제 시리즈를 정의합시다. pd.Series( ) 라는 메소드를 사용합니다. 괄호 안에 리스트를 넣어도 되고, 넘파이 배열을 넣어도.. 2020. 10. 21.
[파이썬 numpy] 개수로 간격을 설정하여 배열 생성 (linspace) [파이썬 numpy] 개수로 간격을 설정하여 배열 생성 (linspace) 첫항,끝항,개수을 입력하면 간격이 일정하고 입력한 개수를 갖는 배열을 생성해줍니다. 첫항 2, 끝항 10, 개수가 5개인 배열을 생성해봅시다. >>> np.linspace(2,10,5)array([ 2., 4., 6., 8., 10.]) 2020. 10. 19.
[파이썬 numpy] 등차배열 생성 (arange) [파이썬 numpy] 등차배열 생성 (arange) 첫항,끝항,간격을 입력하면 첫항이상, 끝항 미만의 값을 갖는 배열을 생성합니다. 첫항 2, 끝항 10, 간격 2인 배열을 생성해봅시다. >>> np.arange(2,10,2)array([2, 4, 6, 8]) 첫항 1, 끝항 3, 간격 0,7인 배열을 생성해봅시다. >>> np.arange(1,3,0.7)array([1. , 1.7, 2.4]) 하나의 값만 입력하면 첫항이 0이고 간격이 1이고, 길이가 입력값인 배열을 생성해줍니다. >>> np.arange(10)array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 2020. 10. 19.
[파이썬 numpy] 1차원 배열를 원하는 형태의 배열로 만들기 (reshape) [파이썬 numpy] 1차원 배열를 원하는 형태의 배열로 만들기 (reshape) 1차원 배열을 2차원 배열로 1차원 배열을 하나 정의합시다. >>> A1=np.array([1,2,3,4,5,6])>>> A1array([1, 2, 3, 4, 5, 6]) 2행3열인 2차원배열로 만들어봅시다. >>> A1.reshape(2,3)array([[1, 2, 3], [4, 5, 6]]) 1차원 배열을 3차원 배열로 1차원 배열을 하나 정의합시다. >>> B1=np.array([1,2,3,4,5,6,7,8,9,10,11,12])>>> B1array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) 2높2행3열짜리 3차원 배열을 정의합시다. 2높은 높이가 2라는 의미입니다. >>> B1.res.. 2020. 10. 19.
[파이썬 numpy] 대각행렬 생성 (eye) [파이썬 numpy] 대각행렬 생성 (eye) 대각행렬은 대각선위치에만 값이 있는 행렬을 말합니다. diagona matrix 라고 부릅니다. numpy에서 제공하는 대각행렬 생성 메소드는 대각선에 값 1을 갖는 행렬을 생성해줍니다. numpy 를 불러오고 시작합시다. import numpy as np 2x2 대각 행렬 >>> np.eye(2)array([[1., 0.], [0., 1.]]) 3x3 대각 행렬 >>> np.eye(3)array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) 2020. 10. 19.
[파이썬 numpy] 모든 값이 사용자 지정값인 배열 생성 (full) [파이썬 numpy] 모든 값이 사용자 지정값인 배열 생성 (full) numpy 를 불러오고 시작합시다. import numpy as np 1차원 배열 지정 값이 7이고, 길이가 5인 1차원배열을 생성해봅시다. >>> np.full(5,7)array([7, 7, 7, 7, 7]) 2차원 배열 지정 값이 7이고, 2행3열인 2차원 배열을 생성해봅시다. >>> np.full([2,3],7)array([[7, 7, 7], [7, 7, 7]]) 입력 시 사용하는 괄호는, 대괄호 소괄호 상관 없습니다. >>> np.full((2,3),7)array([[7, 7, 7], [7, 7, 7]]) 3차원 배열 지정 값이 7이고, 크기가 2x3x4인 2차원 배열을 생성해봅시다. 규칙은 (높이)x(행)x(열) 입니다. >.. 2020. 10. 19.
[파이썬 numpy] 모든 값이 0인 배열 생성 (zeros) [파이썬 numpy] 모든 값이 0인 배열 생성 (zeros) numpy 를 불러오고 시작합시다. import numpy as np 1차원 배열 모든 원소가 0이고, 길이가 5인 1차원배열을 생성해봅시다. >>> np.zeros(5)array([0., 0., 0., 0., 0.]) 2차원 배열 모든 원소가 0이고, 2행3열인 2차원 배열을 생성해봅시다. >>> np.zeros([2,3])array([[0., 0., 0.], [0., 0., 0.]]) 입력 시 사용하는 괄호는, 대괄호 소괄호 상관 없습니다. >>> np.zeros((2,3))array([[0., 0., 0.], [0., 0., 0.]]) 3차원 배열 모든 원소가 0이고, 크기가 2x3x4인 2차원 배열을 생성해봅시다. 규칙은 (높이)x(행.. 2020. 10. 19.
[파이썬 numpy] 배열 합치기 (stack 메소드) [파이썬 numpy] 배열 합치기 (stack 메소드) 배열을 합치는 방법 중에 stack 메소드를 사용하는 방법이 있습니다. 아래 세가지 메소드가 있습니다. hstack (가로방향) vstack (세로방향) column_stack (열벡터로 인식한 뒤 가로방향) 1차원 배열 먼저 배열을 정의하겠습니다 . import numpy as np A1=np.array([1,2,3]) B1=np.array([4,5,6]) >>> A1 array([1, 2, 3]) >>> B1 array([4, 5, 6]) hstack 함수는 열 방향(가로방향)으로 합쳐줍니다. >>> np.hstack((A1,B1)) array([1, 2, 3, 4, 5, 6]) vstack 함수는 행 방향(세로방향)으로 합쳐줍니다. >>> np.. 2020. 10. 19.
[파이썬 numpy] 배열 합치기 (concatenate 메소드) + axis 개념 [파이썬 numpy] 배열 합치기 (concatenate 메소드) + axis 개념 concatenate 메소드는 선택한 축(axis)의 방향으로 배열을 연결해주는 메소드입니다. concatenate 는 '사슬 같이 연결하다'는 의미입니다. 1,2,3차원배열에 적용해보며 사용 방법과 축의 의미를 이해해봅시다. 1차원 배열 먼저 배열을 정의하겠습니다 . import numpy as np A1=np.array([1,2,3])B1=np.array([4,5,6]) >>> A1array([1, 2, 3]) >>> B1array([4, 5, 6]) 아래와같이 1차원 배열에 concatenate 메소드를 적용해봅시다. axis=0으로 하였습니다. >>> np.concatenate((A1,B1),axis=0)array.. 2020. 10. 16.
[파이썬 numpy] 배열의 크기/차원/길이 확인 [파이썬 numpy] 배열의 크기/차원/길이 확인 배열을 하나 정의하고 시작합시다. >>> A2=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])>>> A2array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) 몇행 몇열인가? >>> A2.shape(4, 3) 전체 원소 수는? >>> A2.size12 행의 수는? >>> len(A2)4 *1차원배열(벡터)의 경우는 원소 수와 같음 몇 차원 베열인가? >>> A2.ndim2 2020. 10. 16.
[파이썬 numpy] 2차원 배열의 인덱싱/수정 [파이썬 numpy] 2차원 배열의 인덱싱/수정 2차원 배열의 인덱싱과 수정방법을 알아봅시다. 배열의 인덱싱은 배열의 특정 원소(들)에 접근하는 것입니다. 특정원소에 접근하면 그 값을 다른 값으로 바꿀 수 있기 때문에 배열의 수정도 함께 배울 것입니다. 먼저 배열을 하나 정의합시다. >>> A2=np.array([[1,2,3],[4,5,6],[7,8,9]])>>> A2array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) 하나의 원소에 접근 1행2열에 접근 >>> A2[0,1]2 구간을 이용하여 여러 원소에 접근 1행에 접근 >>> A2[0]array([1, 2, 3]) 2열에 접근 >>> A2[:,1]array([ 2, 5, 8, 11]) 처음부터 또는 .. 2020. 10. 16.
[파이썬 numpy] 1차원 배열의 인덱싱/수정 [파이썬 numpy] 1차원 배열의 인덱싱/수정 1차원 배열의 인덱싱과 수정방법을 알아봅시다. 배열의 인덱싱은 배열의 특정 원소(들)에 접근하는 것입니다. 특정원소에 접근하면 그 값을 다른 값으로 바꿀 수 있기 때문에 배열의 수정도 함께 배울 것입니다. 먼저 배열을 하나 정의합시다. >>> A=np.array([1,2,3,4,5,6,7])>>> Aarray([1, 2, 3, 4, 5, 6, 7]) 하나의 원소에 접근 배열 A의 첫번째 원소에 접근해보겠습니다. 대괄호를 사용합니다. >>> A[0]1 구간을 이용하여 여러 원소에 접근 구간을 이용할 때는 콜론 : 을 사용합니다. 첫번째와 두번째 원소에 접근할 때는 어떻게 해야할까요? 아마 A[0:1]가 떠오르실 것입니다. 아쉽게도 결과는 아래와 같습니다. 첫.. 2020. 10. 16.
[파이썬 numpy] 배열 데이터타입 종류/정의/확인 [파이썬 numpy] 배열 데이터타입 종류/정의/확인 numpy 데이터타입 종류 데이터 종류는 크게 숫자형, 문자형, 논리형(부울형), 날짜시간형으로 나뉩니다. 파이썬에서 문자형은 string 입니다. (R과 다르게 문자 하나하나의 인덱싱이 가능합니다.) 숫자형은 정수형, 부호없는 정수형, 부동소수형, 복소수형으로 나뉩니다. 부울형은 True, False 데이터인데 숫자로는 0과 1에 해당됩니다. 따라서 부울형은 숫자형에 속한다고 할 수 있습니다. 1. 숫자형1-1. 정수형(int8, int16, int32, int64)1-2. 부호 없는 정수형(uint8, unit16, unit32, unit64)1-3. 부동소수형 (float16, float32, float64)1-4. 복소수형 (complex64,.. 2020. 10. 16.
[파이썬 numpy] 배열(array) 소개, 정의 [파이썬 numpy] 배열(array) 소개, 정의 파이썬에서 제공하는 기본 자료구조가 있지만, 수학적인 계산에는 적합하지 않습니다. R이나 매트랩과 같이 수치계산을 위해 만들어진 프로그램에서는 '배열'이라는 자료구조를 제공합니다. 배열은 행렬과 벡터를 포함하는 개념입니다. 1차원 배열이 '벡터', 2차원 배열이 '행렬'입니다. 따라서 배열을 정의할 수 있다는 것은 행렬계산이 가능하다는 의미입니다. 파이썬 라이브러리 중 numpy 를 설치하면 배열을 사용할 수 있습니다. numpy 설치 numpy를 먼저 설치해봅시다. [시작]-[실행]에 cmd를 검색해서 까만 창을 실행합니다. 아래와 같이 입력하면 numpy가 설치됩니다. pip install numpy 혹시 에러가 뜨는 경우, 에러 메시지를 구글에 입.. 2020. 3. 28.
반응형