Python 넘파이 배열 값 추가하기 ndarray

파이썬에서 array는 append 메서드를 사용해서 배열을 추가할 수 있습니다.

 

append 예제

arr = []
arr.append([1, 2, 3])
arr.append([4, 5])
print(arr)

 

결과

[[1, 2, 3], [4, 5]]

 

행 길이는 다르지만 2차원 배열이 되었습니다.

이번에는 numpy로 생성한 배열에 append를 사용해 값을 추가해보겠습니다.

 

numpy append 예제

import numpy as np

arr = np.array([])
arr = np.append(arr, np.array([1, 2, 3]))
arr = np.append(arr, np.array([4, 5]))
print(arr)

 

결과

[1. 2. 3. 4. 5.]

 

배열에 append를 사용해 배열을 추가했지만 2차원 배열이 아닌 1차원 배열로 추가되었습니다.

numpy를 2차원 배열로 추가하고 싶은 경우에는 다음처럼 작성해야 합니다.

 

numpy 2차원 배열 추가

import numpy as np

arr = np.empty((0,3), int)
arr = np.append(arr, np.array([[1, 2, 3]]), axis=0)
arr = np.append(arr, np.array([[4, 5, 0]]), axis=0)
print(arr)

 

결과

[[1 2 3]
 [4 5 0]]

 

2차원 배열로 추가되었습니다.

소스를 살펴보겠습니다.

먼저 np.empty를 초기화해둡니다.

추가하는 배열의 요소수는 초기화했던 길이와 동일해야 합니다.

그리고 append 함수에 지정하는 ndarray는 다중 배열로 지정합니다.

마지막으로 axis=0 를 작성해 줍니다.

추가한 배열은 슬라이스도 간단히 사용할 수 있습니다.

 

슬라이스 예제

import numpy as np

arr = np.empty((0,3), int)
arr = np.append(arr, np.array([[1, 2, 3]]), axis=0)
arr = np.append(arr, np.array([[4, 5, 0]]), axis=0)

print('--All--')
print(arr)
print('--SliceEx1--')
print(arr[0,1])
print('--SliceEx2--')
print(arr[1,:2])
print('--SliceEx3--')
print(arr[:, 1])

 

결과

--All--
[[1 2 3]
 [4 5 0]]
--SliceEx1--
2
--SliceEx2--
[4 5]
--SliceEx3--
[2 5]

댓글