gpt4 book ai didi

python - 从文本文件创建矩阵 - python

转载 作者:太空狗 更新时间:2023-10-30 02:03:39 24 4
gpt4 key购买 nike

我想从一个三列文件创建一个矩阵。我确信这是一件非常简单的事情,但我只是不明白需要如何完成。请温柔点,我是 python 的初学者。谢谢

输入文件的格式

A A 5 
A B 4
A C 3
B B 2
B C 1
C C 0

期望的输出——完整的矩阵

  A B C
A 5 4 3
B 4 2 1
C 3 1 0

或者 - 半矩阵

  A B C
A 5 4 3
B 2 1
C 0

我试过了,但正如我所说,我对 python 和编程非常陌生。

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

工作脚本 - 我的一个 friend 也帮助了我,所以如果有人对更简单的脚本感兴趣,请看这里。它不是最有效的,但效果很好。

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()

最佳答案

尝试:

import pandas as pd
import numpy as np

raw = []
with open('test.txt','r') as f:
for line in f:
raw.append(line.split())
data = pd.DataFrame(raw,columns = ['row','column','value'])
data_ind = data.set_index(['row','column']).unstack('column')
np.array(data_ind.values,dtype=float))

输出:

array([[ 5., 4., 3.],
[南,2.,1.],
[南, 南, 0.]])

关于python - 从文本文件创建矩阵 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30165819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com