可以说我有一个数字的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

10-07 21:52