NumPy 배열에 열 추가하기
np.hstack() 사용:
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = np.array([7, 8, 9])
# 배열에 열 추가
extended_arr = np.hstack((arr, new_column[:, None]))
print(extended_arr)
결과:
[[1 2 3 7]
[4 5 6 8]
[9]]
설명:
np.hstack()
함수는 두 개 이상의 1D 배열을 가로로 연결하여 새로운 배열을 만듭니다.[:, None]
을 사용하면 1D 배열을 2D 배열로 변환하여np.hstack()
함수와 호환되도록 합니다.
np.append() 사용:
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = np.array([7, 8, 9])
# 배열에 열 추가
extended_arr = np.append(arr, new_column[:, None], axis=1)
print(extended_arr)
[[1 2 3 7]
[4 5 6 8]
[9]]
np.append()
함수는 배열에 값을 추가합니다.axis=1
매개변수는 배열에 열을 추가하도록 지시합니다.
np.insert() 사용:
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = np.array([7, 8, 9])
# 특정 위치에 열 추가
extended_arr = np.insert(arr, 2, new_column[:, None], axis=1)
print(extended_arr)
[[1 2 7 3]
[4 5 8 6]
[9]]
np.insert()
함수는 배열의 특정 위치에 값을 삽입합니다.2
매개변수는 새로운 열을 삽입할 위치를 나타냅니다.
주의 사항:
- 추가하는 열의 행 길이는 원본 배열의 행 길이와 같아야 합니다.
- 데이터 유형은 호환되어야 합니다. 즉, 원본 배열의 열과 추가되는 열의 데이터 유형이 동일해야 합니다.
예제 코드: NumPy 배열에 열 추가
np.hstack() 사용
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = np.array([7, 8, 9])
# 배열에 열 추가
extended_arr = np.hstack((arr, new_column[:, None]))
print(extended_arr)
[[1 2 3 7]
[4 5 6 8]
[9]]
np.append() 사용
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = np.array([7, 8, 9])
# 배열에 열 추가
extended_arr = np.append(arr, new_column[:, None], axis=1)
print(extended_arr)
[[1 2 3 7]
[4 5 6 8]
[9]]
np.insert() 사용
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = np.array([7, 8, 9])
# 특정 위치에 열 추가
extended_arr = np.insert(arr, 2, new_column[:, None], axis=1)
print(extended_arr)
[[1 2 7 3]
[4 5 8 6]
[9]]
- 각 예제에서
arr
은 원본 배열이고new_column
은 추가할 열입니다.
NumPy 배열에 열 추가: 대체 방법
이 방법은 원본 배열을 재구성하여 새로운 열을 포함하도록 합니다. 하지만 이는 배열의 복사본을 만들기 때문에 효율적이지 않을 수 있습니다.
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = np.array([7, 8, 9])
# 배열 재구성
extended_arr = np.reshape(arr, (arr.shape[0], arr.shape[1] + 1))
extended_arr[:, -1] = new_column
print(extended_arr)
[[1 2 3 7]
[4 5 6 8]
[9]]
리스트 활용:
이 방법은 리스트를 사용하여 새로운 열을 만들고 원본 배열에 추가합니다.
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = [7, 8, 9]
# 리스트를 이용하여 새로운 열 추가
extended_arr = np.hstack([arr, np.array(new_column)[:, None]])
print(extended_arr)
[[1 2 3 7]
[4 5 6 8]
[9]]
np.column_stack() 사용:
이 방법은 np.hstack()
과 유사하지만, 튜플이나 리스트를 직접 입력할 수 있어 더 간결합니다.
import numpy as np
# 원본 배열 생성
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 추가할 열 생성
new_column = [7, 8, 9]
# 배열에 열 추가
extended_arr = np.column_stack((arr, new_column))
print(extended_arr)
[[1 2 3 7]
[4 5 6 8]
[9]]
np.reshape()
를 사용하는 경우 원본 배열이 수정될 수 있습니다. 주의가 필요합니다.- 리스트를 활용하는 방법은 다른 방법들보다 느릴 수 있습니다.
np.column_stack()
은 튜플이나 리스트만 입력할 수 있다는 점에 유의해야 합니다.
python numpy