1차원 array
indexing
a = ['a','b','c','d','e','f'] 이런 배열이 있을때, 기본 인덱싱은
a[0] 이렇게 한다 (a[0]은 0번째 element를 indexing하며 따라서 'a'가 된다.)
이때 a[-1] 이렇게 음수도 쓸 수 있으며 마지막 element부터 -1, -2로 indexing된다. (따라서 a[-1]은 'f'가 된다)
slicing
부분집합을 가져오는 slicing은 colon을 한 번 쓰거나, 두 번 쓸 수 있으며,
각각 [start:stop], [start:stop:step] 이라는 의미가 된다.
또한 colon기호는 대괄호 안에서만 쓸 수 있으나 slice() 객체를 사용하면 밖에서 할 수도 있다.
예를 들어 a[1:3] 하면 ['b', 'c']가 되는데,
a[1:3]은 a[slice(1,3)]과 같기 때문에
아래처럼 두줄에 나눠쓰는게 가능하다.
> col = slice(1,3)
> a[col]
slicing의 다양한 옵션은 여기를 보면 쉽게 파악할 수 있다.
2차원 array
indexing
a = [[1,2,3],[4,5,6]] 이런 배열이 있을때, 기본 인덱싱은
a[0][1] 이렇게 한다 (a[0][1]은 0번째 row, 1번째 column을 의미하며 값은 2가 된다)
근데 2차원 인덱싱의 경우는 a[0][1]대신 a[0,1]로도 할 수 있다.
slicing
다른건 쉬운데 index을 위한 comma와 slicing을 위한 colon이 같이 쓰이면 헷갈릴 수 있다.
예를 들어 위의 a배열에 대해서 a[:,0:2]라고 하면 [[1,2],[4,5]]가 되는데..
a[:,0:2]는
a[slice(None, None, None), slice(0, 2, None)]과 같고, 3줄로 풀어쓰면 다음과 같다.
> row = slice(None, None, None) # 모든 row를 원한다.
> col = slice(0, 2, None) # 첫번째, 두번째 컬럼만 원한다(마지막 컬럼 배제)
> a[row,col]
'Programming > Python' 카테고리의 다른 글
파이선환경 그리고 requirements.txt (0) | 2020.09.20 |
---|---|
Google Colab(Colaboratory Lab) 팁 (0) | 2019.03.07 |
pudb (0) | 2018.11.15 |
Anaconda & Jupyter (0) | 2018.03.23 |
python numpy (0) | 2018.02.28 |