넘파이의 3차원에서 axis는 아래 그림과 같이 axis=0은 깊이, axis=1은 세로축, axis=2는 가로축이다.

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

일 때 

1. np.stack((a, b), axis=0)

np.stack((a, b), axis=0)
# array([[[1, 2],
#         [3, 4]],

#        [[5, 6],
#         [7, 8]]])

그림은 아래와 같다. axis=0이므로 reshape에서 1번째에 1이 추가된다. 

2. np.stack((a, b), axis=1)

np.stack((a, b), axis=1)
# array([[[1, 2],
#         [5, 6]],

#        [[3, 4],
#         [7, 8]]])

그림은 아래와 같다. axis=1이므로 reshape에서 2번째에 1이 추가된다. 

 

3. np.stack((a, b), axis=2)

np.stack((a, b), axis=2)
# array([[[1, 5],
#         [2, 6]],

#        [[3, 7],
#         [4, 8]]])

그림은 아래와 같다. axis=2이므로 reshape에서 3번째에 1이 추가된다. 

 

참고로, 아래 그림은 np.reshape을 이용해 shape=(2,3,2) --> shape=(2,3,2)으로 바뀌는 과정을 나타낸다. 가장 바깥쪽(3번째 axis)이 먼저 unrolling되고, rolling될 때도 가장 바깥쪽(3번째 axis)이 먼저 rolling된다. (https://towardsdatascience.com/np-reshape-in-python-39b4636d7d91 참조)

 

 

 
Posted by uniqueone
,

numpy.r_ : Translates slice objects to concatenation along the first axis. 첫번째 axis (위에서 아래 방향)으로 연결되도록 변환한다.

numpy.c_ : Translates slice objects to concatenation along the second axis. 두번째 axis (왼쪽에서 오른 방향)으로 연결되도록 변환한다.

 

>>> import numpy as np

>>> a = np.array([123]) # 1차원

>>> b = np.array([456]) # 1차원

>>> c = np.array([[123]]) # 2차원

>>> d = np.array([[456]]) # 2차원

>>> e = np.array([[[123]]]) # 3차원

 

>>> a.shape, b.shape, c.shape, d.shape, e.shape

((3,), (3,), (1, 3), (1, 3), (1, 1, 3))

 

>>> np.r_[a, b]

array([1, 2, 3, 4, 5, 6])

a, b는 1차원 어레이인데, 위아래로 합치면 [1, 2, 3, 4, 5, 6]^T 이 되는데 (즉 세로 형태의 1차원 array가 되는데),  파이썬에서는 1차원 어레이는 무조건 가로로 나열되므로 결과는 array([1, 2, 3, 4, 5, 6])가 된다.

 

>>> np.r_[c, d]

array([[1, 2, 3], [4, 5, 6]])

c, d는 2차원 어레이인데, 위아래로 합치면 array([[1, 2, 3], [4, 5, 6]])가 된다. 

 

>>> np.c_[a, b]

array([[1, 4], [2, 5], [3, 6]])

a, b는 1차원 어레이인데, 수평으로 합치면 array([[1, 4], [2, 5], [3, 6]])가 된다.

 

>>> np.c_[c, d]

array([[1, 2, 3, 4, 5, 6]])

c, d는 2차원 어레이인데, 수평으로 합치면 array([[1, 2, 3, 4, 5, 6]])가 된다. 

 

파이썬python_블로그에설명.pptx
0.04MB

 

numpy.org/doc/stable/reference/generated/numpy.r_.html?highlight=r_#numpy.r_

rfriend.tistory.com/352

 

 

 

 

 

 

 

 

 
 
 
 
Posted by uniqueone
,