• 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
Python array에서 extended slices를 사용하자  (0) 2020.05.18
Anaconda 가상환경 구동 및 프로그램실행을 batch로 만들자  (1) 2020.05.12
python에서의 Asterisk는 무슨일을 하는가.  (0) 2020.03.09
골뱅이, decorator를 이용하여 함수 실행시간을 측정하자.  (0) 2020.01.07
블로그 이미지

매직블럭

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

트랙백 0개, 댓글 0개가 달렸습니다

댓글을 달아 주세요

  • «
  • 1
  • ···
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • ···
  • 51
  • »

카테고리

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

태그목록

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

달력

«   2022/08   »
일 월 화 수 목 금 토
  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 31      
08-14 12:41

LATEST FROM OUR BLOG

  • windows terminal(powershell⋯.
  • vscode terminal 에 conda를⋯.
  • vscode에 conda 가상환경을⋯.
  • vscode keymap을 변경하자.
  • 골뱅이 연산자의 의미 (행렬곱)..
  • 프린터 용지 부족 문제를 해⋯.
  • [MXNet] 데이터 리스트를 만⋯.
  • 예쁘게 출력하자 pprint - pr⋯.
  • 작업표시줄 미리보기를 리스⋯.
  • 이미지 실제 파일 포맷 확인하기.
RSS 구독하기

BLOG VISITORS

  • Total : 1,149,449
  • Today : 38
  • Yesterday : 164

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바