Python 读取非分隔整数
我有一个格式为的文件Python 读取非分隔整数,python,numpy,pandas,Python,Numpy,Pandas,我有一个格式为的文件 11100000011111111 11100000011111111 11100000011111111 每个元素为1位。有没有一个好的方法来创建一个矩阵使用这个作为输入?目前,我将每一行作为字符串读取,将其转换为一个列表,然后将其存储在一个numpy数组中 array = [] i_file = open(array_file, 'rb') for line in i_file: data = list(line.strip().replace('?', '3
11100000011111111
11100000011111111
11100000011111111
每个元素为1位。有没有一个好的方法来创建一个矩阵使用这个作为输入?目前,我将每一行作为字符串读取,将其转换为一个列表,然后将其存储在一个numpy数组中
array = []
i_file = open(array_file, 'rb')
for line in i_file:
data = list(line.strip().replace('?', '3'))
array.append(data)
i_file.close()
array = np.array(array, dtype=np.int8)
提前感谢。
read\u fwf
可用于读取固定宽度的文件。下面是在这种情况下如何使用它的示例-colspecs
是列规范的列表,作为[打开,关闭]列位置的元组
In [55]: data = StringIO("""11100000011111111
...: 11100000011111111
...: 11100000011111111""")
In [58]: colspecs = [(n, n+1) for n in range(17)]
In [58]: df = pd.read_fwf(data, colspecs=colspecs, names=range(17))
In [58]: df
Out[58]:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1
2 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1
抱歉,我想知道是否有某种方法可以使用pandas.read_csv()或类似的东西在数组中读取。我不确定文档中是否缺少可以让我对现有功能执行我想执行的操作的内容。谢谢!这正是我想要的