프로그래밍/Python

[Python] Numpy Slicing

유니디니 2020. 6. 28. 14:49
728x90
반응형

참고 자료 : [1] https://numpy.org/doc/stable/reference/arrays.indexing.html


[2] https://datascienceschool.net/view-notebook/416d733c3a734565b69fd0c8dc959edb/


[3] https://076923.github.io/posts/Python-numpy-5/



Numpy Slicing


Numpy란 수치해석용 Python 패키지로, 다차원의 행렬 자료구조인 ndarray를 지원하여 벡터와 행렬을 사용하는 계산에 주로 사용된다. numpy의 행렬 연산은 C로 구현된 내부 반복문을 사용하기 때문에, Python 반복문에 비해 속도가 빠르다. 행렬 인덱싱(Indexing)을 사용한 질의 기능을 이용하여 짧고 간단한 코드로 복잡한 수식을 계산할 수 있다. 또한, 데이터 분석에 사용되는 라이브러리인 pandas와 matplotlib의 기반으로 사용되기도 한다. numpy에서는 array라는 단위로 데이터를 관리하며 이에 대해 연산을 수행한다.


numpy에서 사용되는 인덱싱은 기본적으로 python 인덱싱과 동일하다. 인덱싱에서의 시작은 1이 아닌 0이다.

배열 [a:b:c]를 이용하여 배열을 표현할 수 있다. a는 시작값, b는 마지막 값, c는 간격을 의미한다. 

-1을 입력할 경우, 마지막 값인 b에서 -1을 의미한다.


예시) 

import numpy as np

a = np.array([0,1,2,3,4])

1. print(a)

2. print(a[0:2])

3. print(a[1:-1])

4. print(a[0:3:2])


결과)

1. [0 1 2 3 4]

2. [0 1 2]

3. [1 2 3]

4. [0 2]


2차원 3차원에 대해서도 마찬가지이다. 배열 [a:b, c:d]를 이용하여 배열의 일부를 표현한다. 배열 [a:b:e, c:d:f]를 이용하여 e, f를 간격으로 사용할 수 있다.


import numpy as np

a = np.array([[1,2,3],

 [4,5,6],

 [7,8,9]])

print(a)

print(a [ : : 2,  : : 2])


결과)

1. [[1 2 3]

    [4 5 6]

    [7 8 9]]


2. [[1 3]

    [7 9]]

반응형