NumPy 배열을 다른 NumPy 배열에 연결하는 방법
다음은 NumPy 배열을 연결하는 두 가지 일반적인 방법입니다.
np.concatenate 함수 사용:
np.concatenate
함수는 가장 일반적인 배열 연결 방법이며, 축을 따라 배열을 연결합니다.
사용 방법:
import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # 축 0을 따라 연결 concatenated_array = np.concatenate((arr1, arr2)) print(concatenated_array) # 출력: [1 2 3 4 5 6] # 축 1을 따라 연결 concatenated_array = np.concatenate((arr1, arr2), axis=1) print(concatenated_array) # 출력: [[1 2 3] [4 5 6]]
핵심:
axis
매개변수는 연결할 축을 지정합니다. 기본값은 0입니다.- 연결하려는 배열의 크기가 해당 축에서 일치해야 합니다.
np.vstack 및 np.hstack 함수 사용:
np.vstack
및 np.hstack
함수는 각각 세로 및 가로 방향으로 배열을 연결하는 데 사용됩니다.
import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # 세로로 연결 (2차원 배열이어야 함) stacked_array = np.vstack((arr1, arr2)) print(stacked_array) # 출력: [[1 2 3] [4 5 6]] # 가로로 연결 (1차원 배열이어야 함) stacked_array = np.hstack((arr1, arr2)) print(stacked_array) # 출력: [1 2 3 4 5 6]
np.vstack
는 세로 방향으로 배열을 연결합니다.- 연결하려는 배열의 높이 또는 너비가 각각 일치해야 합니다.
참고:
- 연결하려는 배열의 차원이 다르거나 크기가 맞지 않으면 오류가 발생할 수 있습니다.
- 배열을 연결하기 전에 필요한 경우 배열의 크기를 조정해야 할 수도 있습니다.
NumPy 배열 연결 예제 코드
import numpy as np
# 1차원 배열 연결
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
concatenated_array = np.concatenate((arr1, arr2))
print(concatenated_array) # 출력: [1 2 3 4 5 6]
# 2차원 배열 연결 (축 0)
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
concatenated_array = np.concatenate((arr1, arr2), axis=0)
print(concatenated_array) # 출력: [[1 2]
[3 4]
[5 6]
[7 8]]
# 2차원 배열 연결 (축 1)
concatenated_array = np.concatenate((arr1, arr2), axis=1)
print(concatenated_array) # 출력: [[1 2 5 6]
[3 4 7 8]]
# 다양한 축을 따라 연결
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([7, 8, 9])
concatenated_array = np.concatenate((arr1, arr2[:, None]), axis=1)
print(concatenated_array) # 출력: [[1 2 3 7]
[4 5 6 8]
[9]]
import numpy as np
# 세로 방향 연결
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
stacked_array = np.vstack((arr1, arr2))
print(stacked_array) # 출력: [[1 2 3]
[4 5 6]]
# 가로 방향 연결
stacked_array = np.hstack((arr1, arr2))
print(stacked_array) # 출력: [1 2 3 4 5 6]
# 3차원 배열 세로 연결
arr1 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
arr2 = np.array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
stacked_array = np.vstack((arr1, arr2))
print(stacked_array) # 출력: [[[ 1 2]
[ 3 4]]
[[ 5 6]
[ 7 8]]
[[ 9 10]
[11 12]]
[[13 14]
[15 16]]]
- 이 코드는 NumPy 배열을 연결하는 다양한 방법을 보여주는 몇 가지 예시일 뿐입니다.
- 특정 상황에 맞는 올바른 방법을 선택해야 합니다.
NumPy 배열 연결을 위한 대체 방법
리스트 및 루프 사용:
import numpy as np
arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
concatenated_list = arr1 + arr2
concatenated_array = np.array(concatenated_list)
print(concatenated_array) # 출력: [1 2 3 4 5 6]
np.append 함수 사용:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
concatenated_array = np.append(arr1, arr2)
print(concatenated_array) # 출력: [1 2 3 4 5 6]
np.stack 함수 사용:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
concatenated_array = np.stack((arr1, arr2), axis=0)
print(concatenated_array) # 출력: [[1 2 3]
[4 5 6]]
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
concatenated_array = np.dstack((arr1, arr2))
print(concatenated_array) # 출력: [[[1 5]
[2 6]]
[[3 7]
[4 8]]]
- 위에 제시된 대체 방법은 특정 상황에서 유용할 수 있지만,
np.concatenate
함수만큼 유연하거나 효율적이지 않을 수 있습니다. - NumPy 배열을 연결하는 가장 좋은 방법은 연결하려는 배열의 크기, 차원 및 원하는 결과에 따라 다릅니다.
이 외에도 NumPy 배열을 연결하는 데 도움이 되는 다양한 라이브러리와 도구가 있습니다.
- 특정 작업에 맞는 도구를 찾는 것이 중요합니다.
python numpy