将文本文件转换为矩阵
Convert a text file to a matrix
我一直在尝试将这段时间的数据从文件转换成矩阵。
101 Bob 10
104 Lob 5
103 Dob 9
109 Dobby 4
我能做的最好的事情就是将它转换成这样的列表。
['101 Bob 10', '104 Lob 5', '103 Dob 9', '109 Dobby 4']
问题是如何将文件转置为矩阵?
Python 的原生类型中没有矩阵这样的东西,因此评论。
要将文件读入二维 NumPy 数组,尝试
import numpy as np
data = np.genfromtxt('filename', dtype=str)
print(data)
print(data.shape)
print(data[0, 1])
请注意,所有元素都是 str
s,因此您之后必须将数字转换为适当的 int
s(如果需要)。
也许您正在寻找这样的解决方案。
首先打开文件并读取所有行(“with”将处理关闭文件,选项 'r' 确保文件以只读方式打开)。
with open('myfile.txt', 'r') as f:
lines = f.readlines()
在此阶段,所有文件内容都在内存中,由列表中的 lines 变量保存,列表中的每一项都是文件中的一行。
然后取每一行并使用 spaces 作为分隔符将其拆分。
split 函数 returns 一个字符串列表,例如['101', 'Bob', '10'].拆分后的结果需要放在一个外链表中来模拟一个矩阵。有两种方法可以做到这一点:
output = []
for line in lines
output.append(line.split(' ')
或者,您可以使用压缩形式替换上面的所有三行。
output = [item.split(' ') for item in input]
请注意,按照编码,整个文件必须适合内存,仅当 space 可用作分隔符时,行拆分才有效。
print(output)
print(output[0][1])
第二张图展示了如何模拟 矩阵。结果是:
[['101', 'Bob', '10'], ['104', 'Lob', '5'], ['103', 'Dob', '9'], ['109', 'Dobby', '4']]
Bob
我一直在尝试将这段时间的数据从文件转换成矩阵。
101 Bob 10
104 Lob 5
103 Dob 9
109 Dobby 4
我能做的最好的事情就是将它转换成这样的列表。
['101 Bob 10', '104 Lob 5', '103 Dob 9', '109 Dobby 4']
问题是如何将文件转置为矩阵?
Python 的原生类型中没有矩阵这样的东西,因此评论。
要将文件读入二维 NumPy 数组,尝试
import numpy as np
data = np.genfromtxt('filename', dtype=str)
print(data)
print(data.shape)
print(data[0, 1])
请注意,所有元素都是 str
s,因此您之后必须将数字转换为适当的 int
s(如果需要)。
也许您正在寻找这样的解决方案。
首先打开文件并读取所有行(“with”将处理关闭文件,选项 'r' 确保文件以只读方式打开)。
with open('myfile.txt', 'r') as f:
lines = f.readlines()
在此阶段,所有文件内容都在内存中,由列表中的 lines 变量保存,列表中的每一项都是文件中的一行。
然后取每一行并使用 spaces 作为分隔符将其拆分。 split 函数 returns 一个字符串列表,例如['101', 'Bob', '10'].拆分后的结果需要放在一个外链表中来模拟一个矩阵。有两种方法可以做到这一点:
output = []
for line in lines
output.append(line.split(' ')
或者,您可以使用压缩形式替换上面的所有三行。
output = [item.split(' ') for item in input]
请注意,按照编码,整个文件必须适合内存,仅当 space 可用作分隔符时,行拆分才有效。
print(output)
print(output[0][1])
第二张图展示了如何模拟 矩阵。结果是:
[['101', 'Bob', '10'], ['104', 'Lob', '5'], ['103', 'Dob', '9'], ['109', 'Dobby', '4']]
Bob