본문 바로가기
Python/Pandas & numpy

Numpy 배열 병합/분할

by Mr.DonyStark 2024. 3. 10.

□ 병합 : np.append(배열1,배열2, axis=0or1)

#배열간 병합

a = np.arange(1,13).reshape(3,4)
b = np.arange(13,25).reshape(3,4)
c = np.append(a,b,axis=0)
d = np.append(a,b,axis=1)
print(f"a 형태 :\n{a}")
print("\n")
print(f"b 형태 :\n{b}")
print("\n")
print(f"c 형태(행방향 병합) :\n{c}")
print("\n")
print(f"d 형태(열방향 병합) :\n{d}")
print("\n")

 

□ 병합

  ○ vstack = axis 0 기준으로 병합
  ○ hstack = axis 1 기준으로 병합

a = np.arange(1,33).reshape(4,8)
b = np.arange(33,65).reshape(4,8)
c = np.hstack((a,b))
d = np.vstack((a,b))
print(f"a 형태 :\n{a}")
print("\n")
print(f"b 형태 :\n{b}")
print("\n")
print(f"c hstack :\n{c}")
print("\n")
print(f"d 형태 :\n{d}")
print("\n")

 

□ 분할

  ○ np.vsplit(배열명,분할수) = axis 0 기준으로 분할
  ○ np.hsplit (배열명,분할수) = axis 1 기준으로 분할

a = np.arange(1,37).reshape(6,6)
b = np.vsplit(a,2)
c = np.hsplit(a,3)
print(f"a 형태 :\n{a}")
print("\n")
print(f"b vsplit형태 :\n{b}")
print("\n")
print(f"c hsplit형태 :\n{c}")
print("\n")

#3차원 배열
arr = np.random.randint(0,10,(4,6,8)) #0~10범위의 값으로 6행8열의 배열을 4장 생성 : 3차원
print(f"arr 형태 :\n{arr}")
print("\n")
b = np.vsplit(arr,2)
c = np.hsplit(arr,2)
print(f"b vsplit형태 :\n{b}")
print("\n")
print(f"c hsplit형태 :\n{c}")
print("\n")

'Python > Pandas & numpy' 카테고리의 다른 글

Numpy dot/transpose  (0) 2024.03.14
Numpy sort/argsort  (0) 2024.03.14
Numpy 인덱스 번호를 활용한 임의값 추가 및 삭제  (0) 2024.03.10
Numpy 전치행렬  (0) 2024.03.09
Numpy 차원축소  (0) 2024.03.09