Naf*_*ees 0 python arrays numpy matrix text-files
我是编程和python的新手.所以我面临很多问题.我需要一些帮助来阅读python中的文本文件.
在我的输入文本文件中,我有两个带有一些字符串的数据数组.
HEAD1
1 0 0
2 3 4
3 3 0
END1
HEAD2
2 3 4
8 7 5
1 0 7
END2
Run Code Online (Sandbox Code Playgroud)
现在我希望python读取此文件并将这两个数组存储为2个数组或2个矩阵.数组大小不固定,可以是任何大小.Python必须按头和尾决定大小.我该怎么做?
我试过numpy.loadtxt和numpy.getfromtxt.In numpy.getfromtxt,我得到了字符串的错误.没有字符串,它将这两个数组组成1个数组.
这是试图做的,但不能做到....
import math as m
import numpy as np
file_name=input("Input file name(with extension):")
file=open(file_name,'r')
line=file.readline()
while line!= '':
print(line,end='')
line=file.readline()
##table=np.loadtxt(file_name)
##print('table=')
##print(table)
##
table2=np.genfromtxt(file_name,comments='#')
print('table2=')
print(table2)
Run Code Online (Sandbox Code Playgroud)
由于这个'HEAD'和'END'的格式不知道numpy.loadtxt,我想你必须自己"大块"这些数组:
import numpy as np
def tokenizer(fname):
with open(fname) as f:
chunk = []
for line in f:
if 'HEAD'in line:
continue
if 'END' in line:
yield chunk
chunk = []
continue
chunk.append(line)
arrays = [np.loadtxt(A) for A in tokenizer('yourfile.txt')]
Run Code Online (Sandbox Code Playgroud)