Python - numpy.append(), 배열 추가

numpy.append() 함수로 numpy array에 값을 추가하는 방법을 소개합니다.

1. numpy.append()

numpy.append()는 배열 arr의 복사된 배열에 인자로 전달된 values를 추가하고 리턴합니다.

  • arr : arr의 복사된 배열에 값들(values)이 추가됨
  • values : 복사된 배열에 추가되는 값들
  • axis : 값이 추가되는 axis(축). (axis를 입력하지 않으면 값들이 평탄화되어 배열로 리턴)
numpy.append(arr, values, axis=None)

아래 예제를 보면, append()arr에 직접 값을 추가하지 않고, 복사된 배열에 값을 추가하고 리턴합니다.

import numpy as np

# 1차 numpy 배열 생성
arr = np.array([1, 2, 3])

# 새로운 값을 배열에 추가
copied = np.append(arr, 4)

print(arr) # [1 2 3]
print(copied) # [1 2 3 4]

2. 1차 배열에 값 추가

아래와 같이 1차 배열을 생성하고 값들을 추가할 수 있습니다.

import numpy as np

# 1차 numpy 배열 생성
arr = np.array([1, 2, 3])

# 새로운 값을 배열에 추가
arr = np.append(arr, 4)

# 새로운 값을 배열에 추가
arr = np.append(arr, [5, 6, 7])

print(arr)

Output:

[1 2 3 4 5 6 7]

2. 2차 배열에 Row 추가

아래와 같이 2차 배열을 생성하고, 2차 배열에서 행(Row)에 해당하는 값들을 추가할 수 있습니다.

  • axis = 0은 2차 배열에서 행(Row)을 의미 (Row 방향의 축)
  • axis = 0로 배열에 값을 추가하면, 기존 배열의 뒤에 행으로 값이 추가됨
import numpy as np

# 2차 배열 생성
matrix = np.array([[1, 2], [3, 4]])

# 새로운 row를 2차 배열에 추가
row_to_append = np.array([5, 6])
matrix = np.append(matrix, [row_to_append], axis=0)

# 새로운 row를 2차 배열에 추가
matrix = np.append(matrix, [[7, 8]], axis=0)

print(matrix)

Output:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

아래와 같이 한번에 여러 Row들을 추가할 수도 있습니다.

import numpy as np

# 2차 배열 생성
matrix = np.array([[1, 2], [3, 4]])

# 새로운 row를 2차 배열에 추가
matrix = np.append(matrix, [[5, 6], [7, 8]], axis=0)

print(matrix)

Output:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

3. 2차 배열에 Column 추가

아래와 같이 2차 배열을 생성하고, 2차 배열에서 열(Column)에 해당하는 값들을 추가할 수 있습니다.

  • axis = 1은 2차 배열에서 열(Column)을 의미 (Column 방향의 축)
  • axis = 1로 배열에 값을 추가하면, 기존 Row에 값이 추가됨 (Column이 추가된 것처럼 보임)
import numpy as np

# 2차 배열 생성
matrix = np.array([[1, 2], [3, 4]])

# 새로운 Column을 2차 배열에 추가
matrix = np.append(matrix, [[5, 6], [7, 8]], axis=1)

print(matrix)

Output:

[[1 2 5 6]
 [3 4 7 8]]

4. 평탄화된 배열 얻기(axis 생략)

2차 배열에 append()로 값을 추가할 때, 인자 axis를 생략하면 2차 배열의 값들이 1차 배열로 평탄화되어 리턴됩니다.

import numpy as np

# 2차 배열 생성
arr = np.array([[1, 2], [3, 4]])

# axis를 입력하지 않으면 값이 평탄화되어 배열로 리턴
arr = np.append(arr, [[5, 6], [7, 8]])
print(arr)

Output:

[1 2 3 4 5 6 7 8]
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha