在 python 中进行全矩阵输出

make a full matrix output in python

我有一个 236 x 97 维的矩阵。当我在 Python 中打印矩阵时,它的输出不完整,矩阵中间有 .......

我尝试将矩阵写入测试文件,但结果完全一样。 我无法 post 截图,因为我的声誉不够,如果我选择其他标记选项,将无法正确显示。 谁能解决这个问题?


 def build(self):
    self.keys = [k for k in self.wdict.keys() if len(self.wdict[k]) > 1]
    self.keys.sort()
    self.A = zeros([len(self.keys), self.dcount])
    for i, k in enumerate(self.keys):
        for d in self.wdict[k]:
            self.A[i,d] += 1

 def printA(self):
    outprint = open('outputprint.txt','w')
    print 'Here is the weighted matrix'
    print self.A
    outprint.write('%s' % self.A)
    outprint.close()
    print self.A.shape

问题是您使用以下行专门将 str 表示保存到文件中:

outprint.write('%s' % self.A)

显式将其转换为字符串 (%s) --- 生成您所看到的删节版本。

有很多方法可以将整个矩阵写入输出,一个简单的选择是使用 numpy.savetxt,例如:

import numpy
numpy.savetxt('outputprint.txt', self.A)

假设您的矩阵是一个 numpy 数组,您可以使用 matrix.tofile(<options>) 将数组写入文件 here:

#!/usr/bin/env python
# coding: utf-8

import numpy as np

# create a matrix of random numbers and desired dimension
a = np.random.rand(236, 97)

# write matrix to file
a.tofile('output.txt', sep = ' ')