[NumPy] 01. 넘파이란 무엇인가.

반응형

 

최근 들어 다양한 변화를 맞이하며

기존에 배웠던 공부가 아닌 새로운 학문을 배우고 연구할 기회가 생겼다.

하지만 많이 부족한 부분이 있는 스스로를 알기에

배웠던 부분을 기억하기 위해 내 나름의 공부 노트를 여기서 함께 하고자 한다.

 

 

--------

 

01. NumPy 넘파이

- 배열 작업에 사용되는 python 라이브러리

- 기존 python이 아닌 NumPy라는 라이브러리를 사용하는 이유 : 라이브러리 중 전문가를 배치한 것과 같음. 그래서 배열이 50배는 빠르다.

- 선형대부학, 푸리에 변환, 행렬 영역 작업을 위한 전문가

 

 NumPy 수식 맛보기

import numpy as np                # 넘파이 모듈 불러오기 그리고 np라고 부른다고 정해주기
a=np.array([1,2,3,4,5])            # a 변수에 배열을 만들기 (1차원)
print(a)print(type(a))                           # type() 객체 유형을 알려준다.

 

1) 배열 만들기

넘파이에서 'array( )' 함수를 사용하여 리스트, 튜플, 배열과 유사한 객체를 전달하여 ndarray를 생성할 수 있다.

* ndarray 란, 다차원 배열을 효율적으로 다룰 수 있는 핵심 data 구조.

ex) 튜플 사용

a=np.array((1,2,3,4,5))   # [ ] -> 대괄호가 아닌 ( ) -> 소괄호 사용print(a)>> [1,2,3,4,5]
Tuple(튜플)과 List(리스트)
a. 두 가지 모두 데이터 구조 종류이다.
b. 튜플은 (1,2,3) 이며, 변경이 불가한 데이터 구조이다. 한 번 생성하면 그 후로는 수정이 불가하다.
c. 리스트는 [1,2,3] 이며, 변경이 가능한 데이터 구조이다. 그러므로 추가, 삭제, 수정이 가능하다.

 

2) 배열의 차원 Dimensional Arrays

(1) 0차원 배열 : 스칼라(하나의 값, 실수 or 복소수)

a = np.array(42)
print(a)
>> 42

 

(2) 1차원 배열 : 0차원 배열을 요소로 가지는 배열

a = np.array([1,2,3,4,5])
print(a)
>> [1,2,3,4,5]

 

(3) 2차원 배열 : 행렬, 1차원 배열을 요소로 가짐 (대괄호의 개수로 차원을 알 수 있음 / [[    ]] )

a = np.array([[1,2,3],[4,5,6]])
print(a)
>> [[1,2,3]
       [4,5,6]]

 

(4) 3차원 배열 : 2차원 배열(행렬)을 요소로 갖는 3차원 배열

a = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
print(a)
>> [[[1,2,3]                             # 2차원 배열로 3차원 배열을 만듦
         [4,5,6]]
        [[1,2,3]
          [4,5,6]]]

 

 

3) 차원 수 확인 방법

ndim 함수를 사용하여 차원의 수를 정수로 반환한다.

a = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
print(a.ndim)
>> 3

 

4) 고차원 배열

인수를 사용하여 차원 수 정의하기

a = np.array([1,2,3,4], ndmin = 5)
print(a)
>> [[[[[1,2,3,4]]]]]

 

* D = Dimension 차원

* 5D(배열 가장 안쪽) : 요소 4개 / 4D : vector 1개 요소 / 3D : vector 있는 행렬 1개 요소 / 2D: 3D 배열인 1개 요소 / 1D: 4D 배열인 1개 요소

 

 

 

-----------

 

넘파이와 관련된 모든 공부는 

https://www.w3schools.com/python/numpy/default.asp

 

NumPy Tutorial

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

여기서 공부하였다.

 

그 외 pandas 또한 w3schools를 이용했다.

기본적인 부분을 자세히 설명해줘서 매우 기초를 다지고 이해하는데

큰 도움이 되는 사이트였다.

 

나처럼 이제 막 시작하고 기초를 탄탄하게 다지고 싶은 분들에게 추천한다.

반응형