[파이썬 강의] 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.
[파이썬 강의] 49. 1차원배열(벡터)의 산술연산
길이가 같은 벡터 두개를 정의해봅시다. >>> import numpy as np >>> v1=np.array([10,20,30]) >>> v2=np.array([3,5,7]) 일곱가지 산술연산자를 적용해봅시다. 일곱가지 산술연산자는 아래와 같습니다. + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 ** 제곱 // 몫 % 나머지 >>> v1+v2 array([13, 25, 37]) >>> v1-v2 array([ 7, 15, 23]) >>> v1*v2 array([ 30, 100, 210]) >>> v1/v2 array([3.33333333, 4. , 4.28571429]) >>> v1**v2 array([ 1000, 3200000, 395163520], dtype=int32) >>> v1//v2 array([3, ..
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.