Python numpy 강좌 : 제 9강 - 차원 확장

   

차원 확장


import numpy as np

a = np.array([1, 2, 3, 4])

print(a)
print(a[np.newaxis])
print(a[:, np.newaxis])
결과
[1 2 3 4]
[[1 2 3 4]]
[[1]
[2]
[3]
[4]]

indexnp.newaxis를 이용하여 차원을 확장할 수 있습니다.

부분에 np.newaxis를 입력시, 차원을 한 단계 추가합니다.

부분에 np.newaxis를 입력시, 차원을 분해한 후 한 단계 추가합니다.


import numpy as np

b = np.array([[1, 2],
              [3, 4]], dtype=int)

c = b[:, np.newaxis]

print(b)

print(c)
print(c[1][0])
print(c[1][0][1])
결과
[[1 2]
[3 4]]
[[[1 2]]

[[3 4]]]
[3 4]
4

배열[:, :, :, ... , np.newaxis]를 이용하여 차원을 확장시킬 수 있습니다.

차원이 증가함에 따라 index의 표시법이 같이 증가합니다.

주로, 슬라이싱를 통한 연산에 사용됩니다.


import numpy as np

a = np.array([1, 2, 3])
b = np.array([1, 2, 3])

print(a[np.newaxis] * b)
print(a[:, np.newaxis] * b)
print("\n")
print(a[np.newaxis] + b)
print(a[:, np.newaxis] + b)
결과
[[1 4 9]]
[[1 2 3]
[2 4 6]
[3 6 9]]


[[2 4 6]]
[[2 3 4]
[3 4 5]
[4 5 6]]

차원을 어떻게 나누느냐에 따라, 결과가 상이하게 달라집니다.

주로, 배열[:, np.newaxis] 형태로 계산을 진행합니다.



도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Python numpy 강좌 : 제 10강 - 난수 ⤧  Previous post Python numpy 강좌 : 제 8강 - 매트릭스