파이썬 기초
np.append
Atypical
2023. 1. 28. 17:50
https://076923.github.io/posts/Python-numpy-14/
이어 붙이기(Append)Permalink
import numpy as np
arr = np.array([
[
[1, 1],
[2, 2]
],
[
[3, 3],
[4, 4]
]
])
item = np.array([
[5, 5],
[6, 6]
])
print(arr.shape)
print(item.shape)
append = np.append(arr, item.reshape(1, 2, 2), axis=0)
print(append)
결과(2, 2, 2)
(2, 2)
[[[1 1]
[2 2]]
[[3 3]
[4 4]]
[[5 5]
[6 6]]]
이어 붙이기 함수(np.append)는 내장 이어 붙이기 함수(append)와 다르게 차원이 같아야 붙일 수 있습니다.
만약, Numpy 배열이 아닌 List 배열이라면 내장 이어 붙이기 함수를 통해 큰 문제 없이 이어 붙일 수 있습니다.
그 이유는 List는 Container 형식의 단순 값을 저장하는 자료형이기 때문입니다.
Numpy 배열은 연산을 위한 라이브러리입니다.
arr 변수의 차원 형태는 (2, 2, 2)를 가지며, item 변수는 (2, 2)를 갖습니다.
이 값을 이어 붙일 때, 앞 부분(2, 2, 2)에 붙여야하는지, 뒷 부분(2, 2, 2)에 붙여야하는지 알 수 없습니다.
그러므로, item 배열의 차원 크기를 arr 배열의 차원 크기와 동일하게 구성한다음 명시적으로 어떤 축(axis)에 연결할지 설정합니다.
이어 붙이기 함수는 결과 = np.append(배열1, 배열2, 축)을 통해 배열을 이어 붙일 수 있습니다.
위의 예제는 뒷 부분에 연결하는 예시입니다.
만약, 앞 부분에 연결한다면, 차원 형태를 (2, 2, 1)로 설정하고 마지막 축(axis=2)에 연결해 사용할 수 있습니다.
append = np.append(arr, item.reshape(2, 2, 1), axis=-1)
print(append)
결과[[[1 1 5]
[2 2 5]]
[[3 3 6]
[4 4 6]]]
https://codetorial.net/numpy/functions/numpy_append.html
axis가 뭔지 잘 봐야할것 같다.
배열의 shape를 어떻게 읽어야할까?