Python 以两个单独的数组从文件中读取数据
我是python新手,正在尝试从文件加载数据。 我的文件如下所示:Python 以两个单独的数组从文件中读取数据,python,arrays,numpy,file,Python,Arrays,Numpy,File,我是python新手,正在尝试从文件加载数据。 我的文件如下所示: TION 13168375 NTHE 11234972 THER 10218035 THAT 8980536 OFTH 8132597 FTHE 8100836 THES 7717675 WITH 7627991 import pandas as pd df = pd.read_csv("Equadgrams.txt",sep=" ") 我想将这两列提取到单独的数组中。 到目前为止,我
TION 13168375
NTHE 11234972
THER 10218035
THAT 8980536
OFTH 8132597
FTHE 8100836
THES 7717675
WITH 7627991
import pandas as pd
df = pd.read_csv("Equadgrams.txt",sep=" ")
我想将这两列提取到单独的数组中。
到目前为止,我尝试的是:
import numpy as np
s=open("Equadgrams.txt", "r")
data = np.genfromtxt(s, dtype=[('mystring','S4'),('myint','i8')])
在loadtxt命令的文档中,看起来我可以将结果拆分为单独的数组,但这给了我错误
x,y = np.loadtxt(s, dtype=[('mystring','S4'),('myint','i8')])
Traceback (most recent call last):
File "<input>", line 3, in <module>
ValueError: too many values to unpack (expected 2)
x,y=np.loadtxt(s,dtype=[('mystring','S4'),('myint','i8'))
回溯(最近一次呼叫最后一次):
文件“”,第3行,在
ValueError:要解压缩的值太多(应为2个)
我还注意到一件事:
数据数组中的整数似乎没有问题,但字符串没有按预期读取。
我得到了第一个条目:b'TION'类型的类
我希望有人能帮我解决这个问题。也许你应该使用
pandas
,它是一个众所周知的python
库,可以处理像你现在这样的表格数据。
因此,首先使用pip
安装pandas
,如下所示:
pip install pandas
然后按如下方式加载文件:
TION 13168375
NTHE 11234972
THER 10218035
THAT 8980536
OFTH 8132597
FTHE 8100836
THES 7717675
WITH 7627991
import pandas as pd
df = pd.read_csv("Equadgrams.txt",sep=" ")
如果需要两个不同的阵列,可以使用以下方法:
s=打开(“filename.txt”、“r”)
lines=s.readlines()
strings=[line.split[''][0]表示行中的行]
ints=[line.split[''][1]表示行中的行]
s、 关闭()
我希望这是你想要的正确形式。否则,您必须在以后对其进行转换。您可以迭代文件中的每一行,并使用.split方法将值附加到x和y:
x = []
y = []
file = open("file.txt","r")
for line in file:
x.append(line.split(" ")[0])
y.append(line.split(" ")[1])
在
genfromtxt
中,使用U4'而不是'S4'(默认unicode与bytestring)
data['mystring']`和data['myint']
应该为您提供所需的数组。loadtxt
应该提供一个1d、2字段数组,就像genfromtxt
一样。显然,在第一个大维度上,您不能将其解包成两个变量loadtxt
有一个“unpack”参数,但我不确定它是否能与结构化数据类型一起工作(它只是“转置”输出)。