从文本文件中读取矩阵并将其存储在数组中

时间:2018-07-03 19:25:19

标签: python matrix text-files binary-data

定义

我在文本文件中存储了以下矩阵:

 1 0 0 1 0 1 1
 0 1 0 1 1 1 0
 0 0 1 0 1 1 1

我想从文本磁贴中读取此矩阵,并使用python 2.7将其存储在2D数组中。

我尝试输入的代码

我尝试的代码如下:

f = open('Matrix.txt')
triplets=f.read().split()
for i in range(0,len(triplets)): triplets[i]=triplets[i].split(',')
A = np.array(triplets, dtype=np.uint8)

print(A)

问题

按目前的说法,上面的代码以一维方式打印矩阵。是否可以按上述矩阵中定义的2D方式保存矩阵?

1 个答案:

答案 0 :(得分:3)

使用np.loadtxt

A = np.loadtxt('filename.txt')

>>> A
array([[ 1.,  0.,  0.,  1.,  0.,  1.,  1.],
       [ 0.,  1.,  0.,  1.,  1.,  1.,  0.],
       [ 0.,  0.,  1.,  0.,  1.,  1.,  1.]])

或者,您可以按与您正在执行的操作类似的方式逐行阅读它(但这效率不高):

A = []
with open('filename.txt', 'r') as f:
    for line in f:
        A.append(list(map(int,line.split())))

>>> np.array(A)
array([[1, 0, 0, 1, 0, 1, 1],
       [0, 1, 0, 1, 1, 1, 0],
       [0, 0, 1, 0, 1, 1, 1]])