카테고리 없음

python - numpy(10) 배열 연결

mini_world 2020. 3. 30. 18:54
목차 접기

배열을 연결합니다!

 

import numpy as np

# [hstack] 행의 수가 같은 두개 이상의 배열을 옆으로 연결
#          연결할 배열은 하나의 리스트에 담아야 함
print('-------hstack-------')
a1 = np.ones((2, 3))
print(a1)
a2 = np.zeros((2, 2))
print(a2)

hs = np.hstack([a1, a2])
print(hs)

# [vstack] 행의 수가 같은 두개 이상의 배열을 아래로 연결
#          연결할 배열은 하나의 리스트에 담아야 함
print('-------vstack-------')

b1 = np.ones((2, 3))
print(b1)
b2 = np.zeros((4, 3))
print(b2)

vs = np.vstack([b1, b2])
print(vs)


# [dstack] 제 3의 축, 행이나 열이 아닌 깊이 방향으로 배열을 합치는 함수
print('-------dstack-------')

c1 = np.ones((3, 4))
c2 = np.zeros((3, 4))
c3 = np.ones((3, 4))
ds = np.dstack([c1, c2, c3])
print(ds)

# [stack] 사용자가 원하는 차원으로 배열 연결
print('-------stack-------')

s1 = np.stack([c1, c2])
print(s1)

s2 = np.stack([c1, c2], axis=2)   # axis 의 기본값은 0
print(s2)


# r_method : hstack과 유사하다. 메서드이지만 ()를 사용하지 않고 []를 사용한다
# 특수 메서드 ==> 인덱서(indexer)
print('-------r_method-------')

rr = np.r_[np.array([1, 2, 3, 4]), np.array([5, 6, 7, 8])]
print(rr)

# c_method : 배열의 차원을 증가하여 연결
print('-------c_method-------')

cc = np.c_[np.array([1, 2, 3, 4]), np.array([5, 6, 7, 8])]
print(cc)

# tile() : 동일한 배열을 반복하여 연결
print('-------tile-------')
ti = np.array([[1, 2, 3], [4, 5, 6]])
print(np.tile(ti, 5))
print(np.tile(ti, (3, 2)))

 

[코드 실행 결과]

 

-------hstack-------
[[1. 1. 1.]
 [1. 1. 1.]]
[[0. 0.]
 [0. 0.]]
[[1. 1. 1. 0. 0.]
 [1. 1. 1. 0. 0.]]
-------vstack-------
[[1. 1. 1.]
 [1. 1. 1.]]
[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
[[1. 1. 1.]
 [1. 1. 1.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
-------dstack-------
[[[1. 0. 1.]
  [1. 0. 1.]
  [1. 0. 1.]
  [1. 0. 1.]]

 [[1. 0. 1.]
  [1. 0. 1.]
  [1. 0. 1.]
  [1. 0. 1.]]

 [[1. 0. 1.]
  [1. 0. 1.]
  [1. 0. 1.]
  [1. 0. 1.]]]
-------stack-------
[[[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]

 [[0. 0. 0. 0.]
  [0. 0. 0. 0.]
  [0. 0. 0. 0.]]]
[[[1. 0.]
  [1. 0.]
  [1. 0.]
  [1. 0.]]

 [[1. 0.]
  [1. 0.]
  [1. 0.]
  [1. 0.]]

 [[1. 0.]
  [1. 0.]
  [1. 0.]
  [1. 0.]]]
-------r_method-------
[1 2 3 4 5 6 7 8]
-------c_method-------
[[1 5]
 [2 6]
 [3 7]
 [4 8]]
-------tile-------
[[1 2 3 1 2 3 1 2 3 1 2 3 1 2 3]
 [4 5 6 4 5 6 4 5 6 4 5 6 4 5 6]]
[[1 2 3 1 2 3]
 [4 5 6 4 5 6]
 [1 2 3 1 2 3]
 [4 5 6 4 5 6]
 [1 2 3 1 2 3]
 [4 5 6 4 5 6]]

Process finished with exit code 0

728x90