numpy_indexing & slicing

numpy indexing & slicing

  • 인덱싱

    • 파이썬 리스트와 동일한 개념으로 사용
    • , 를 사용하여 각 차원의 인덱스에 접근 가능
  • 1차원 벡터 인덱싱

    1
    import numpy as np
    1
    2
    3
    # 1차원 벡터 인덱싱
    x = np.arange(10)
    print(x)
    1
    2
    # 첫번째, 마지막, 4번째
    x[0], x[-1], x[3]
    1
    2
    3
    # 4번째 값을 100으로 변경
    x[3] = 100
    print(x)
  • 2차원 행렬 인덱싱

    1
    2
    x = np.arange(10).reshape(2, 5)
    print(x)
    1
    2
    # 0번째 행의 2번째 열의 값 가져오기
    x[0, 2]
  • 3차원 행렬 인덱싱

    1
    2
    3
    # 4행 3열의 행렬이 3개를 만듬
    x = np.arange(36).reshape(3, 4, 3)
    print(x)
    1
    2
    # 0번째 행렬을 가져옴
    x[0]
    1
    x[1, 2]
    1
    2
    # 인덱스를 하나 명시할 때마다 차원이 하나씩 줄어듬
    x[1, 2, 1]

슬라이싱

  • 리스트, 문자열 slicing과 동일한 개념으로 사용
  • , 를 사용하여 각 차원 별로 슬라이싱 가능
  • 슬라이싱으로 해도 차원이 바뀌지 않음
1
2
x = np.arange(10)
print(x)
1
x[1:7]
1
2
# 슬라이싱을 해도 차원이 바뀌지는 않음
x[:]
  • 2차원 행렬 슬라이싱
    1
    2
    x = np.arange(10).reshape(2, 5)
    print(x)
    1
    2
    3
    4
    # 6, 7, 8 가져오기
    # 모든 행 가져오기 x[:]
    # 컬럼부분 가져오기 x[:, 1:4]
    x[:, 1:4]
    1
    2
    # 모든 행의 앞의 2번째만 가져오기 
    x[:, :2]
    1
    2
    3
    4
    5
    # 인덱싱과 슬라이싱 혼합
    # 0번째를 가져오고 2번째에서 자름
    # 앞에 0을 사용하여 인덱스를 사용하여 차원이 하나 줄음
    # 크기가 2인 벡터
    x[0, :2]
    1
    2
    # 자원을 유지하면서 위와 동일한 값 가져오기
    x[:1, :2]
  • 3차원 텐서 슬라이싱
    1
    2
    3
    # 차원을 유지하면서 0, 1, 2, 3, 4, 5가져오기
    # x[:1]첫번째 행렬 가져오기
    x[:1, :2, :]
    1
    2
    3
    # 2차원 행렬에서 0, 1, 2, 3, 4, 5가져오기
    # x[:1]첫번째 행렬 가져오기
    x[0, :2, :]
You need to set install_url to use ShareThis. Please set it in _config.yml.

Comments