안녕하세요! 데코입니다!
오늘은 파이썬에서 많이 다루는 numpy를 이용해서
배열을 가로 세로로 쌓는 방법에 대하여 포스팅하려고 합니다!
np.hstack()과 np.vstack() 함수는 NumPy 라이브러리에서 제공하는 배열을 쌓는 함수입니다.
1. np.hstack()
np.hstack() 함수는 주어진 배열들을 수평(가로)으로 합치는 기능을 해요!
이 함수는 1차원 배열을 수평(가로)으로 쌓을 때 많이 사용됩니다.
아래 코드는 1차원 배열인 arr1과 arr2를 수평(가로)으로 쌓아 쌓는 코드예요!
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# np.hstack()을 활용한 배열 가로 결합
arr3 = np.hstack((arr1, arr2))
arr1은 [1, 2, 3], arr2은 [4, 5, 6] 이므로 수평(가로)으로 쌓은 결과는 [1, 2, 3, 4, 5, 6]입니다!
위 예시만 본다면 두 개의 배열만 가로(가로)로 쌓는 것으로 보일 수 있어요!
np.hstack() 안에 두 개 이상의 배열을 넣어도 됩니다!
import numpy as np
arr1 = np.array([1, 2])
arr2 = np.array([3, 4])
arr3 = np.array([5, 6])
arr4 = np.array([7, 8])
# np.hstack()을 활용한 배열 가로 결합
arr = np.hstack((arr1, arr2, arr3, arr4))
위 코드에서 여러 배열을 합친 arr의 결과는
[1, 2, 3, 4, 5, 6, 7, 8]으로 나타나게 됩니다!
2. np.vstack()
np.vstack() 함수는 주어진 배열들을 수직(세로)으로 합치는 기능을 해요!
이 함수는 2차원 배열을 수직(세로)으로 쌓을 때 많이 사용됩니다.
import numpy as np
arr4 = np.array([[1, 2], [3, 4]])
arr5 = np.array([[5, 6], [7, 8]])
# np.vstack()을 활용한 배열 가로 결합
arr6 = np.vstack((arr1, arr2))
arr4은 [[1, 2], [3, 4]], arr2은 [[5, 6], [7, 8]] 이므로 수직(세로)으로 쌓은 결과는 [[1, 2], [3, 4], [5, 6], [7, 8]]입니다!
np.vstack과 마찬가지로 np.hstack() 안에 두 개 이상의 배열을 넣어도 됩니다!
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
arr3 = np.array([[1, 1], [2, 2]])
arr4 = np.array([[3, 3], [4, 4]])
# np.vstack()을 활용한 배열 가로 결합
arr = np.vstack((arr1, arr2, arr3, arr4))
위 코드에서 여러 배열을 합친 arr의 결과는
[[1, 2], [3, 4], [5, 6], [7, 8], [1, 1], [2, 2], [3, 3], [4, 4]]으로 나타나게 됩니다!
이렇게 np.hstack()와 np.vstack() 함수를 적절히 사용하면
배열 연산을 간편하게 할 수 있어요!
제가 np.vstack() 활용한 코드를 보여드릴게요!
어운 코드는 절대 아니지만, y=x^2의 그래프에 해당하는 값을 만들 때 np.vstack()를 이용했어요!
# 데이터 생성
def get_data(n_samples):
x = np.linspace(-5, 5, n_samples)
y = x**2
return np.vstack([x, y]).T
data = get_data(200)
# data 그래프
plt.scatter(data[:, 0], data[:, 1])
plt.show()
생성한 그래프는 아래와 같이 나오게 됩니다!
(조만간 이 데이터를 이용해서 GAN 모델을 적용하는 포스팅도 작성해 볼게요!)
이 외에도 배열 데이터 다루면 np.hstack()와 np.vstack() 함수를 활용하게 될 거예요!
어려운 내용 아니니까 잘 익히셔서 배열 데이터도 잘 다루게 되시면 좋겠네요!
이렇게 오늘은 numpy를 배열 쌓는 방법과 제가 활용한 예시까지 보여드렸습니다!
배열을 가로로 쌓는 방법 - np.hstack()
배열을 세로로 쌓는 방법 - np.vstack()
설명이 어려운 부분 혹은 잘 이해가 안 가는 부분
그리고 더 궁금한 내용이 있다면
언제든지 댓글로 남겨주세요!
빠르게 궁금증을 해결해드릴게요!
공감과 댓글은 큰 힘이 됩니다!
오늘도 블로그 방문해 주시고
포스팅 읽어주셔서 감사합니다!
다들 오류 없는 파이썬 코딩 해보아요! :)
'Data Science > Analysis Study' 카테고리의 다른 글
[python/datetime] 기준이 되는 일자/날짜 구하기(오늘, 어제, 1일 전, 2일 전, 3일 전, 1달 전) (46) | 2023.12.16 |
---|