from numpy import *
f = open('matrix.txt', 'r')
x = []
for line in f.readlines():
y = [value for value in line.split()]
x.append(y)
f.close()
x = map(int, x)
a = array([x])
基本上,我的代码是打开文本文件并将其放入列表x中。然后我将x中的值更改为整数并将其放在数组a中。有更快的方法吗?顺便说一句,我的代码不起作用。
答案 0 :(得分:1)
如果使用np.loadtxt
,您可能会做得更好。
答案 1 :(得分:1)
import numpy as np
with open('matrix.txt', 'r') as f:
x = []
for line in f:
x.append(map(int, line.split()))
print x
print np.array(x)
matrix.txt包含3行,每行4个数字:
1 2 3 4
5 6 7 8
9 8 7 6
如上所述,打印
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 8, 7, 6]]
[[1 2 3 4]
[5 6 7 8]
[9 8 7 6]]
但是,如前一个回答所述,请考虑使用numpy.loadtxt。例如,如果是
print np.loadtxt('matrix.txt')
添加到程序中,它也打印出来
[[ 1. 2. 3. 4.]
[ 5. 6. 7. 8.]
[ 9. 8. 7. 6.]]
答案 2 :(得分:0)
差不多......
以下行创建了一个您不想要的列表列表
y = [value for value in line.split()]
x.append(y)
因此,地图调用将失败
而不是这2行使用
x = [int(value) for value in line.split()]