【问题标题】:Reading matrix from a text file and storing it in an array从文本文件中读取矩阵并将其存储在数组中
【发布时间】:2018-07-03 19:25:19
【问题描述】:

定义

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

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

我想从文本图块中读取此矩阵,并使用 python 2.7 将其存储在二维数组中。

我尝试的代码

我尝试的代码如下:

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)

问题

就目前而言,上面的代码是以一维方式打印矩阵。是否可以按照上面矩阵中的定义以二维方式保存矩阵?

【问题讨论】:

  • 给我们至少没有语法错误的代码。正如我在矩阵示例中看不到的那样,您如何按, 拆分?在 for 循环和缩进中缺少 :。可能的解决方案:列表列表可以解释为二维矩阵。

标签: python numpy matrix text-files binary-data


【解决方案1】:

使用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]])

【讨论】:

  • 非常感谢你!在所有在线解决方案中,您的解决方案是迄今为止最简单的 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
  • 2015-04-16
相关资源
最近更新 更多