我是python的新手,我尝试将此文件读入二维数组。
xxxxxxxxxxxxxxxxxxxx
x x
x xxx x
x x xxxxx x
x s x x
x x x xxxxxxx
x xx xxxxx x
x x g x
x x x
xxxxxxxxxxxxxxxxxxxx
我尝试用numpy库来做这件事,但它似乎没有用。还有其他办法吗?
答案 0 :(得分:0)
您没有指定要创建的数组类型。
这里有一些演示采用低级方法(假设更多)和更高级别的方法,遵循Jeronimo的评论。
低级方法使用ASCII定义(可能依赖于创建此文件的编辑器/程序)。
ASCII:
代码:
import numpy as np
np.set_printoptions(linewidth=120)
""" Hacky low-level approach """
with open('input_file.txt', 'rb') as f:
mat = np.fromfile(f, dtype=np.uint8)
col_len = np.where(mat != 120)[0][0] # assumes:
# - constant row-len
# - full # first line
mat = mat[np.logical_and(mat != 10, mat != 13)].reshape(-1,col_len)
print(mat)
print(mat.view('c'))
""" Recommended """
with open('input_file.txt', 'r') as f:
mat = np.array([list(row[:-1]) for row in f.readlines()])
# -1 for removing new-line
print(mat)
输出:
[[120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120]
[120 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 120]
[120 32 32 32 32 32 32 32 120 120 120 32 32 32 32 32 32 32 32 120]
[120 32 32 32 32 32 32 32 120 32 120 120 120 120 120 32 32 32 32 120]
[120 32 32 32 115 32 32 32 32 32 120 32 32 32 32 32 32 32 32 120]
[120 32 32 32 32 32 32 32 120 32 120 32 32 120 120 120 120 120 120 120]
[120 32 32 120 120 32 120 120 120 120 120 32 32 32 32 32 32 32 32 120]
[120 32 32 32 32 32 32 120 32 32 32 32 32 32 103 32 32 32 32 120]
[120 32 32 32 32 32 32 120 32 32 32 32 32 32 32 32 32 32 32 120]
[120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120]]
[[b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x']
[b'x' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b'x']
[b'x' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b'x' b'x' b'x' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b'x']
[b'x' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b'x' b' ' b'x' b'x' b'x' b'x' b'x' b' ' b' ' b' ' b' ' b'x']
[b'x' b' ' b' ' b' ' b's' b' ' b' ' b' ' b' ' b' ' b'x' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b'x']
[b'x' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b'x' b' ' b'x' b' ' b' ' b'x' b'x' b'x' b'x' b'x' b'x' b'x']
[b'x' b' ' b' ' b'x' b'x' b' ' b'x' b'x' b'x' b'x' b'x' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b'x']
[b'x' b' ' b' ' b' ' b' ' b' ' b' ' b'x' b' ' b' ' b' ' b' ' b' ' b' ' b'g' b' ' b' ' b' ' b' ' b'x']
[b'x' b' ' b' ' b' ' b' ' b' ' b' ' b'x' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b' ' b'x']
[b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x' b'x']]
[['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
['x' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x']
['x' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x' 'x' 'x' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x']
['x' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x' ' ' 'x' 'x' 'x' 'x' 'x' ' ' ' ' ' ' ' ' 'x']
['x' ' ' ' ' ' ' 's' ' ' ' ' ' ' ' ' ' ' 'x' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x']
['x' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x' ' ' 'x' ' ' ' ' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
['x' ' ' ' ' 'x' 'x' ' ' 'x' 'x' 'x' 'x' 'x' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x']
['x' ' ' ' ' ' ' ' ' ' ' ' ' 'x' ' ' ' ' ' ' ' ' ' ' ' ' 'g' ' ' ' ' ' ' ' ' 'x']
['x' ' ' ' ' ' ' ' ' ' ' ' ' 'x' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'x']
['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']]