簡體   English   中英

將新記錄添加到numpy結構化數組

[英]Adding new records to a numpy structured array

這是對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.我們如何在上面添加新的頂點?
2.一旦添加了頂點,將以下數組添加到結構化數組的最干凈的過程是什么(注意:並非此數組中的所有頂點都是新的):

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

預期的輸出(請多多包涵):

    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

似乎是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

有很多方法可以合並顯示的數據,能否請您更詳細地解釋結尾數組的外觀?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM