Python 사용시 다차원 배열 또는 튜플을 많이 사용 하곤 합니다.

이렇게 다차원으로 구성된 배열의 일부 Column 만을 뽑아 내고 싶은 경우가 종종 있습니다. 

이런 경우에는 zip() 함수를 사용하면 편리 합니다 .

아래 코드는 그 예제이며 tuple 이나 list 에서 똑같이 동작 합니다. 

print "-"*30 + "Tuple" + "-"*30

Multidimensional_tuple=((1,2,3),(4,5,6),(7,8,9))
print Multidimensional_tuple

Col1, Col2, Col3 = zip(*Multidimensional_tuple)

print Col1
print Col2
print Col3

# -------------------------

print "-"*30 + "Array" + "-"*30
Multidimensional_array=[[1,2,3],[4,5,6],[7,8,9]]
print Multidimensional_array

Col1, Col2, Col3 = zip(*Multidimensional_array)

print Col1
print Col2
print Col3

 위 코드에 따른 결과는 아래와 같습니다. 


각각의 모든 column 이 아니라 특정 column 만 추출하고 싶다면 다음과 같이 안 쓰는 부분들을 _(underscore) 로 처리 하면 됩니다. 

아래 예는 2 번째 column 만 추출 하는 경우의 코드 입니다.

_, Col2, _ = zip(*Multidimensional_array)


다음과 같이 간단한 그래프를 하나 그리고 title 을 설정해 보자.

 

x=1:10;

plot(x)

title('X_Y') 

 

위 코드를 실행 시키면 아래와 같은 그래프가 나온다. 그래프에서 확인 할 수 있는 바와 같이 title XY 로 즉 underscore(_) 로 인해 Y 라는 텍스트가 아래 첨자로 된 것을 확인 할 수 있다.

 

 

 

underscore 로 인한 아래첨자 효과를 없애 주려면 underscore 앞에 \ escaping 하면 된다. 다음과 같이 코딩하면

 

title('X\_Y')

 

이런 결과가 나온다. 

 


그런데 이런 식으로 모든 underscore  escaping 을 하는 것도 귀찮은 경우에는 다음과 같이 underscore 와 같은 문자들을 Interpretering 하지 않도록 설정할 수 있다.

 

t=title('X_Y_A_B_C');

set(t,'Interpreter','none');  



+ Recent posts