본문 바로가기
데이터 분석

Numpy ndarray shape 변경

by ma_ro 2020. 2. 29.

ravel

  • 다차원 배열을 1차원으로 변경
  • 원소의 주소를 복사하여 반환
  • 따라서 변경 배열의 원소값을 바꾸면 원 배열의 값도 바뀜
  • order 파라미터
    • 'C' - row 우선 변경
    • 'F' - column 우선변경
# 기본 변경
x = np.arange(8).reshape(2, 4)
# array([0, 1, 2, 3, 4, 5, 6, 7])

np.ravel(x)
x.ravel() # 둘 다 가능
np.ravel(x, order='F')
# array([0, 4, 1, 5, 2, 6, 3, 7])
temp = x.ravel()
temp[0] = 100

#[[100   1   2   3]
# [  4   5   6   7]]

temp의 값을 변경하면 x의 값도 변경된다.

flatter

  • ravel과 동일하나 복사본을 반환하다는 것이 다르다.
y = np.arange(8).reshape(2, 4)
t2 = y.flatten()
t2[0] = 100

# [100   1   2   3   4   5   6   7]

# [[0 1 2 3]
#  [4 5 6 7]]

reshape

  • array의 shape를 다른 차원으로 변경
  • reshape 전 후의 원소 개수가 같아야 한다.
x = np.arange(12)
k = x.reshape(2, 3, -1) 

k =    [[[ 0  1]
      [ 2  3]
      [ 4  5]]

     [[ 6  7]
      [ 8  9]
      [10 11]]]

-1은 앞이 정해지면 나머지가 유추가능하기 때문에 자동 계산해서 넣어라 라는 뜻이다.

'데이터 분석' 카테고리의 다른 글

Numpy Broadcasting  (0) 2020.02.29
Numpy 기본 함수  (0) 2020.02.29
Numpy ndarray 인덱싱, 슬라이싱  (0) 2020.02.29
Numpy ndarray 생성  (0) 2020.02.29
Numpy 개요  (0) 2020.02.29

댓글