[파이썬 강의] 78. 표본추출 (표준정규분포, 정규분포)
표준정규분포에서 표본을 추출해봅시다. np.random.randn(원소 수) np.random.randn(행의 수, 열의 수) ... 일반화하여 표현하면 아래와 같습니다. np.random.rand(shape) 예를 들어봅시다. 원소가 10개인 표본을 추출해봅시다. >>> np.random.randn(10) array([-0.46918572, -0.01478616, -0.68911651, 1.14858756, -1.97550475, -1.66843948, 0.37697573, 1.55891432, 0.56331007, 0.93739202]) 2행5열의 표본을 추출해봅시다. 위 결과와 얼핏 같아 보이지만 아닙니다. 아래 결과는 리스트가 2중 중첩입니다. >>> np.random.randn(2,5) arra..
2021. 11. 3.
[파이썬 강의] 77. 표본추출 (균등분포)
0~1사이 실수값을 갖는 균등분포에서 표본을 추출해봅시다. 코드는 아래와 같은 형식으로 사용합니다. np.random.rand(원소 수) np.random.rand(행의 수, 열의 수) ... 일반화하여 표현하면 아래와 같습니다. np.random.rand(shape) 예를 들어봅시다. 원소가 10개인 표본을 추출해봅시다. >>> np.random.rand(10) array([0.93551792, 0.67158859, 0.66331052, 0.87592483, 0.56564499, 0.14275756, 0.22003448, 0.01317308, 0.82143447, 0.71668732]) 2행5열의 표본을 추출해봅시다. 위 결과와 얼핏 같아 보이지만 아닙니다. 아래 결과는 리스트가 2중 중첩입니다. >>..
2021. 11. 2.
[파이썬 강의] 76. 표본추출 (구간 사이 정수값)
구간을 정하고, 해당 구간 사이에 있는 정수값을 임의로 추출하는 방법입니다. 넘파이 패키지의 random.randint 메소드를 사용합니다. 형식은 아래와 같습니다. np.random.randint(시작값,끝값+1) 끝값+1인 것에 주의해주세요. (1,5)를 입력하면 1,2,3,4 중에서 정수가 추출됩니다. 예를 들어봅시다. >>> np.random.randint(1,5) 3 >>> np.random.randint(1,5) 3 >>> np.random.randint(1,5) 4 >>> np.random.randint(1,5) 4 >>> np.random.randint(1,5) 1 >>> np.random.randint(1,5) 4 >>> np.random.randint(1,5)
2021. 11. 1.
[파이썬 강의] 75. 배열 원소의 최댓값과 최솟값
배열의 최댓값을 구할 때는 max 메소드를, 최솟값을 구할 때는 min 메소드를 사용합니다. 2차원 이상의 배열에서는 axis 옵션을 사용할 수 있습니다. 1차원 배열 1차원 배열을 하나 정의하고 최댓값과 최솟값을 구해봅시다. >>> import numpy as np >>> v1=np.array([1,2,3,4,5]) >>> v1.max() 5 >>> v1.min() 1 2차원 배열 2차원 배열을 하나 정의하고 합을 구해봅시다. >>> m1=np.array([[1,2,3],[10,20,30]]) >>> m1.max() 30 >>> m1.min() 1 axis 옵션을 적용해봅시다. >>> m2=np.array([[1,2,3],[4,5,1]]) >>> m2.max(axis=0) array([4, 5, 3])..
2021. 10. 29.
[파이썬 강의] 74. 배열 원소의 평균, 분산, 표준편차
배열의 평균을 구할 때는 mean 매소드를 사용합니다. 2차원 이상의 배열에서는 axis 옵션을 사용할 수 있습니다. 1차원 배열의 평균 1차원 배열을 하나 정의하고 평균을 구해봅시다. >>> import numpy as np >>> v1=np.array([1,2,3,4,5]) >>> v1.mean() 3.0 2차원 배열의 평균 2차원 배열을 하나 정의하고 평균을 구해봅시다. >>> m1=np.array([[1,2,3],[10,20,30]]) >>> m1.mean() 11.0 axis 옵션을 적용해봅시다. >>> m1.mean(axis=0) array([ 5.5, 11. , 16.5]) >>> m1.mean(axis=1) array([ 2., 20.]) axis0은 [1,2,3]->[10,20,30] 이..
2021. 10. 28.
[파이썬 강의] 73. 배열 원소의 합
배열의 합을 구할 때는 sum 매소드를 사용합니다. 2차원 이상의 배열에서는 axis 옵션을 사용할 수 있습니다. 1차원 배열 1차원 배열을 하나 정의하고 합을 구해봅시다. >>> import numpy as np >>> v1=np.array([1,2,3,4,5]) >>> v1.sum() 15 2차원 배열 2차원 배열을 하나 정의하고 합을 구해봅시다. >>> m1=np.array([[1,2,3],[10,20,30]]) >>> m1.sum() 66 axis 옵션을 적용해봅시다. >>> m1.sum(axis=0) array([11, 22, 33]) >>> m1.sum(axis=1) array([ 6, 60]) axis0은 [1,2,3]->[10,20,30] 이므로 리스트 [1,2,3]과 [10,20,30]의..
2021. 10. 27.
[파이썬 강의] 71. 등차수열 배열 생성하기
등차수열 배열을 생성할 때는 넘파이 패키지의 arange 함수를 사용합니다. 아래와 같은 형식으로 사용합니다. np.arange(시작값,끝값,간격) 시작값이상이고, 끝값 미만인 배열이 생성됩니다. 끝항 '미만'이라는 것을 기억합시다. 구간으로는 [첫항,끝항) 이라고 표현할 수 있습니다. 반열린구간입니다. 예를들어봅시다. np.arrange(1,6,2) 라고 입력하면 얼마가 반환될까요. 1부터 2씩 늘려가는 것이니까. 1 3 5 가 생성됩니다. >>> import numpy as np >>> np.arange(1,6,2) array([1, 3, 5]) 하나의 값만 입력할 경우 첫항이 0이고 길이가 입력값인 배열이 생성됩니다. >>> np.arange(5) array([0, 1, 2, 3, 4])
2021. 10. 26.
[파이썬 강의] 70. 모든 값이 지정값인 배열 원하는 크기로 만들기 (full)
사용자가 지정한 값을 갖는 원하는 크기의 배열을 만들 때는 numpy 모듈의 full 함수를 사용합니다. 원하는 크기의 배열을 만들 수 있습니다. 1차원 배열 만들기 모든 원소가 15이고, 길이가 10인 1차원 배열을 만들어 봅시다. 첫번째 입력값이 길이입니다. >>> import numpy as np >>> np.full(10,15) array([15, 15, 15, 15, 15, 15, 15, 15, 15, 15]) 2차원 배열 만들기 모든 값이 15이고, 모양이 3행5열인 2차원 배열을 만들어봅시다. 행과 열의 수를 리스트 형태로 입력합니다. 입력값은 축 개념과 동일합니다. >>> np.full([3,5],15) array([[15, 15, 15, 15, 15], [15, 15, 15, 15, 15..
2021. 10. 25.
[파이썬 강의] 69. 모든 값이 1인 배열 원하는 크기로 만들기 (ones)
모든값이 1인 배열을 만들 때는 numpy 모듈의 ones 함수를 사용합니다. 원하는 크기의 배열을 만들 수 있습니다. 1차원 배열 만들기 모든 원소가 1이고, 길이가 10인 1차원 배열을 만들어 봅시다. import numpy as np >>> import numpy as np >>> np.ones(10) array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]) 2차원 배열 만들기 모든 값이 1이고, 모양이 3행5열인 2차원 배열을 만들어봅시다. 행과 열의 수를 리스트 형태로 입력합니다. 입력값은 축 개념과 동일합니다. >>> np.ones([3,5]) array([[1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., ..
2021. 10. 25.
[파이썬 강의] 68. 모든 값이 0인 배열 원하는 크기로 만들기 (zeros)
모든값이 0인 배열을 만들 때는 numpy 모듈의 zeros 함수를 사용합니다. 원하는 크기의 배열을 만들 수 있습니다. 1차원 배열 만들기 모든 원소가 0이고, 길이가 10인 1차원 배열을 만들어 봅시다. import numpy as np >>> import numpy as np >>> np.zeros(10) array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) 2차원 배열 만들기 모든 값이 0이고, 모양이 3행5열인 2차원 배열을 만들어봅시다. 행과 열의 수를 리스트 형태로 입력합니다. 입력값은 축 개념과 동일합니다. >>> np.zeros([3,5]) array([[0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0..
2021. 10. 25.
[파이썬 강의] 67. 배열 요소 삭제하기
배열에 요소를 추가할 때는 np.delete 라는 함수를 사용합니다. 사용 방법은 아래와 같습니다. np.delete(배열, 인덱스, 축) 1차원 배열을 예로 들어봅시다. 원소가 1,2,3,4인 1차원 배열을 하나 정의하겠습니다. >>> import numpy as np >>> v1=np.array([1,2,3,4]) 두번째 원소를 삭제하고 싶은 경우 index에 1을 입력하면 됩니다. >>> np.delete(m1,1,axis=0) array([1, 3, 4]) 2차원 배열을 예로 들어봅시다. 2차원 배열을 하나 정의하겠습니다. >>> m1=np.array([[1,2],[3,4]]) [3,4] 를 제거해봅시다. >>> np.delete(m1,1,axis=0) array([[1, 2]]) 2차원 배열을 ..
2021. 10. 22.
[파이썬 강의] 66. 배열 요소 추가하기
배열에 요소를 추가할 때는 np.append 라는 함수를 사용합니다. 사용 방법은 아래와 같습니다. np.append(배열, 추가하려는배열, 축) 1차원 배열을 예로 들어 사용방법을 설명하면 아래와 같습니다. >>> import numpy as np >>> m1=np.array([1,2,3]) >>> np.append(m1,np.array([4,5,6]),axis=0) array([1, 2, 3, 4, 5, 6]) 1차원배열에는 방향이 하나 뿐이기 때문에 위와 같은 모양으로 밖에 추가가 안됩니다. 만약 행방향으로 배열을 추가하고 싶다면 어떻게해야 할까요? 리스트를 한겹 씌워서 2차원 배열로 만들고 추가하면 됩니다. >>> m1=np.array([[1,2,3]]) >>> np.append(m1,np.arr..
2021. 10. 22.
[파이썬 강의] 65. 축(axis) 개념 이해하기
축 개념은 배열에서 자주 사용되는 개념입니다. 축을 행,열,높이 등으로 이해하는 경우가 있는데요. 그렇게 이해하게 되면 차원이 높아질 경우 한계에 부딪히게 됩니다. 1차원 배열에서는 축이 하나이므로 2차원 부터 생각해봅시다. 2차원 배열을 두개 정의합시다. >>> m1=np.array([[1,2,3],[4,5,6]]) >>> m2=np.array([[7,8,9],[10,11,12]]) 위 두 배열을 0번 축으로 합칠 경우 아래와 같이 합쳐집니다. >>> np.concatenate((m1,m2),axis=0) array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) 1번 축으로 합칠 경우 아래와 같이 합쳐집니다. >>> np.concatenate((m1,m2)..
2021. 10. 22.
[파이썬 강의] 63. 벡터를 열벡터로 연결 (column_stack 함수)
배열을 합치는데 사용되는 함수는 크게 두가지가 있습니다. stack 류 함수와 concatenate 함수입니다. 1) stack 류 함수 - vstack - hstack - column_stack 2) concatenate 함수 오늘 배워볼 column_stack 함수는 1차원 벡터를 열벡터로 인식하여 연결합니다. 2차원 부터는 hstack 함수와 동일한 역할을 합니다. column_stack : 1차원 벡터를 열벡터로 인식하여 연결 아래와 같이 합치는 것을 말합니다. [1,2,3] + [4,5,6] = [[1,4] [2,5] [3,6]] 1차원 배열 예시 >>> v1=np.array([1,2,3]) >>> v2=np.array([4,5,6]) >>> np.column_stack((v1,v2)) arra..
2021. 10. 22.
[파이썬 강의] 62. 배열을 열 방향(가로 방향)으로 합치기 (hstack 함수)
배열을 합치는데 사용되는 함수는 크게 두가지가 있습니다. stack 류 함수와 concatenate 함수입니다. 1) stack 류 함수 - vstack - hstack - column_stack 2) concatenate 함수 오늘은 stack류 함수를 이용하여 배열을 열 방향으로 합쳐보겠습니다. 배열을 열방향으로 합칠때는 hstack 함수를 사용합니다. hstack 함수에서 h는 horizontal 입니다. '가로'를 의미합니다. hstack : 배열을 행 방향으로 합치는 함수 배열을 행 방향으로 합친다는 것은 아래와 같이 합치는 것을 말합니다. [1,2,3] + [4,5,6] = [1,2,3,4,5,6] 1차원 배열 예시 >>> v1=np.array([1,2,3]) >>> v2=np.array([4..
2021. 10. 22.
[파이썬 강의] 57. 3차원 배열의 모양에 대한 고찰
3차원 배열에 shape 메소드를 사용해보고 결과에 대한 고찰을 해보려고 합니다. 2차원 배열에서 shape 결과는 행과 열의 개수 였습니다. >>> ar2=np.array([[1,2,3],[4,5,6]]) >>> ar2 array([[1, 2, 3], [4, 5, 6]]) >>> ar1.shape (2, 3) 3차원 배열을 하나 정의해봅시다. >>> ar3=np.array([ [[1,2,3,4],[5,6,7,8],[9,10,11,12]] , [[13,14,15,16],[17,18,19,20],[21,22,23,24]] ] ) >>> ar3 array([[[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12]], [[13, 14, 15, 16], [17, 18, 19, 20]..
2021. 10. 20.
[파이썬 강의] 56. 배열의 차원, 모양, 원소 수
배열은 아래와 같은 특성을 갖습니다. 차원 (ndim) 모양 (shape) 원소 수 (size) 괄호 안이 함수이기도 하고 메소드이기도 합니다. 2차원 배열을 예로 들어 특성을 확인해봅시다. 아래와 같이 2차원 배열을 하나 정의하겠습니다. >>> import numpy as np >>> ar1=np.array([[1,2,3],[4,5,6]]) >>> ar1 array([[1, 2, 3], [4, 5, 6]]) 차원을 알아봅시다. 함수를 사용할 수도 있고 메소드를 사용할 수도 있습니다. 행렬이므로 2차원입니다. >>> np.ndim(ar1) 2 >>> ar1.ndim 2 모양을 알아봅시다. 2행 3열입니다. >>> np.shape(ar1) (2, 3) >>> ar1.shape (2, 3) 원소 수를 알아봅..
2021. 10. 18.
[파이썬 강의] 55. 3차원 배열의 정의, 인덱싱, 슬라이싱
3차원 배열은 리스트를 세겹 중첩하여 정의합니다. 4행 3열 2층 의 3차원 배열을 정의하고 싶다고 해봅시다. 아래 두 행렬이 높이 방향을 쌓여있는 3차원 배열을 정의하고 싶은 것입니다. 여기서 '고'는 높이를 의미합니다. 1 2 3 4 5 6 7 8 9 10 11 12 아래와 같이 정의하면 됩니다. >>> import numpy as np >>> ar1=np.array([ [[1,2,3],[4,5,6]] , [[7,8,9],[10,11,12]] ]) >>> ar1 array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) 인덱싱을 해봅시다. 첫번째 자리의 인덱싱이 '층'임을 알 수 있습니다. >>> ar1[0] array([[1, 2, 3], [4, 5, ..
2021. 10. 15.
[파이썬 강의] 53. 넘파이의 자료형
우리가 이미 알고 있는 자료형은 아래와 같습니다. 정수 int 실수 float 복소수 complex 문자열 str 논리형 bool numpy는 자신만의 데이터 타입을 갖습니다. 아래와 같습니다. 1. 숫자형 1-1. 정수형(int8, int16, int32, int64) 1-2. 부호 없는 정수형(uint8, unit16, unit32, unit64) 1-3. 부동소수형 (float16, float32, float64) 1-4. 복소수형 (complex64, copmlex128) 2. 문자형 (string_) 3. 눈리형 (bool) 4. 날짜시간형 (datetime64) 숫자혀이 더 세분화되어 있습니다. int8, int32 등에서 뒤에 붙어있는 숫자는 bit입니다. 비트는 0과 1을 갖는 데이터의 가..
2021. 10. 15.
[파이썬 강의] 51. 2차원 배열(행렬)의 산술연산
행렬을 두개 정의해봅시다. >>> import numpy as np >>> m1 array([[10, 20], [30, 40]]) >>> m2=np.array([[5,6],[7,8]]) >>> m2 array([[5, 6], [7, 8]]) 일곱가지 산술연산자를 적용해봅시다. 일곱가지 산술연산자는 아래와 같습니다. + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 ** 제곱 // 몫 % 나머지 >>> m1+m2 array([[15, 26], [37, 48]]) >>> m1-m2 array([[ 5, 14], [23, 32]]) >>> m1*m2 array([[ 50, 120], [210, 320]]) >>> m1/m2 array([[2. , 3.33333333], [4.28571429, 5. ]]) >>> m1*m2..
2021. 10. 14.