4.10.8 초고수의 단축키: np.c_[]와 np.column_stack()
실무에서 데이터 분석가들의 코드를 보면 column_stack 대신 정체불명의 np.c_ 라는 문법이 자주 등장합니다.
이것은 과연 무엇일까요?
[실전 꿀팁]: 마법의 단축 객체 np.c_ (Column-wise 기둥 세우기)
np.c_ 객체(함수가 아님에 주의)는 np.column_stack()과 완전히 같이 작동하면서도 타이핑을 획기적으로 줄여주는 단축키입니다.
소괄호 () 대신 대괄호 []를 쓴다는 점이 가장 큰 특징이며, 여기서 C는 당연히 Column(기둥)을 뜻합니다.
[1단계] 1차원 배열 기둥 세우기 (대괄호 문법에 주의!)
모양이 (3, ) 인 1차원 배열 두 개를 np.c_를 이용해 세로 기둥으로 세워 붙여봅시다.
소괄호가 아닌 대괄호를 쓴다는 것을 잊지 마세요.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 대괄호를 사용합니다!
result_c = np.c_[a, b]
# column_stack 함수와 똑같습니다.
result_col = np.column_stack((a, b))
print("✨ np.c_ 결과:\n", result_c)
print("\n✨ column_stack 결과:\n", result_col)
[실행 결과]
✨ np.c_ 결과:
[[1 4]
[2 5]
[3 6]]
✨ column_stack 결과:
[[1 4]
[2 5]
[3 6]]
[2단계] 일반 2차원 배열의 수평 결합
이미 2차원인 배열들을 집어넣으면 hstack이나 column_stack처럼 가로로 이어 붙이는 역할을 똑같이 수행합니다.
x = np.array([[1, 2, 3]])
y = np.array([[4, 5, 6]])
# 수평 결합
result_c_2d = np.c_[x, y]
print("🧩 2차원 결합 결과:\n", result_c_2d)
[실행 결과]
🧩 2차원 결합 결과:
[[1 2 3 4 5 6]]
[3단계] np.c_ 만의 초능력: 스칼라값(단일 숫자) 자동 팽창
column_stack 기능 외에 np.c_가 파이썬 고수들에게 사랑받는 결정적 이유가 있습니다.
바로 배열 사이에 단순한 스칼라(숫자 하나)를 넣어도, 알아서 주변 배열의 사이즈(행 개수)에 맞게 팽창(Broadcast)시켜 꽉꽉 채워준다는 점입니다.
# 배열 x와 y 사이에 10과 20이라는 단일 숫자를 그냥 던져 넣습니다!
# x의 행이 1개이므로, 10과 20도 알아서 [10], [20] 으로 취급됩니다.
super_c = np.c_[x, 10, 20, y]
print("🚀 스칼라 자동 팽창 결과:\n", super_c)
[실행 결과]
🚀 스칼라 자동 팽창 결과:
[[ 1 2 3 10 20 4 5 6]]
[실무 꿀팁 요약] 남의 코드를 읽다가
np.c_가 나오면 당황하지 마세요. 그저 “아, 귀찮아서column_stack을 줄여 썼구나!” 하고 넘어가면 됩니다. 그리고 단일 숫자들을 슬쩍슬쩍 끼워 넣을 때 아주 유용하다는 사실도 기억해 두세요!
서브목차