728x90
반응형
1. 1차원 슬라이스
- 방법: 배열[시작점:(끝-1)]
- 끝 점은 -1된 값이 되기 때문에 주의해야 한다.
- 예시
import numpy as np
array = np.array([1,2,3,4])
sliced = array[0:2]
#sliced -> array([1,2])
2. 2차원 슬라이스
- 방법: [행의 시작:(행의 끝-1), 열의 시작: (열의 끝-1)]
- 1차원하고 비슷하지만, 행과 열을 콤마로 구분해준다는 것이 차이가 있다.
- 예시
import numpy as np
array_two_dim = np.array([[1,2,3,4],[5,6,7,8]])
sliced = array_two_dim[:,0:2]
3. 2차원 슬라이스 한 Numpy 배열에 대입
- 만약에 2차원 배열의 일부분의 값을 대입 혹은 계산해야 하는 경우가 생긴다.
- 그럴 경우, 2차원 배열을 슬라이싱 하게 되는데, 주의해야 할 것이 있다.
- 바로, 차원을 주의해야 한다. matmul() 같은 행렬 연산을 위해서는 2차원 배열이 되어야 하지만, 2차원 배열에서 슬라이스 된 배열은 경우에 따라 1차원이 되기 때문이다.
- 그럴 경우, reshape를 통해 차원을 변경해줘야 한다.
import numpy as np
def calculator():
temp0 = 1+2
temp1 = 3+4
array = np.array([[temp0,temp1]])
return array
array_two_dim = np.array([[1,2,3,4],[5,6,7,8]])
#array_two_dim의 shape는 (2,)이고, calculator의 shape는 (2,1)이기 때문에
#두 배열의 shape를 바꿔줘야 한다. 참고로, array_two_dim는 위치상 reshape를 못함
array_two_dim[:,0] = calculator().shape(-1)
반응형
'인공지능(AI) > 인공지능' 카테고리의 다른 글
CUDA 버전에 맞춰, Tensorflow 및 Pytorch 설치하기 (0) | 2023.06.30 |
---|