我可以在python中将字典用作矩阵吗?

2024-09-30 02:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是python的初学者。最近我正在学习使用词典,但我的知识还很有限。我突然想到了这个想法,但我不确定它在python中是否可行。在

我有三份文件,看起来像这样:

DOCNO= 5

nanofluids  :0.6841

introduction:0.2525

module      :0.0000

to          :0.0000

learning    :0.0000





DOCID= 1

nanofluids  :0.0000

introduction:0.2372

module      :0.0000

to          :0.0000

learning    :0.1185



DOCNO= 12

nanofluids  :0.0000

introduction:0.0000

module      :0.5647

to          :0.0000

learning    :0.2084

我知道如何在字典中存储单个值。例如:

^{pr2}$

但我现在要做的是存储一个具有相应文档编号的数组,它看起来像:


import array

data={ 5:array([0.6841,0.2525,0.0000.0000,0.0000]), 1:array([0.0000,0.2372,0.0000,0.0000,0.1185]), 12:array([0.0000,0.0000,0.5647,0.0000,0.2084])} 

*我的python v2.6.5似乎不允许我这样做。*


如果假设上面的操作是可行的,我想执行点积或矩阵积来找出文档对之间的相似性。我的想法是将数组排列成3x5矩阵,然后乘以它的转置,即5x3。这将返回一个3x3矩阵,它告诉我两个文档之间的关系。例如:

[ 5:[0.6841,0.2525,0.0000,0.0000,0.0000],

1:[0.0000, 0.2372,0.0000,0.0000,0.1185],

12:[0.0000,0.0000,0.5647,0.0000,0.2084] ]

再乘以它的转置(我不知道怎么做),结果是3x3矩阵,对应于“DOCNO”和“DOCNO”。在

底线是我需要能够找回文件号。例如(5,1)显示了文档5和1之间的关系。Or(1,12)表示文件1和12之间的关系。我不确定这在python中是否可行,但是其他类似的解决方案也会得到赞赏。谢谢你的时间。在


Tags: 文件to文档关系矩阵数组array词典
2条回答

首先,您应该看看Python documentation for arrays。示例代码有三处错误:

  • 您已经导入了数组模块,但没有导入数组类。试试这个:

    from array import array

  • 您的列表中有0.0000.0000作为浮点数。

  • array接受两个参数:typecode和初始化值。将您的array([...])调用更改为array('f', [...])调用,它应该可以工作。

但是说实话,Python没有很多内置的基本工具(您可以自己编写)。如果你在做矩阵代数,你应该使用NumPy。在

它可以处理arrays和{a4},以及所有相关的转换。在

要修复数据分配,请尝试以下操作:

from array import array

data={ 5:array('d',[0.6841,0.2525,0.0000,0.0000,0.0000]), 1:array('d',[0.0000,0.2372,0.0000,0.0000,0.1185]), 12:array('d',[0.0000,0.0000,0.5647,0.0000,0.2084])}

不管怎样,剩下的计算我都会用NumPy。在

相关问题 更多 >

    热门问题