[Python] Numpy - 배열 슬라이싱(slicing)

2020. 9. 18. 21:08·개발 타임캡슐/Python

배열 슬라이싱

파이썬 리스트와 유사하게 Numpy 배열도 슬라이싱이 가능하다.

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
b = a[:2, 1:3]
print(b)

#[[2 3]
#[6 7]]

Numpy배열의 경우 다차원인 경우가 많기 때문에 어떻게 슬라이싱 할지 명확하게 해야한다.

 

print(a[0, 1]) #2
b[0, 0] = 77 #b의 [0, 0]은 a의 [0, 1]
print(a)

#[[ 1 77  3  4]
#[ 5  6  7  8]
#[ 9 10 11 12]]

Numpy배열의 슬라이싱은 리스트와 달리 새로운 배열을 생성하지 않는다. 기존 배열에 대한 새로운 View를 제공할 뿐이다.

따라서 위의 예시와 같이 슬라이스 된 배열의 값을 수정하면 원래 배열의 값도 수정된다.

 

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

row_r1 = a[1, :]
row_r2 = a[1:2, :]

print(row_r1, row_r1.shape)
#[5 6 7 8] (4,)

print(row_r2, row_r2.shape)
#[[5 6 7 8]] (1, 4)

1행만 뽑아내더라도 row_r2와 같이 구간으로 뽑으면 차원이 보존되는데 그 차원의 길이가 1이 되고, 

row_r1과 같이 1행만 뽑을 경우 차원이 줄어 2차원이 1차원이 된다,

shape을 보면 알수있다, row_r1은 길이가 4인 1차원배열, row_r2는 1*4인 2차원배열

'개발 타임캡슐 > Python' 카테고리의 다른 글

[Python] Numpy - 배열 인덱싱(Array Indexing)  (0) 2020.09.19
[Python] Numpy - 배열 합치기  (0) 2020.09.19
[Python] Numpy - 배열 reshape  (0) 2020.09.18
[Python] Numpy 배열 / Numpy배열 함수  (0) 2020.09.18
[Python] 2진수 8진수 16진수 -> 10진수 -> 2진수 8진수 16진수  (0) 2020.09.07
'개발 타임캡슐/Python' 카테고리의 다른 글
  • [Python] Numpy - 배열 인덱싱(Array Indexing)
  • [Python] Numpy - 배열 합치기
  • [Python] Numpy - 배열 reshape
  • [Python] Numpy 배열 / Numpy배열 함수
🥭Mango
🥭Mango
  • 🥭Mango
    AppleMango🥭
    🥭Mango
  • 전체
    오늘
    어제
    • 분류 전체보기
      • iOS
        • Swift
        • SwiftUI
        • RxSwift
      • Algorithm
        • C
        • Python
        • Swift
      • Computer Science
        • 컴퓨터 네트워크
        • OS
      • ...
      • 개발 타임캡슐
        • Python
        • Flutter
        • Android
        • Kotlin
        • Java
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Code Base
    파이썬 14503
    스택
    코틀린
    백준 소수
    1613 파이썬
    파이썬 6118
    파이썬 토마토
    IOS
    SwiftUI Apple Login
    백준 토마토
    Apple Login
    swiftUI tabview
    14503 파이썬
    파이썬 정렬
    파이썬
    파이썬 1459
    토마토
    1613 역사
    코틀린 상속
    14503 로봇청소기
    SwiftUI
    swiftUI Gradients
    6118
    역사 파이썬
    typing animation
    Custom Map Marker
    MapMarker
    1차원 뿌요뿌요
    Swift Hello World!
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
🥭Mango
[Python] Numpy - 배열 슬라이싱(slicing)
상단으로

티스토리툴바