NumPy를 사용하여 두 개의 일차원 배열을 연결하는 방법
NumPy를 사용하여 두 개의 일차원 배열을 연결하는 방법
np.concatenate() 함수 사용
두 개의 일차원 배열을 연결하는 가장 일반적인 방법은 np.concatenate()
함수를 사용하는 것입니다. 이 함수는 연결할 배열을 포함하는 튜플 또는 리스트를 첫 번째 인수로, 연결 축을 지정하는 정수형 인자를 두 번째 인수로 받습니다.
예를 들어, 다음 코드는 arr1
과 arr2
라는 두 개의 일차원 배열을 연결하여 새로운 배열 arr3
를 만듭니다.
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = np.concatenate((arr1, arr2))
print(arr3) # 출력: [1 2 3 4 5 6]
기본적으로 np.concatenate()
는 첫 번째 차원(행)을 따라 배열을 연결합니다. 연결 축을 변경하려면 axis
인수를 사용할 수 있습니다. 예를 들어, 다음 코드는 arr1
을 arr2
의 열 아래에 연결합니다.
arr3 = np.concatenate((arr1, arr2), axis=1)
print(arr3) # 출력: [[1 4]
[2 5]
[3 6]]
np.vstack() 및 np.hstack() 함수 사용
특히 두 개의 배열을 수직 또는 수평으로 연결하려는 경우 np.vstack()
및 np.hstack()
함수를 사용하는 것이 더 편리할 수 있습니다.
np.vstack()
는 배열을 수직으로 (행 방향으로) 연결합니다. 예를 들어:
arr3 = np.vstack((arr1, arr2))
print(arr3) # 출력: [[1 2 3]
[4 5 6]]
arr3 = np.hstack((arr1, arr2))
print(arr3) # 출력: [1 2 3 4 5 6]
주의 사항
- 연결하려는 배열의 차원이 서로 호환되어야 합니다. 즉, 연결 축을 제외한 모든 차원의 크기가 동일해야 합니다.
np.concatenate()
함수는 새 배열을 만듭니다. 원본 배열은 변경되지 않습니다.
참고 자료
NumPy를 사용하여 두 개의 일차원 배열을 연결하는 방법: 예제 코드
np.concatenate() 함수 사용
import numpy as np
# 배열 생성
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 배열 연결 (행 방향)
arr3 = np.concatenate((arr1, arr2))
print("행 방향 연결:", arr3)
# 배열 연결 (열 방향)
arr4 = np.concatenate((arr1, arr2), axis=1)
print("열 방향 연결:", arr4)
출력:
행 방향 연결: [1 2 3 4 5 6]
열 방향 연결: [[1 4]
[2 5]
[3 6]]
np.vstack() 및 np.hstack() 함수 사용
import numpy as np
# 배열 생성
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 배열 연결 (수직 방향)
arr3 = np.vstack((arr1, arr2))
print("수직 방향 연결 (np.vstack):", arr3)
# 배열 연결 (수평 방향)
arr4 = np.hstack((arr1, arr2))
print("수평 방향 연결 (np.hstack):", arr4)
수직 방향 연결 (np.vstack): [[1 2 3]
[4 5 6]]
수평 방향 연결 (np.hstack): [1 2 3 4 5 6]
다른 축을 따라 연결
import numpy as np
# 배열 생성
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 배열 연결 (3번째 차원으로 연결)
arr3 = np.concatenate((arr1[:, np.newaxis], arr2[:, np.newaxis]), axis=2)
print("3번째 차원으로 연결:", arr3)
3번째 차원으로 연결: [[[1] [4]]
[[2] [5]]
[[3] [6]]]
이 코드는 np.newaxis
를 사용하여 각 배열을 새로운 차원으로 삽입하여 3번째 차원을 따라 연결합니다.
NumPy를 사용하여 두 개의 일차원 배열을 연결하는 대체 방법
리스트 및 슬라이싱 사용
간단한 경우, 리스트와 슬라이싱을 사용하여 두 개의 배열을 연결할 수 있습니다. 예를 들어:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = list(arr1) + list(arr2)
arr3 = np.array(arr3)
print(arr3) # 출력: [1 2 3 4 5 6]
위 코드는 list()
함수를 사용하여 각 배열을 리스트로 변환하고, +
연산자를 사용하여 연결한 다음, np.array()
함수를 사용하여 다시 NumPy 배열로 변환합니다.
np.append() 함수 사용
np.append()
함수는 기존 배열에 새 항목을 추가하는 데 사용될 수 있으며, 두 개의 배열을 연결하는 데에도 사용할 수 있습니다. 예를 들어:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = np.append(arr1, arr2)
print(arr3) # 출력: [1 2 3 4 5 6]
루프 사용
마지막으로, 루프를 사용하여 두 개의 배열을 요소별로 연결할 수 있습니다. 예를 들어:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = np.empty(len(arr1) + len(arr2))
i = 0
for element in arr1:
arr3[i] = element
i += 1
for element in arr2:
arr3[i] = element
i += 1
print(arr3) # 출력: [1 2 3 4 5 6]
이 방법은 다소 느리고 비효율적이지만, 특정 상황에서 유용할 수 있습니다.
선택 가이드
np.concatenate()
,np.vstack()
,np.hstack()
함수는 일반적으로 배열 연결을 위한 가장 빠르고 효율적인 방법입니다.- 리스트 및 슬라이싱을 사용하는 방법은 간단한 경우에 적합합니다.
python arrays numpy