2015-10-02 54 views
0

可以说我有一个数字的numpy数组。这就像43,000X5000。对于前:添加字符串标题和索引到一个numpy数组

array([[-0. , 0.02, 0.03, 0.05, 0.06, 0.05], 
     [ 0.02, 0. , 0.02, 0.05, 0.04, 0.04], 
     [ 0.03, 0.02, 0. , 0.06, 0.05, 0.05], 
     [ 0.05, 0.05, 0.06, 0. , 0.02, 0.01], 
     [ 0.06, 0.04, 0.05, 0.02, -0. , 0.01], 
     [ 0.05, 0.04, 0.05, 0.01, 0.01, -0. ]]) 

我想打印结果,使得它像这些价值观,并具有头既作为列标题和指标交叉表。基本上我想要做的是我有一个文本文件的距离矩阵。我想要显示一个表格,其中每对文本文档都有这些距离,并在列和索引上包含文本文档名称。

类似下面:

Austen_Emma Austen_Pride Austen_Sense CBronte_Jane CBronte_Professor CBronte_Villette 
Austen_Emma -0.00 0.02 0.03 0.05 0.06 0.05 
Austen_Pride 0.02 0.00 0.02 0.05 0.04 0.04 
Austen_Sense 0.03 0.02 0.00 0.06 0.05 0.05 
CBronte_Jane 0.05 0.05 0.06 0.00 0.02 0.01 
CBronte_Professor 0.06 0.04 0.05 0.02 -0.00 0.01 
CBronte_Villette 0.05 0.04 0.05 0.01 0.01 -0.00 

我想的numpy的矩阵转换为大熊猫数据帧,然后添加报头和索引。任何其他建议。

+0

'np.savetxt'让你定义一个头。但要添加字符串列,您必须定义一个结构化数组 - 一个包含7个字段,一个字符串和6个浮点数。 – hpaulj

回答

1

你可以使用如下的Pandas做:

import numpy as np 
import pandas as pd 

pd.set_option('display.width', 150) 
header = ['Austen_Emma', 'Austen_Pride', 'Austen_Sense', 'CBronte_Jane', 'CBronte_Professor', 'CBronte_Villette'] 

a = np.array([[-0. , 0.02, 0.03, 0.05, 0.06, 0.05], 
     [ 0.02, 0. , 0.02, 0.05, 0.04, 0.04], 
     [ 0.03, 0.02, 0. , 0.06, 0.05, 0.05], 
     [ 0.05, 0.05, 0.06, 0. , 0.02, 0.01], 
     [ 0.06, 0.04, 0.05, 0.02, -0. , 0.01], 
     [ 0.05, 0.04, 0.05, 0.01, 0.01, -0. ]]) 

frame = pd.DataFrame(a, index=header, columns=header) 
print frame 

这会为您提供以下的输出:

    Austen_Emma Austen_Pride Austen_Sense CBronte_Jane CBronte_Professor CBronte_Villette 
Austen_Emma    -0.00   0.02   0.03   0.05    0.06    0.05 
Austen_Pride    0.02   0.00   0.02   0.05    0.04    0.04 
Austen_Sense    0.03   0.02   0.00   0.06    0.05    0.05 
CBronte_Jane    0.05   0.05   0.06   0.00    0.02    0.01 
CBronte_Professor   0.06   0.04   0.05   0.02    -0.00    0.01 
CBronte_Villette   0.05   0.04   0.05   0.01    0.01    -0.00