Python
array에 append 할 수 있을까?
꼬꼬마코더
2024. 5. 7. 00:40
728x90
numpy
배열에 대해 직접적인 append
연산은 numpy
의 append()
함수를 사용하여 수행할 수 있습니다. 하지만, 일반적인 파이썬 리스트에서 사용하는 append()
메소드와는 다소 차이가 있습니다. numpy.append()
는 새로운 배열을 반환하며, 원래 배열은 변경되지 않습니다. 또한, numpy
배열의 크기나 차원을 자유롭게 조정하려면 명시적으로 차원을 설정하거나 변형해야 합니다.
예를 들어, 초기 배열을 생성한 후에 이 배열에 새로운 요소를 추가하는 방법은 다음과 같습니다:
1. 1차원 배열에 요소 추가하기:
import numpy as np
arr = np.array([1, 2, 3])
arr = np.append(arr, 4) # 배열에 요소 4 추가
print(arr)
출력: [1, 2, 3, 4]
2. 2차원 배열에 행 또는 열 추가하기:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 새로운 행 추가
new_row = np.array([7, 8, 9])
arr = np.append(arr, [new_row], axis=0)
print(arr)
# 새로운 열 추가
new_col = np.array([[0], [0]])
arr = np.append(arr, new_col, axis=1)
print(arr)
첫 번째 print() 출력:
[[1 2 3 0] [4 5 6 0] [7 8 9 0]]
두 번째 print() 출력:
[[1 2 3 0]
[4 5 6 0]
[7 8 9 0]]
이 예에서 np.append()
함수는 axis
매개변수를 사용하여 배열에 요소를 추가할 차원을 지정합니다. axis=0
은 행을 추가하고, axis=1
은 열을 추가합니다. 만약 axis
를 지정하지 않으면 결과는 항상 1차원 배열이 됩니다.
따라서 numpy
배열을 조작할 때는 주의 깊게 차원과 형태를 관리해야 하며, 배열이 불변의 크기를 가지지 않는다는 점을 염두에 두어야 합니다. numpy.append()
는 배열의 복사본을 만드므로, 크기가 큰 배열에서 자주 사용하면 성능에 영향을 줄 수 있습니다.