1
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 中。有没有更快的方法来做到这一点?顺便说一句,我的代码不起作用。

4

3 回答 3

1

如果您使用np.loadtxt.

于 2012-11-27T06:04:16.413 回答
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.]]
于 2012-11-27T06:10:23.423 回答
0

差不多好了...

以下行创建您不想要的列表列表

y = [value for value in line.split()]
x.append(y)

因此,地图调用将失败

而不是这两条线使用

x = [int(value) for value in line.split()]
于 2012-11-27T06:03:25.727 回答