본문 바로가기
반응형

배열24

[파이썬 강의] 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.
[파이썬 강의] 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.
[파이썬 강의] 72. 두 값과 원하는 개수를 지정하는 등차수열 두 값과 원하는 개수를 지정하여 등차수열을 생성하는 방법입니다. 예를들어 1과 7이라는 두 값을 지정하고, 개수를 네개로 지정하면 아래와 같은 배열이 생성되는 것입니다. 두 값 사이를 등간격으로 잘라서 숫자를 만들어 줍니다. 1 3 5 7 함수는 넘파이 패키지의 linspace 를 사용합니다. 아래와 같은 형식으로 사용합니다. linspace(첫항,끝항,개수) 아래는 위 예시를 코드로 구현한 것입니다. >>> import numpy as np >>> np.linspace(1,7,4) array([1., 3., 5., 7.]) 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.
[파이썬 강의] 64. 배열을 원하는 방향으로 합치기 (concatenate 함수와 axis) 배열을 합치는데 사용되는 함수는 크게 두가지가 있습니다. stack 류 함수와 concatenate 함수입니다. 1) stack 류 함수 - vstack - hstack - column_stack 2) concatenate 함수 오늘은 concatenate 함수에 대해 알아봅시다. concatenate 함수는 하나의 함수가 vstack, hstack 을 포함합니다. axis 라는 옵션을 이용합니다. axis 옵션만 이해하면 concatante 를 자유자재로 사용할 수 있습니다. axis의 개수는 합치려는 배열의 차원의 개수와 동일합니다. 3차원이면 axis는 0,1,2 세개입니다. shape 함수의 결과가 axis와 동일합니다. shape함수의 첫번째 값이 0번 axis, 두번째 값이 1번 axis 입니.. 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.
[파이썬 강의] 61. 배열을 행 방향(세로 방향)으로 합치기 (vstack 함수) 배열을 합치는데 사용되는 함수는 크게 두가지가 있습니다. stack 류 함수와 concatenate 함수입니다. 1) stack 류 함수 - vstack - hstack - column_stack 2) concatenate 함수 오늘은 stack류 함수를 이용하여 배열을 행 방향으로 합쳐보겠습니다. 배열을 행방향으로 합칠때는 vstack 함수를 사용합니다. vstack에서 v는 vertical 입니다. '세로'를 의미합니다. vstack : 배열을 행 방향으로 합치는 함수 배열을 행 방향으로 합친다는 것은 아래와 같이 합치는 것을 말합니다. [1,2,3] + [4,5,6] = [[1, 2, 3] [4, 5, 6]] 1차원 배열 예시 >>> import numpy as np >>> v1=np.array([.. 2021. 10. 22.
[파이썬 강의] 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.
[파이썬 강의] 54. 행 또는 열의 길이가 다른 배열도 정의가 가능한가 행 또는 열의 길이가 다른 배열도 정의가 가능하지 궁금해서 시험해봤습니다. 예를들면 1행은 2열까지만 있고, 2행은 3열까지만 있는 배열 정의가 가능한지에 대한 의문입니다. 1 2 1 2 3 >>> import numpy as np >>> ar1=np.array([[1,2],[1,2,3]]) Warning (from warnings module): File "", line 1 VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If y.. 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.
[파이썬 강의] 50. 2차원 배열(행렬)의 정의, 인덱싱, 슬라이싱 넘파이 패키지의 배열 자료구조를 이용하여 벡터를 정의하고 인덱싱과 슬라이싱을 해봅시다. 먼저 넘파이 패키지를 불러옵시다. >>> import numpy as np 행렬은 리스트를 중첩하여 정의합니다. >>> m1=np.array([[1,2],[3,4]]) 위 행렬은 아래와 같은 행렬입니다. $\begin{bmatrix} 1 &2 \\ 3 &4 \end{bmatrix}$ 인덱싱은 리스트의 인덱싱과 동일한 방식으로 하면 됩니다. 예를들어 2라는 원소에 접근하고 싶은 경우, [1,2]라는 원소에 먼저 접근하고 나서 2에 접근하면 됩니다. >>> m1[0] array([1, 2]) >>> m1[0][1] 2 배열의 경우 아래와 같이 입력해도 인덱싱이 가능합니다. 이 방법을 주로 사용합니다. >>> m1[0,1].. 2021. 10. 14.
[파이썬 강의] 48. 1차원 배열(벡터)의 정의, 인덱싱, 슬라이싱 넘파이 패키지의 배열 자료구조를 이용하여 벡터를 정의하고 인덱싱과 슬라이싱을 해봅시다. 먼저 넘파이 패키지를 불러옵시다. >>> import numpy as np 벡터를 하나 정의합시다. >>> v1=np.array([1,2,3,4,5]) 인덱싱과 슬라이싱 방법은 리스트와 동일합니다. 첫번째 원소에 접근해봅시다. >>> v1[0] 1 >>> v1[-5] 1 슬라이싱을 이용하여 3,4,5에 접근해봅시다. >>> v1[2:5] array([3, 4, 5]) 인덱싱을 이용하면 원소의 자료형이 반환되고, 슬라이싱을 이용하면 배열이 반환되는 것을 알 수 있습니다. 2021. 10. 14.
[파이썬 강의] 47. 자료구조 - 배열 (Numpy Array) 파이썬에서 기본적으로 제공하는 자료구조는 리스트, 튜플, 딕셔너리, 집합이 있습니다. 또 사람들이 파이썬을 더 편하게 쓰기위해 만들어낸 자료구조로 Array, Series, DataFrame 이 있습니다. - 리스트 - 튜플 - 딕셔너리 - 집합 - Array (넘파이 패키지) - Series (판다스 패키지) - DataFrame (판다스 패키지) 오늘 배워볼 자료구조는 배열(Array)입니다. 배열은 아마 파이썬에서 가장 많이 사용하는 자료구조일 것입니다. 벡터가 1차원 배열, 행렬이 2차원 배열이라는 것을 지난 시간에 이미 이야기했습니다. 파이썬에서 배열을 하나 정의해봅시다. 먼저 numpy 를 불러오는데 np라고 줄여서 부르겠다고 선언합니다. >>> import numpy as np 배열은 arr.. 2021. 10. 14.
[파이썬 강의] 45. 넘파이 불러오기 (import numpy as np) 넘파이를 설치했으니 불러와봅시다. 넘파이를 불러와야 넘파이에 있는 기능들을 사용할 수가 있습니다. 패키지를 불러올 때는 import 라는 명령어를 사용합니다. 아래와 같이 사용하면 됩니다. import 패키지 이름 파이썬쉘에 아래와 같이 입력합시다. >>> import numpy 이제 넘파이 패키지의 기능들을 사용할 수 있게 되었습니다. 넘파이 안에 있는 기능들을 사용하려면 numpy라는 말을 앞에 붙여줘야 합니다. 예를들어 배열은 아래와 같이 정의합니다. >>> numpy.array([1,2,3]) array([1, 2, 3]) 매번 numpy 를 붙이는 것이 번거롭습니다. 이럴때 사용하는 명령어가 as 입니다. >>> import numpy as np numpy 를 np 로 불러온다는 말입니다. 이제.. 2021. 10. 14.
반응형