基于按行读取的文件快速构建(稀疏)矩阵

DNS TIAN 70℃ 0评论

老博客的文章,迁移过来

在涉及机器学习的一般问题中,常常需要构建关系矩阵。有时数据集是按行存储的,例如:

此时我希望将以上数据中的IP地址作为行,域名作为列,构建关系矩阵,以方便接下来的SVD分解、聚类等操作。

代码如下:

这里用到了numpy.in1d函数。该函数的参数如下:

ar1代表输入的序列,ar2代表比对的序列。对于ar1中的每一个元素,如果它在ar2中,则为True,否则为False。

例如:

在本例中,先统计所有的域名作为一个列表,设为n。即关系矩阵共有n维。这n个域名组成的列表作为numpy.in1d中的ar1参数。再将文件中每一行的的域名列表作为ar2参数。这样就可以构建关系矩阵了。

如果要创建稀疏矩阵,最后一行可以这么写:

转载请注明:老田博客 » 基于按行读取的文件快速构建(稀疏)矩阵

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址