• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

Python array에서 extended slices를 사용하자

Programming/Python 2020. 5. 18. 09:27




파이썬 코드를 보다 낯선 문법을 보고 어떤 의미인지 찾아보다 extended slices 에 대하 찾게 되었다.

https://docs.python.org/release/2.3.5/whatsnew/section-slices.html

 

15 Extended Slices

15 Extended Slices Ever since Python 1.4, the slicing syntax has supported an optional third ``step'' or ``stride'' argument. For example, these are all legal Python syntax: L[1:10:2], L[:-1:1], L[::-1]. This was added to Python at the request of the devel

docs.python.org

 

여기서 문제가 됐던 문법은 array[::] 에 관한 부분이다. 

 

array[A:B:C] 라고 사용하면 이는 array중 A에서 B 까지 C 간격으로 배열을 생성한다는 의미이다.

 

A, B, C가 각각 None이라면

A는 처음부터 (0번 index)

B는 가능한 index까지 

C는 1을 의미한다.

 

간단한 예시를 보면 아래와 같다.

>> arr = range(10) 
>> arr [0,1,2,3,4,5,6,7,8,9] 
>> arr[::2] # 처음부터 끝까지 두 칸 간격으로 
   # [0,2,4,6,8] 

>> arr[1::2] # index 1 부터 끝까지 두 칸 간격으로 
   # [1,3,5,7,9] 

>> arr[::-1] # 처음부터 끝까지 -1칸 간격으로 ( == 역순으로) 
   # [9,8,7,6,5,4,3,2,1,0] 
   
>> arr[::-2] # 처음부터 끝까지 -2칸 간격으로 ( == 역순, 두 칸 간격으로) 
   # [9,7,5,3,1] 

>> arr[3::-1] # index 3 부터 끝까지 -1칸 간격으로 ( == 역순으로) 
   # [3,2,1,0] 
   
>> arr[1:6:2] # index 1 부터 index 6 까지 두 칸 간격으로 
   # [1,3,5]

 

이런 단순 배열 뿐만 아니라 Image를 다룰때 간단한 flip을 구현하는데도 사용 가능하다.

# image는 tensor와 같은 순서로 H, W, C 순서라 가정하고..

# h flip
img = img[:, ::-1, :]

# v flip
img = img [::-1, :, :]
저작자표시 (새창열림)

'Programming > Python' 카테고리의 다른 글

CondaVerificationError를 해결하자  (0) 2020.10.28
폴더의 이름을 일괄 변경하자  (0) 2020.05.27
Anaconda 가상환경 구동 및 프로그램실행을 batch로 만들자  (1) 2020.05.12
python에서의 Asterisk는 무슨일을 하는가.  (0) 2020.03.09
골뱅이, decorator를 이용하여 함수 실행시간을 측정하자.  (0) 2020.01.07
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

카테고리

  • 살다보니.. (449)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (147)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (58)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (8)
    • 전공관련 (80)
      • Algorithm (6)
      • Deep Learning (54)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (8)
    • Computer (118)
      • Utility (21)
      • Windows (31)
      • Mac (4)
      • Ubuntu, Linux (58)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • 매트랩 함수
  • 오봉자싸롱
  • DSLR
  • Convolutional Neural Networks
  • matlab
  • LIBSVM
  • 매트랩
  • ColorMeRad
  • utility
  • ReadString
  • matlab function
  • 크롬
  • review
  • 큐슈
  • portugal
  • 스마트체험단
  • 에누리닷컴
  • random variable
  • 포르투갈
  • Computer Tip
  • Deep Learning
  • 일본
  • 칼로리 대폭발
  • 딥러닝
  • CStdioFile
  • function
  • SVM
  • DeepLearning
  • 후쿠오카
  • 갤럭시노트3

달력

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
06-20 09:17

LATEST FROM OUR BLOG

RSS 구독하기

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바