<p>我想从一个三列文件创建一个矩阵。
我相信这是一件非常容易的事情,但我只是不明白该怎么做。请温柔一点,我是Python初学者。
谢谢你</p>
<p>输入文件的格式</p>
<pre><code>A A 5
A B 4
A C 3
B B 2
B C 1
C C 0
</code></pre>
<p>期望输出-完整矩阵</p>
<pre><code> A B C
A 5 4 3
B 4 2 1
C 3 1 0
</code></pre>
<p>或-半矩阵</p>
<pre><code> A B C
A 5 4 3
B 2 1
C 0
</code></pre>
<p>我试过这个,但正如我所说,我对python和编程非常陌生。</p>
<pre><code>import numpy as np
for line in file('test').readlines():
name1, name2, value = line.strip().split('\t')
a = np.matrix([[name1], [name2], [value]])
print a
</code></pre>
<p>工作脚本-我的一个朋友也帮了我,所以如果有人对一个更简单的脚本感兴趣,这里是。它不是最有效的,但工作得很好。</p>
<pre><code>data = {}
names = set([])
for line in file('test').readlines():
name1, name2, value = line.strip().split('\t')
data[(name1, name2)] = value
names.update([name1])
names = sorted(list(names))
print names
print data
output = open('out.txt', 'w')
output.write("\t%s\n" % ("\t".join(names)))
for nameA in names:
output.write("%s" % nameA)
for nameB in names:
key = (nameA, nameB)
if key in data:
output.write("\t%s" % data[(nameA, nameB)])
else:
output.write("\t")
output.write("\n")
output.close()
</code></pre>