2013-07-02 10 views
1

numpy 배열에 대한 이전 학습의 연속입니다.
구조적 배열은 목록 요소에서 생성 된 후 값으로 채워집니다 (아래에 표시되지 않음).numpy 구조화 된 배열에 새 레코드 추가

>>> o = ['x','y','z'] 
>>> import numpy as np 
>>> b = np.zeros((len(o),), dtype=[(i,object) for i in o]) 
>>> b 
array([(0, 0, 0, 0, 0), (0, 0, 0, 0, 0), (0, 0, 0, 0, 0)], 
     dtype=[('x', '|O4'), ('y', '|O4'), ('z', '|O4')]) 

채워진 배열은 다음과 같습니다

x y z 
x 0 1 0 
y 1 0 1,5 
z 0 1,5 0 

가 1.How 우리는 위의 새로운 정점을 추가하는 방법은 무엇입니까?

d e  y 
d 0 '1,2' 0 
e '1,2' 0  '1' 
f 0 '1'  0 

예상 출력 (하십시오 정점 2.Once
이 추가 된, 구조화 된 배열 (:없는이 배열의 모든 정점이 새로운 주)에 다음과 같은 배열을 추가 할 수있는 가장 깨끗한 방법은 무엇인가 나와 곰) :

x y z d e f 
x 0 1 0 0 0 0 
y 1 0 1,5 0 1 0 
z 0 1,5 0 0 0 0 
d 0 0 0 0 1,2 0 
e 0 1 0 1,2 0 0 
f 0 0 0 0 1 0 

답변

0

python pandas에서 일하는 것 같습니다. 당신이 보여 데이터를 병합하는 방법에는 여러 가지가 있습니다

>>> import numpy as np 
>>> import pandas as pd 
>>> data=np.zeros((4,5)) 
>>> df=pd.DataFrame(data,columns=['x','y','z','a','b']) 
>>> df 
    x y z a b 
0 0 0 0 0 0 
1 0 0 0 0 0 
2 0 0 0 0 0 
3 0 0 0 0 0 
>>> df['c']=0 #Add a new column 
>>> df 
    x y z a b c 
0 0 0 0 0 0 0 
1 0 0 0 0 0 0 
2 0 0 0 0 0 0 
3 0 0 0 0 0 0 

>>> new_data=pd.DataFrame([['0','1,2','0'],['1,2','0','1'],['0','1','0']],columns=['d','e','y']) 
>>> new_data 
    d e y 
0 0 1,2 0 
1 1,2 0 1 
2 0 1 0 

>>> df.merge(new_data,how='outer') #Merge data 
    x y z a b c d e 
0 0 0 0 0 0 0 NaN NaN 
1 0 0 0 0 0 0 NaN NaN 
2 0 0 0 0 0 0 NaN NaN 
3 0 0 0 0 0 0 NaN NaN 
4 NaN 0 NaN NaN NaN NaN 0 1,2 
5 NaN 0 NaN NaN NaN NaN 0 1 
6 NaN 1 NaN NaN NaN NaN 1,2 0 

, 당신은 같이 할 수있는 끝 배열을 원하는 정확히 더 자세히 설명해 주 시겠어요?