可以说我有一个数字的numpy数组。就像43,000X5000。例如:
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矩阵转换为pandas数据帧,然后添加标头和索引。还有其他建议。
最佳答案
您可以使用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