Чтение матрицы из текстового файла и сохранение ее в массиве - PullRequest
0 голосов
/ 03 июля 2018

Defintion

У меня есть следующая матрица, хранящаяся в текстовом файле:

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

Я хочу прочитать эту матрицу из текстовой плитки и сохранить ее в 2D-массиве, используя 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)

Задача

В приведенном выше коде матрица печатается в одном формате. Можно ли сохранить матрицу в двухмерном порядке, как определено в матрице выше?

1 Ответ

0 голосов
/ 03 июля 2018

Использование 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]])
...