我的矩阵如下..
31348 439352 6077 4619722 60825
31348 1 0.304 0.126 0.12 0.162
439352 0.304 1 0.101 0.095 0.316
6077 0.126 0.101 1 0.473 0.219
4619722 0.12 0.095 0.473 1 0.256
60825 0.162 0.316 0.219 0.256 1
现在我必须编写python脚本来提取具有> 0.2的对 结果应如下
439352, 31348 0.304
60825, 439352 0.316
.....
任何人都可以告诉我该怎么做..
提前致谢
NI
答案 0 :(得分:1)
mylist = []
with open('test.csv') as f:
keys = f.readline()
keys = keys.split()
for line in f:
a = line.split()
mylist.append(a[1:])
for idx1, item in enumerate(mylist):
for idx2, number in enumerate(item):
if float(number) > 0.2:
print "%7s, %7s --> %7s" %(keys[idx1], keys[idx2], number)
产地:
31348, 31348 --> 1
31348, 439352 --> 0.304
439352, 31348 --> 0.304
439352, 439352 --> 1
439352, 60825 --> 0.316
6077, 6077 --> 1
6077, 4619722 --> 0.473
6077, 60825 --> 0.219
4619722, 6077 --> 0.473
4619722, 4619722 --> 1
4619722, 60825 --> 0.256
60825, 439352 --> 0.316
60825, 6077 --> 0.219
60825, 4619722 --> 0.256
60825, 60825 --> 1
此代码表示矩阵的x和y索引是相同的(如您的示例中所示)。否则,您需要准备两个不同的密钥列表。
注意:我的test.csv文件只是一个文本文件,我在其中复制粘贴了您的矩阵(实际上它不是.csv文件)。如果您使用逗号分隔值,则应相应地修改拆分方法。